文件 linux/kernel.h 到底在哪里?

fir*_*ant 1 kernel kernel-modules linux-kernel

我正在阅读 Salzman 的 Linux 内核模块编程指南,我想知道文件 linux/kernel.h 所在的位置。我找不到它find。或者更确切地说,我发现的文件中没有任何printk优先级宏。

Ste*_*itt 5

linux/kernel.h它获取用于模块建立报头是这是标题内核源代码的一部分。在内核源代码树中构建模块时,这就是所使用的版本。

对于外部模块构建,构建过程在/lib/modules/$(uname -r)/build/include/linux/sched.h. 该文件由内核头文件包提供,例如在 Debian 衍生产品上,该linux-headers-$(uname -r)包。

/usr/include/linux/kernel.h是为用户进程,而不是为内核模块。

printk优先宏现在住在linux/printk.hlinux/kern_levels.h。我猜您正在阅读基于 2.6 内核系列的原始指南;对于现代内核,您应该阅读更新的指南(目前适用于5.6.7)。