函数逻辑报告 |
Source Code:lib\radix-tree.c |
Create Date:2022-07-27 07:10:27 |
Last Modify:2022-05-21 10:04:37 | Copyright©Brick |
首页 | 函数Tree |
注解内核,赢得工具 | 下载SCCT | English |
函数名称:idr_get_free
函数原型:void __rcu **idr_get_free(struct xarray *root, struct radix_tree_iter *iter, gfp_t gfp, unsigned long max)
返回类型:void
参数:
类型 | 参数 | 名称 |
---|---|---|
struct xarray * | root | |
struct radix_tree_iter * | iter | |
gfp_t | gfp | |
unsigned long | max |
1492 | start等于next_index |
1493 | offset等于0 |
1495 | grow : |
1496 | shift等于radix_tree_load_root(root, & child, & maxindex) |
1497 | 如果非测试radix树上有项目则start等于max(start, maxindex + 1) |
1509 | 如果start恒等于0且shift恒等于0则shift等于adix-tree API starts here ** |
1514 | 如果(child == NULL)则 |
1516 | child等于This assumes that the caller has performed appropriate preallocation, and* that the caller has pinned this thread of control to the current CPU. |
1520 | all_tag_set(child, The IDR API does not expose the tagging functionality of the radix tree* to users. Use tag 0 to track whether a node has free space below it.) |
1524 | 否则如果非radix_tree_is_internal_node(child)则退出 |
1527 | node等于entry_to_node(child) |
1528 | offset等于radix_tree_descend(node, & child, start) |
1532 | start等于next_index(start, node, offset) |
1535 | 当offset恒等于RADIX_TREE_MAP_SIZE循环 |
1542 | child等于Dependency order vs. p above. (slots[offset]) |
1548 | 如果node则next_index等于1加两数取小(max, (start | node_maxindex(node))) |
1550 | 否则next_index等于1 |
1555 | 返回:slot |
名称 | 描述 |
---|---|
idr_alloc_u32 | |
idr_alloc_u32 | dr_alloc_u32() - Allocate an ID.*@idr: IDR handle.*@ptr: Pointer to be associated with the new ID.*@nextid: Pointer to an ID.*@max: The maximum ID to allocate (inclusive).*@gfp: Memory allocation flags. |
源代码转换工具 开放的插件接口 | X |
---|---|
支持:c/c++/esqlc/java Oracle/Informix/Mysql 插件可实现:逻辑报告 代码生成和批量转换代码 |