Searched refs:idr (Results 1 – 5 of 5) sorted by relevance
/DragonOS-0.1.3/kernel/src/common/ |
D | idr.h | 66 struct idr struct 75 struct idr name = {0}; \ argument 85 int idr_preload(struct idr *idp, gfp_t gfp_mask); 86 int idr_alloc(struct idr *idp, void *ptr, int *id); 87 void *idr_remove(struct idr *idp, int id); 88 void idr_remove_all(struct idr *idp); 89 void idr_destroy(struct idr *idp); 90 void *idr_find(struct idr *idp, int id); 91 void *idr_find_next(struct idr *idp, int start_id); 92 void *idr_find_next_getid(struct idr *idp, int64_t start_id, int *nextid); [all …]
|
/DragonOS-0.1.3/docs/kernel/core_api/ |
D | data_structures.md | 262   IDA定义于`idr.h`文件中. 您通过`DECLARE_IDA(my_ida)`来创建一个ida对象, 或者`struct ida my_ida; ida_init(&m… 402    idr是一个基于radix-tree的ID-pointer的数据结构. 该数据结构提供了建id与数据指针绑定的功能, 它的主要功能有以下4个: 407    您可以使用`DECLARE_idr(my_idr)`来创建一个idr。或者您也可以使用`struct idr my_idr; idr_init(my_idr);`这两句话创… 411 `void idr_init(struct idr *idp)` 415   通初始化IDR, 你需要保证调用函数之前, idr的free_list为空, 否则会导致内存泄漏. 420    指向idr的指针 427 `int idr_preload(struct idr *idp, gfp_t gfp_mask)` 431   为idr预分配空间.您可以不自行调用, 因为当idr需要空间的时候, 内部会自行使用`kmalloc`函数获取空间. 当然, 设计这个函数的目的是为了让您有更多的选择. 当您… 436    指向idr的指针 448 `int idr_alloc(struct idr *idp, void *ptr, int *id)` [all …]
|
/DragonOS-0.1.3/kernel/src/ktest/ |
D | Makefile | 5 all: ktest.o bitree.o kfifo.o mutex.o idr.o 19 idr.o: test-idr.c 20 $(CC) $(CFLAGS) -c test-idr.c -o test-idr.o
|
D | test-idr.c | 506 assert(k_ida.idr.top == NULL); in ktest_idr_case6() 518 assert(k_ida.idr.top != NULL); in ktest_idr_case6() 522 assert(k_ida.idr.top == NULL); in ktest_idr_case6() 556 assert(k_ida.idr.top != NULL); in ktest_idr_case6() 560 assert(k_ida.idr.top == NULL); in ktest_idr_case6()
|
/DragonOS-0.1.3/kernel/src/libs/ |
D | idr.c | 21 void idr_init(struct idr *idp) in idr_init() 23 memset(idp, 0, sizeof(struct idr)); in idr_init() 33 static void __move_to_free_list(struct idr *idp, struct idr_layer *p) in __move_to_free_list() 54 static void *__get_from_free_list(struct idr *idp) in __get_from_free_list() 95 int idr_preload(struct idr *idp, gfp_t gfp_mask) in idr_preload() 127 static int __idr_grow(struct idr *idp) in __idr_grow() 159 static int __idr_get_empty_slot(struct idr *idp, struct idr_layer **stk) in __idr_get_empty_slot() 213 static __always_inline void __idr_mark_full(struct idr *idp, int id, struct idr_layer **stk, int ma… in __idr_mark_full() 248 static __always_inline int __idr_get_path(struct idr *idp, int id, struct idr_layer **stk) in __idr_get_path() 294 static __always_inline void __idr_erase_full(struct idr *idp, int id, struct idr_layer **stk, int m… in __idr_erase_full() [all …]
|