Linux内核头文件的组织

dir*_*bit 6 linux kernel linux-kernel

当我在系统调用上做一些阅读时,我搜索了syscalls.h在LXR中查找头文件.搜索结果使我感到困惑.有十几个syscalls.h来自目录下的文件arch/_arch_name_/include/asm.这些都可以,它们是特定于体系结构的定义或其他需要的东西.现在的问题是,为什么我们有两个不同的syscalls.h下两个头include/linuxinclude/asm-generic

另外,我想知道include/linux标题是什么以及include/asm-generic标题是什么.他们如何区分彼此?有两个单独的头文件夹背后的逻辑是什么?它们如何相互关联?

谢谢

dir*_*bit 6

我在Kernel Newbies ML上问过这个问题.我得到了以下答案:

Cihangir Akturk写道:

AFAIK,在/ include/asm-generic目录中找到的标头用于独立于架构(可能跨架构共享)代码.您很可能不需要直接包含这些标头,而是通过与架构相关的标头间接包含这些标头.

OTOH,/ include/linux目录用于通用头文件,用于定义内核组件之间的接口.在大多数情况下,您将在这些标头中找到所需的所有内核功能.

问候,chngr.