ARM架構下添加系統調用與32位x86區別
1.在內核源碼相應位置(如sys.c或其他與這個(gè)函數聯(lián)系緊密的文件)添加新的內核函數作為系統調用,形如
本文引用地址:http://dyxdggzs.com/article/201611/317844.htmasmlinkage long sys_foo(void) {}
2.加入系統調用表。ARM架構存放于/arch/arm/kernel/call.S中,形如CALL(sys_foo);x86架構放于/arch/x86/kernel/syscall_table_32.S中,形如.longsys_foo。
3.定義系統調用號。ARM架構存放于/arch/arm/include/asm/unistd.h中,形如
#define __NR_foo (__NR_SYSCALL_BASE+361);
x86架構放于/arch/x86/include/asm/unistd_32.h中,形如
#define __NR_foo 333
4.使用方法:編譯修改后的內核,在用戶(hù)空間中使用syscall()調用。
評論