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 |