将ioctl代码从内核模块传递到用户空间程序

时间:2013-01-31 13:34:43

标签: c linux-kernel kernel ioctl

内核模块中的

ioctl 代码通常在 .c .h 文件中定义为宏,即:

#define DRV_CTL_RESET          _IO(DRV_MAGIC, 0x01)
#define DRV_CTL_DSP_TO         _IO(DRV_MAGIC, 0x02)

以及Userspace程序中的用法是:

ioctl(drv_fd, DRV_CTL_DSP_TO, (unsigned long)tmo);

一切都很好,但是......

问题是:在内核和用户空间之间同步 ioctl 代码的良好做法是什么?

我目前的解决方案是从内核模块源自动生成API头文件,并将其包含在Userspace程序中。但我希望,也许有一种更方便的方式。

1 个答案:

答案 0 :(得分:2)

将ioctl代码放在.h文件中,并从内核空间和用户空间使用相同的.h。有什么比这更方便? ;)

相关问题