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

linux内核中的系统调用表在哪里?,第1张

概述我正在阅读Robert Love的 Linux内核开发,他所做的一项练习是创建一个系统调用(第106页).问题是我无法在v3.9中找到x86_32体系结构的系统调用表文件.我知道他正在使用2.6.xx版本,但我不知道该版本是否适用于我正在使用的发行版,因为它很旧,所以我宁愿选择v3.9. 更多信息: 我所说的演习如下: 在系统调用表的末尾添加一个条目.这需要为支持系统调用的每个体系结构完成(对于大 我正在阅读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 1f57d5d85ba7f1f467173ff33f51d01a91f9aaf1Author: Ingo Molnar <[email protected]>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内核中的系统调用表在哪里?全部内容,希望文章能够帮你解决linux内核中的系统调用表在哪里?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/1048011.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存