将新的 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 供人们实现,这些将是像read
和write
这样的系统调用。
ioctl 编号有一些约定:
参数方向(in、out、both)在 ioctl 编号中以两位编码。这不是强制性的,除非您使用常见的从用户复制/复制到用户代码,这是推荐的。 有一个神奇的数字可以避免冲突。如果两台设备定义相同的 ioctl 并没有真正的危害,但使用不同的数字会增加捕获错误的机会。【讨论】:
以上是关于将新的 IOCTL 添加到内核中(数字范围)的主要内容,如果未能解决你的问题,请参考以下文章