我正在编写新的内核模块,并添加了实现新的IOCTL的模块.
我应遵守IOCTL编号的任何规定吗?
也许有一些“用户范围”?
我在嵌入式平台上使用内核2.6.21.
解决方法:
IOCTL被定义为与设备相关的-如果存在供人们实施的“标准” ioctl,则它们将是诸如读取和写入之类的系统调用.
对于ioctl数字,有一些约定:
>参数方向(输入,输出,两个方向)均以ioctl编号编码为两位.除非您使用推荐的通用“从用户复制” /“复制到用户”代码,否则这不是强制性的.
>有一个魔术数字可以避免冲突.如果两个设备定义相同的ioctl,则没有真正的危害,但是使用不同的数字将为捕获错误提供额外的机会.