我的os书上说,如果你想添加一个系统调用到Linux内核,编辑linux-2.x/include/asm-i386/unistd.h
。
但是linux内核的源码结构似乎改变了很多。 在linux-2.6.34.1
版本的内核源码树中,我只find一个linux-2.6.34.1/include/asm-generic/unistd.h
和linux-2.6.34.1/arch/x86/include/asm/unistd.h
。
编辑后者似乎更有意义。
我的问题是/inlcude/asm-generic
是什么? asm相关代码如何能够通用?
asm-generic是通常在汇编中编码的函数的通用版本,但是以纯C编码,没有任何内联汇编。 这可能是为了将内核轻松移植到新的平台上,并将平台无关的通用代码保存在一个地方。