2014-10-31 18 views
3

我正在嘗試將新的系統調用添加到Linux內核(x86_64)。基於this article,它解釋瞭如何將系統調用添加到內核(x86)。該文章說我需要在名爲syscall_table_32.S的文件中定義我的系統調用名稱,該文件位於src/arch/x86/syscall_table_32.Ssyscall_table在x86_64內核中的位置?

但在我的情況下,在內核源文件中沒有名爲syscall_table_32.Ssyscall_table_64.S的文件!在src/arch/中甚至沒有用於x64系統調用表的目錄。

那麼,內核3.13.0-14-generic(x86_64)中定義的syscall_table_64.S在哪裏? 我可以在哪裏定義一個新的系統調用?

+0

可能重複[在Linux內核系統調用表在哪裏?](https://stackoverflow.com/questions/17652555/where-is-the-system-call-table-in-linux-kernel) – 2018-02-04 04:11:16

回答

7

版本3.3以上與指南使用的2.X不同。您應該在arch/x86/目錄中查找syscalls目錄。所以是:

cd /kernel-src/arch/x86/syscalls/syscall_64.tbl 

kernel-src是內核源代碼駐留的目錄。一個好主意是在SO中讀this answer並將其與您的資源進行比較。