做网站连带责任,南通优化网站排名,网站侧边栏菜单,wordpress能放视频教程为linux内核添加新的系统调用作者#xff1a;李志勇更多精彩#xff1a;更多精彩#xff1a;开发平台#xff1a;x86 ubuntu目标平台#xff1a;S3C6410linux3.4.4一、 打开内核源码目录下arch/arm/kernel/calls.S文件#xff0c;在389行添加#xff1a;/*378 */CALL…为linux内核添加新的系统调用作者李志勇更多精彩更多精彩开发平台x86 ubuntu目标平台S3C6410linux3.4.4一、 打开内核源码目录下arch/arm/kernel/calls.S文件在389行添加/*378 */CALL(sys_my_syscall)378是新添加的系统调用的系统调用号sys_my_syscall是该系调用的名字二、打开内核源码目录下arch/arm/include/asm/unistd.h文件在407行添加#define __NR_my_syscall (__NR_SYSCALL_BASE378)my_syscall是新系统调用的名字378是系统调用号三、打开内核源码目录下arch/arm/kernel/sys_arm.c文件在最后添加asmlinkage long sys_my_syscall(int a, int b){return a b;}这个就是系统调用的实现在这里简单的写一个加法为例四、重新编译内核启动内核并挂在网络文件系统挂在成功后[lzyuplooking]#五、在用户态测试新添加的系统调用my_syscall#include stdio.hint main(int argc, char *argv[]){intadd;add syscall(378, 1, 2);printf(add %d\n, add);return0;}其中387是新添加的系统调用的系统调用号编译并把可执行文件拷贝到/nfsroot/nfsroot是开发板的根目录lizhiyongThinkPad:/home/test$arm-linux-gcc my_syscall.c -o my_syscalllizhiyongThinkPad:/home/test$ cpmy_syscall /nfsroot在开发板上执行my_syscall运行结果如下[lzyuplooking]#./my_syscalladd3更多精彩阅读(604) | 评论(1) | 转发(0) |