idr

linux kernel有链表、队列、映射、二叉树等内建数据结构,并且封装一系列API给linux kernel开发人员使用,本章讲解映射。

base linux-2.6.34

简介

linux kernel 映射,就是通过 uid 找到 value,即 uid-value 集合,用struct idr结构体进行定义。

如何初始化?

void idr_init(struct idr *idp);

如何分配UID?

int idr_pre_get(struct idr *idp, gfp_t gfp_mask);
int idr_get_new(struct idr *idp, void *ptr, int *id);

如何查找UID对应的value?

void *idr_find(struct idr *idp, int id);

如何释放 ?

void idr_remove(struct idr *idp, int id);
or
void idr_remove_all(struct idr *idp);

void idr_destroy(struct idr *idp);

实践

Last updated

Was this helpful?