linux内核中的系统调用表在哪里?

前端之家收集整理的这篇文章主要介绍了linux内核中的系统调用表在哪里?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在阅读Robert Love的 Linux内核开发,他所做的一项练习是创建一个系统调用(第106页).问题是我无法在v3.9中找到x86_32体系结构的系统调用文件.我知道他正在使用2.6.xx版本,但我不知道该版本是否适用于我正在使用的发行版,因为它很旧,所以我宁愿选择v3.9.

更多信息:
我所说的演习如下:
在系统调用表的末尾添加一个条目.这需要为支持系统调用的每个体系结构完成(对于大多数调用,这是所有体系结构).系统调用在表中的位置,从零开始,是它的系统呼叫号码.例如,列表中的第十个条目被分配了系统调用号9.

使用以下方法解决
系统调用表位于x86架构的arch / x86 / syscalls / syscall_32.tbl中.感谢Sudip Mukherjee的帮助.

另一种方法如下:
http://lists.kernelnewbies.org/pipermail/kernelnewbies/2013-July/008598.html
感谢Srinivas Ganji的帮助.

解决方法

从linux内核4.2开始,系统调用表已从 arch/x86/syscalls/syscall_64.tbl移到 arch/x86/entry/syscalls/syscall_64.tbl

这是相应的commit

commit 1f57d5d85ba7f1f467173ff33f51d01a91f9aaf1
Author: Ingo Molnar <mingo@kernel.org>
Date:   Wed Jun 3 18:36:41 2015 +0200

    x86/asm/entry: Move the arch/x86/syscalls/ definitions to arch/x86/entry/syscalls/

    The build time generated syscall definitions are entry code related,move
    them into the arch/x86/entry/ directory.

猜你在找的Linux相关文章