首页 文章

使用struct参数的Linux内核系统调用实现

提问于
浏览
0

我只知道如何向Linux内核添加系统调用 . 我的系统调用(像许多其他系统调用一样)获取指向我创建的结构的指针 . 如果我想将结构添加到内核源代码我应该如何以及在何处添加它?

1 回答

  • 0

    include/uapi/linux 中放置一个包含新 struct 的 Headers . 使用适当的类型避免命名空间污染,例如 __u16 而不是 unsigned short / uint16_t__kernel_time_t 而不是 time_t ...等 . 查看struct mii_ioctl_data以获取示例 .

    通过向 include/uapi/linux/Kbuild 添加 header-y += new_header.h 条目,您可以使用make headers_install导出标头 .

    默认情况下,它会在 ./usr 中安装标头 . 如果您希望将它们安装为系统标头,请改用 make headers_install INSTALL_HDR_PATH=/usr . 这会导致 uapi 目录的内容合并到 /usr/include 中 . 然后,您可以在用户空间程序中使用 #include <linux/new_header.h> .

相关问题