3

我正在浏览chipidea usb otg驱动程序代码,我多次看到类似的定义。

静态 DEFINE_IDA(ci_ida);

我不明白它在编程世界中的含义及其目的。有人可以解释一下吗?

4

1 回答 1

4

如前所述,dDEFINE_IDE(name)为。你应该看看LXR,它对于浏览内核源代码非常方便。#definestruct ida name = IDA_INIT(name)

IDR 是内核中的一个子系统,它提供了一种将 id 映射到指针的有效方法。通常你会使用 id 作为指针数组的偏移量,但这限制了你的 id 的大小。IDR 通过使用基数树而不是查找来解决这个问题。

有时您只需要唯一的 id 而无需将它们与指针相关联,这就是 IDA 的用途。

 /* IDA - IDR based ID allocator  
  * 
  * This is id allocator without id -> pointer translation.  Memory
  * usage is much lower than full blown idr because each id only
  * occupies a bit.
于 2016-02-12T17:18:33.417 回答