Home
last modified time | relevance | path

Searched refs:idr (Results 1 – 5 of 5) sorted by relevance

/DragonOS-0.1.8/kernel/src/common/
Didr.h66 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.8/docs/kernel/core_api/
Ddata_structures.md262   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.8/kernel/src/ktest/
DMakefile5 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
Dtest-idr.c506 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.8/kernel/src/libs/
Didr.c21 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 …]