DEFINE_IDA是什么意思?

时间:2016-02-11 11:28:27

标签: linux-kernel linux-device-driver usb-otg

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

  

静态DEFINE_IDA(ci_ida);

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

1 个答案:

答案 0 :(得分:4)

如前所述,DEFINE_IDE(name)#define d为struct ida name = IDA_INIT(name)。您应该查看LXR,这对于浏览内核源非常方便。

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.