函数逻辑报告 |
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 插件可实现:逻辑报告 代码生成和批量转换代码 |