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

}

相關文章
相關標籤/搜索