【问题标题】:How can I pick a good magic/type number for ioctl?如何为 ioctl 选择一个好的魔法/类型编号?
【发布时间】:2012-04-12 12:34:50
【问题描述】:

我想知道是否有一个宏可以为我的设备分配一个 linux 当前未使用的随机“魔术”数字。这显然是出于便携性的考虑。另外,如果这是不可能的,我想知道在哪里可以找到未使用的幻数。我想查阅的文本文件名为 ioctl-number.txt,但我只能在我下载的源代码树中找到这些文件……而不是我实际运行的编译内核。找到这些文件可能隐藏在编译版本中的位置会很有趣。

感谢您的帮助!

【问题讨论】:

  • 有一个article 带来了关于这个主题的有趣信息。
  • 你能解决你的问题吗?因为我也不知道如何从那张桌子上挑出好的幻数。

标签: c linux-kernel kernel driver linux-device-driver


【解决方案1】:

您能否选择一个您的设备驱动程序不(也永远不会)使用的现有 ioctl 宏,并将其值分配给您需要的 ioctl 宏?

我对 ioclt 如何与设备驱动程序配合使用的知识有限,所以这可能行不通。

您能否查看另一个具有自定义 ioctl 值的设备驱动程序的来源,并了解他们是如何选择编号的?也许存在操作系统不使用的范围,因此每个设备驱动程序都可以根据自己的意愿解释它们。

【讨论】:

  • 我正在尝试创建一个未使用的 cmd 编号,以便 ioctl 知道在什么 dev 上执行哪个 io 操作。 cmd 编号不是宏,而是在整个系统中必须保持唯一的编号。没有其他设备可以使用与我的设备使用的 cmd 编号相同的另一个 cmd 编号。这就像为您的设备分配设备编号以供使用,除了我所知道的没有找到随机“魔术”编号的宏。这个幻数对应于设备本身,但不知何故它仍然与设备号不同。如何找到未使用的魔法 #s?
猜你喜欢
  • 2010-11-14
  • 1970-01-01
  • 2013-05-20
  • 2019-01-06
  • 1970-01-01
  • 1970-01-01
  • 2016-10-14
  • 1970-01-01
  • 2020-01-30
相关资源
最近更新 更多