加入收藏 | 设为首页 | 会员中心 | 我要投稿 云计算网_宿迁站长网 (https://www.0527zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 搭建环境 > Unix > 正文

kernel学习之动手添加系统调用(ARM)

发布时间:2016-09-26 09:20:31 所属栏目:Unix 来源:站长网
导读:我是在linux2.6.38中添加的系统调用,在mini6410开发板上测试的。 添加系统调用: 向内核中添加系统调用,需要执行三个步骤: 1、添加新的内核函数 2、更新unistd.h 3、更新系统调用表 1、 在kernel/sys.c中添加函数 asmlinkageint sys_add(int a,int b) {

我是在linux2.6.38中添加的系统调用,在mini6410开发板上测试的。

添加系统调用:

向内核中添加系统调用,需要执行三个步骤:

1、添加新的内核函数

2、更新unistd.h

3、更新系统调用表

1、 在kernel/sys.c中添加函数

asmlinkageint sys_add(int a,int b)  
      
{  
      
    return a+b;  
      
}

2、 在arch/arm/include/asm/unistd.h

添加:

#define_NR_add (_NR_SYSCALL+BASE + 370)

3、在arch/arm/kernel/calls.S中添加CALL(sys_add)以指向新的系统调用

4、编写应用程序测试

#include <linux/unistd.h>  
#include <stdio.h>  
      
int main()  
{  
    int re = syscall(370,1,4) ;  
    printf("%dn",re);  
    return 0;  
}

5、测试效果

kernel学习之动手添加系统调用(ARM)

查看本栏目更多精彩内容:http://www.bianceng.cn/OS/unix/

(编辑:云计算网_宿迁站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读