本文介绍了将新的IOCTL添加到内核(数字范围)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在编写新的内核模块,并添加实现新的IOCTL.
我应遵守IOCTL编号的任何规定吗?
也许有一些用户范围"?
I'm writing new kernel module and I add implement new IOCTL's.
Is there any rule that I should follow with IOCTL's numbering ?
Maybe there is some "user range" ?
我在嵌入式平台上使用内核2.6.21.
I work with kernel 2.6.21 on embedded platform.
推荐答案
IOCTL被定义为与设备相关的-如果存在供人们实现的标准" ioctl,则这些系统调用将为read
和write
之类的系统调用.
IOCTLs are defined to be device dependent -- if there were "standard" ioctls for people to implement, these would be syscalls like read
and write
.
有关ioctl数字的一些约定:
There are a few conventions for ioctl numbers:
- 参数方向(输入,输出,两者)均以两位数的ioctl编码.除非您使用推荐的通用从用户复制"/复制到用户"代码,否则这不是强制性的.
- 有一个神奇的数字可以避免冲突.如果两个设备定义相同的ioctl并没有真正的危害,但是使用不同的数字将为捕获错误提供额外的机会.
这篇关于将新的IOCTL添加到内核(数字范围)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!