我正在 linux 内核中创建一个新的系统调用。它将引用我正在创建的新结构,因此 kernel/*.c 文件和用户程序都需要#include 一个文件才能访问该结构类型。
我在哪里可以声明我的结构?我尝试将声明放入include/linux/syscalls.h
,但我看不到如何从内核外部 #include (如果我尝试编译程序以使用它,我会收到错误消息)。
我正在 linux 内核中创建一个新的系统调用。它将引用我正在创建的新结构,因此 kernel/*.c 文件和用户程序都需要#include 一个文件才能访问该结构类型。
我在哪里可以声明我的结构?我尝试将声明放入include/linux/syscalls.h
,但我看不到如何从内核外部 #include (如果我尝试编译程序以使用它,我会收到错误消息)。
看看http://www.tldp.org/HOWTO/html_single/Implement-Sys-Call-Linux-2.6-i386/ 这是针对 2.6 内核的,但是 3.0 在这方面没有太大变化(如果有的话)看待。
请注意,它建议内核和非内核使用单独的标头。
一个简单的谷歌搜索“linux add syscall”很容易找到这个信息。