Computers/Adv. Linux System Programming

checkpoint +_at_ Embedded board

emzei 2013. 4. 26. 20:19

i386

ARM architecture

linux/arch/i386/kernel/entry.S

linux/arch/arm/kernel/calls.S

linux/arch/i386/kernel/entry.S

linux/arch/arm/kernel/entry-common.S

linux/arch/i386/kernel/process.c

linux/arch/arm/kernel/sys_arm.c

linux/include/asm-i386/unistd.h

linux/include/asm-arm/unistd.h

 

< c o m m o n >

linux/include/linux/sched.h

 

linux/kernel/Makefile

 

 

---------------------------------------------------------------------------------------------------------------------------------

<i386>

 

step1. linux/include/linux/sched.h 

> task_struct 에서 int should_ckpt; 추가


step2. linux/arch/i386/kernel/process.c

> sys_execve() 에서 do_execve() 후 error check --- if(error==0) {} 블록안에 current->should_ckpt=0; 추가


step3. linux/include/asm-i386/unistd.h

> ckpt, recover 시스템콜 번호 등록


step4. linux/arch/i386/kernel/entry.S

> ret_from_sys_call 에서 do_ckpt 호출 할 수 있게 코드 등록    // 218 라인

> 시스템 콜 번호에 맞게 SYMBOL_NAME(sys_ckpt) (sys_recover) 등록  // 667 라인


step5. linux/kernel/Makefile

> obj-y에 ckpt.o 추가


step6. linux/kernel/ 하위에 ckpt.c 추가


--------------------------------------------------------------------------------------------------------------------------------


<arm>


* 기존에 call SYMBOL_NAME(do_ckpt) 추가하는 것은 bl SYMBOL_NAME(do_ckpt)로 변경

* recover.c, matrix.c 의 header 파일 경로 변경

* ckpt.c 코드 변경 

   --- (1) eax ---> ARM_r0

   --- (2) vm_area_struct --- 퍼미션 플래그 코드 추가


'Computers > Adv. Linux System Programming' 카테고리의 다른 글

change sources.list  (0) 2014.05.20
install RT linux  (0) 2014.05.19
ubuntu initrd.img 생성  (0) 2014.05.01
system call / 시스템콜 추가  (0) 2014.03.10
커널 컴파일 / kernel compile  (0) 2014.03.07