我正在编写新的内核模块,并添加实现新的 IOCTL。
IOCTL 的编号是否应该遵循任何规则?
也许有一些“用户范围”?
我在嵌入式平台上使用内核 2.6.21。
IOCTL 被定义为与设备相关的——如果有“标准”ioctls 供人们实现,这些将是像这样的系统调用read
and write
.
ioctl 数字有一些约定:
- 参数方向(in、out、both)以两位的形式编码在 ioctl 编号中。这不是强制性的,除非您使用推荐的通用“从用户复制/复制到用户”代码。
- 有一个神奇的数字可以避免冲突。如果两个设备定义相同的 ioctl,并没有真正的危害,但使用不同的数字会增加捕获错误的机会。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)