Memory 什么是idr_alloc()

Memory 什么是idr_alloc(),memory,linux-kernel,linux-device-driver,embedded-linux,Memory,Linux Kernel,Linux Device Driver,Embedded Linux,在源代码实现中,它说idr\u alloc()用于分配新的idr条目。我找不到手册页,想知道为什么要使用它,特别是在为MTD设备编写驱动程序时。内核中使用idr库来管理为对象分配整数id和按id查找对象。有关完整的介绍,请参阅本文;基本思想是您有以下操作: idr\u get\u new(struct idr*idp,void*ptr,int*id)--为指针ptr分配一个新id,并通过id返回它 void*idr\u find(struct idr*idp,int id)--返回与id vo

在源代码实现中,它说
idr\u alloc()
用于分配新的
idr
条目。我找不到
手册页
,想知道为什么要使用它,特别是在为
MTD
设备编写驱动程序时。

内核中使用
idr
库来管理为对象分配整数id和按id查找对象。有关完整的介绍,请参阅本文;基本思想是您有以下操作:

  • idr\u get\u new(struct idr*idp,void*ptr,int*id)
    --为指针
    ptr
    分配一个新id,并通过
    id
    返回它

  • void*idr\u find(struct idr*idp,int id)
    --返回与
    id

  • void idr\u remove(struct idr*idp,int id)
    --清除
    id的条目

这在映射到内核对象的小整数ID有用的任何地方都很有用——例如返回到用户空间的小数字或其他索引