我只知道如何将系统调用添加到Linux的内核。我的系统调用(就像许多其他系统调用一样(将指针指向由我创建的结构。如果我想将结构添加到内核来源如何以及在哪里添加?
将包含新struct
的标头放在include/uapi/linux
中。避免使用适当类型的命名空间污染,例如__u16
代替unsigned short
/uint16_t
,__kernel_time_t
代替time_t
...等。查看struct mii_ioctl_data
以示例。
通过将header-y += new_header.h
输入添加到include/uapi/linux/Kbuild
,您可以用make headers_install
导出标头。
默认情况下,它将标题安装在./usr
中。如果您希望它将它们作为系统标头安装,请改用make headers_install INSTALL_HDR_PATH=/usr
。这导致将uapi
目录的内容合并到/usr/include
中。然后,您可以在用户空间程序中的#include <linux/new_header.h>
。