linux 系统调用介绍

linux 系统调用介绍linux

大致分为4步:函数

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

2,执行中断 svc 内存

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

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

例子编译

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

asmlinkage int sys_add(int a,int b)di

{co

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

}

相关文章
相关标签/搜索