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);

}

你可能感兴趣的:(linux,系统调用介绍)