将新的 IOCTL 添加到内核中(数字范围)

Posted

技术标签:

【中文标题】将新的 IOCTL 添加到内核中(数字范围)【英文标题】:Adding new IOCTL's into kernel (number range) 【发布时间】:2012-01-19 06:49:45 【问题描述】:

我正在编写新的内核模块并添加实现新的 IOCTL。 IOCTL 的编号有什么我应该遵循的规则吗? 也许有一些“用户范围”?

我在嵌入式平台上使用内核 2.6.21。

【问题讨论】:

【参考方案1】:

IOCTL 被定义为依赖于设备——如果有“标准”ioctl 供人们实现,这些将是像readwrite 这样的系统调用。

ioctl 编号有一些约定:

参数方向(in、out、both)在 ioctl 编号中以两位编码。这不是强制性的,除非您使用常见的从用户复制/复制到用户代码,这是推荐的。 有一个神奇的数字可以避免冲突。如果两台设备定义相同的 ioctl 并没有真正的危害,但使用不同的数字会增加捕获错误的机会。

【讨论】:

以上是关于将新的 IOCTL 添加到内核中(数字范围)的主要内容,如果未能解决你的问题,请参考以下文章

将新列添加到 Oracle 表后生成主键值

将新插件添加到 phonegap 3.4

将新的 UITextView 动态添加到 UIscrollView

将新的 plist 文件添加到 iOS 应用程序

C++ 将新的类对象添加到数组中的新位置

将新的键/值对添加到 PostgreSQL JSON 列内的嵌套数组中