linux内核syscall_define6,linux中添加系统调用

1)在内核里添加系统调用,函数形式是:asmlinkage type sys_func_name(...)

2)在文件include/asm-arm/unistd.h里面添加

define __NR_mbind (__NR_SYSCALL_BASE+319)

define __NR_get_mempolicy (__NR_SYSCALL_BASE+320)

define __NR_set_mempolicy (__NR_SYSCALL_BASE+321)

define __NR_func_name (__NR_SYSCALL_BASE+322) //here

3)在文件arch/arm/kernel/calls.S里面添加

CALL(sys_inotify_rm_watch)

CALL(sys_mbind)

CALL(sys_get_mempolicy)

CALL(sys_set_mempolicy)

CALL(sys_func_name) //add

4)在文件include/linux/syscalls.h里面添加系统调用函数申明: asmlinkage type

sys_func_name(...);

到此系统调用已经成功添加上去了,调用的时候就先申明: _syscall2(int, func_name,unsigned

short int, opt, void *, argv);

其中_syscall后面的2表示函数有两个参数,如果函数有三个参数就要用_syscall3了,最大有一个_syscall6,int是

函数返回类型,func_name是函数名,unsigned short int是函数第一个参数类型,紧接着是参数名,以此类推。

申明以后就可以直接调用了:func_name(opt,argv); 另外包含的头文件要有 unistd.h //与体系相关,

errno.h

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值