C- Linux内核系统调用实现带有struct参数



我只知道如何将系统调用添加到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>

最新更新