LINUX系统调用的添加(2.6.36版本)

系统调用的添加

LINUX内核:2.6.36

步骤:

1、  在kernel/sys.c中添加系统调用函数,必须是以sys_开头的,如sys_mycall。

2、  在arch/x86/kernel/syscall_table_32.S中最后添加

       .long sys_XXX

       如 .long sys_mycall

3、在arch/x86/include/asm/unistd_32.h中合适的位置(什么是合适的位置???下面讲解)添加#define __NR_XXX YYY,XXX是系统调用名字,YYY是偏移值(???谁的???),如#define __NR_mycall 200。YYY必须跟在已有偏移值的后面,比如,已经有了212个偏移值,那么你的系统调用的偏移值为213,这就是合适的位置。

4、重新编译内核。

 

例子:

asmlinkage int mycall(int number){

       return number;

}

 

#define __NR_mycall 355

 

实例:

#include <stdio.h>

#define __NR_mycall 355

Void main(){

       printf(“%d\n”,mycall(100));

}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值