内核x86_64中的syscall_table位于何处?

Ham*_*ava 3 system-calls linux-kernel

我正在尝试向Linux内核添加新的系统调用(x86_64).基于这篇文章解释了如何将系统调用添加到内核(x86).文章说,我需要在一个名为文件来定义我的系统调用的名字syscall_table_32.S,位于src/arch/x86/syscall_table_32.S.

但在我的情况下,没有文件命名syscall_table_32.Ssyscall_table_64.S在内核源代码中!甚至没有x64系统调用表的目录src/arch/.

那么,syscall_table_64.S内核3.13.0-14-generic(x86_64)中定义的位置是什么?我在哪里可以定义新的系统调用?

Bra*_*iam 7

版本3.3以后与指南使用的2.X不同.您应该在syscalls目录中查找该arch/x86/目录.所以是:

cd /kernel-src/arch/x86/syscalls/syscall_64.tbl
Run Code Online (Sandbox Code Playgroud)

kernel-src是您的内核源所在的目录.一个好主意是在SO中阅读这个答案并将其与您的资源进行比较.