4

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

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

4

1 回答 1

4

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

ioctl 编号有一些约定:

  • 参数方向(in、out、both)在 ioctl 编号中以两位编码。这不是强制性的,除非您使用推荐的通用从用户复制/复制到用户代码。
  • 有一个神奇的数字可以避免冲突。如果两个设备定义相同的 ioctl 并没有真正的危害,但使用不同的数字会提供额外的捕获错误的机会。
于 2012-01-19T07:11:31.913 回答