Login | Join | OpenID | RSS Feed
system call 만들기
최광용 Lv. 14 llllllllll 
209 hit since 2005/02/20 14:32

system call 함수를 만든다. kernel/mysyscall.c

#include asmlinkage int sys_mysyscall() { printk("Hello World!n"); }


kernel 코드를 변경한다

*  include/asm/unistd.h
#define __NR_mysyscall ### 추가

* arch/i386/kernel/entry.S
파일의 끝부분에 위치한 .long SYMBOL_NAME(sys_mysyscall) 을 위에 수정한 ###번호에 맞는 위치에 넣어준다.
###이 258이라면 SYMBOL_NAME은 258번째에 와야한다.

kernel/Makefile

OBJS에 mysyscall.o 추가

커널 컴파일

make bzImage로 커널을 새로 만들어서 부팅하면 방금 추가된 syscall을 사용할 수 있다.

확인하는 프로그램

#include <linux/linkage.h>
#include _syscall0(int, mysyscall);

int main()
{
    int i = mysyscall();
    return i;
}