2012-10-25 32 views
0

我在這裏經歷了很多問題,在另一個網站上我仍然有以下問題。如何在內核2.6.26中實現一個簡單的系統調用?

我實現一個簡單的系統調用,爲了這個,我已經改變了文件內容如下

1. /arch/x86/kernel/syscal_table_32_S 
2. /include/asm-x86/unistd_32.h 
3. /include/linux/syscalls.h 

我有疑問,在第2個文件,因爲這個,我不知道這個文件(/包括/ asm- x86/unistd_32.h)修改或任何其他文件,因爲我知道包含系統調用號碼的文件,我們必須添加我們的sys調用和最後一個數字+ 1,這裏的疑問是這個文件(/include/asm-x86/unistd_32.h)沒有包含限制線(#define NR_syscalls <last syscall no + 1>),但還有另一個文件(/include/asm-sh/unistd_32.h),其中包含系統調用號碼和限制線

所以,請通過一個簡單的例子告訴我要修改哪些文件。

回答

2

我實現了在Linux內核3.2新系統調用和修改下列文件:

1. /arch/x86/kernel/syscal_table_32.S 
2. /arch/x86/kernel/syscal_table_64.S 
3. /arch/x86/include/asm/unistd_32.h - contains NR_syscalls for ia32 
4. /arch/x86/include/asm/unistd_64.h 
5. /arch/x86/include/asm/<new_file_with_syscall> 
6. /arch/x86/include/asm/Makefile 

的系統調用本身我syscall(NUMBER_OF_SYSCALL)函數調用。

+0

感謝您的回答。 – pradipta

相關問題