您的位置:首页 > 运维架构 > Linux

Add a system call to linux source

2010-11-15 21:10 295 查看
1. get linux kernel source and uncpmpres it.

2. edit /include/linux/syscalls.h and add declaration of the function

asmlinkage long sys_test();

3. edit /kernel/sys.c and add the implement of system call

asmlinkage long sys_test(){

printk("my system call/n");

return 0;

}

4. edit /arch/arm or i86(your object platform)/include/asm/unistd.h. add system call number define

#define __NR_test (__NR_SYSCALL_BASE + 365(inclresed 1 than the last system call).

5. edit /arch/arm/kernel/call.S or /arch/x86/kernel/syscall_table.S add

.long sys_test

6. make to rebuild linux and start kernel. write progra as folowing:

#include <Linux/errno.h>

#include<sys/syscall.h>

#include <Linux/unistd.h>

long errno; //this is the return code from the system call

//this is a macro defined in unistd.h to help prototype sys calls

_syscall2(0, test);

main() {

test();

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: