7

在源代码实现中,它说idr_alloc()用于分配新idr条目。我找不到man page并且想知道为什么要使用它,尤其是在为MTD设备编写驱动程序时。

4

1 回答 1

8

idr库在内核中用于管理将整数 ID 分配给对象并通过 id 查找对象。完整介绍见这篇LWN 网文;基本思想是您有以下操作:

  • idr_get_new(struct idr *idp, void *ptr, int *id)-- 为指针分配一个新的 IDptr并通过返回它id

  • void *idr_find(struct idr *idp, int id)-- 返回对应的指针id

  • void idr_remove(struct idr *idp, int id)-- 清除条目id

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

于 2013-04-02T08:43:04.127 回答