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

linux 系统调用介绍

2014-06-23 00:00 113 查看
摘要: linux 系统调用介绍

linux 系统调用介绍

大体分为4步:

1,定义系统调用号,arch/arm/include/asm/unistd.h 添加#define __NR_add 370 (编号)

2,执行中断 svc

3,跳转到ENTRY(vector_swi) 在entry-common.s中

4,调用arch/arm/kernel/calls.s的相应函数 CALL(sys_xx) 这里的位置与前面的编号对应

例子

在kernel/sys.c 添加调用函数

asmlinkage int sys_add(int a,int b)

{

return a+b;

}

2,添加系统调用号#define __NR_add 370

3,添加调用函数 CALL(sys_add);这里与上面对应

跳转指令汇编代码不用关,系统写好了,写好后,重新编译内存

#include <stdio.h>

#include <linux/unistd.h>

main()

{

int result;

result = syscall(370,1,2);

printf("result = ",result);

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