Function report | 
Source Code:lib\radix-tree.c | 
Create Date:2022-07-28 06:13:12 | 
| Last Modify:2022-05-21 10:04:37 | Copyright©Brick | 
| home page | Tree | 
| Annotation kernel can get tool activity | Download SCCT | Chinese | 
Name:idr_get_free
Proto:void __rcu **idr_get_free(struct xarray *root, struct radix_tree_iter *iter, gfp_t gfp, unsigned long max)
Type:void
Parameter:
| Type | Parameter | Name | 
|---|---|---|
| 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 | If Not adix_tree_tagged - test whether any items in the tree are tagged*@root: radix tree root*@tag: tag to test Then start = max(start, maxindex + 1) | 
| 1507 | child = Dependency order vs. p above. (xa_head) | 
| 1509 | If start == 0 && shift == 0 Then shift = adix-tree API starts here ** | 
| 1513 | shift -= adix-tree API starts here ** | 
| 1514 | If (child == NULL) Then | 
| 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 | Else if Not radix_tree_is_internal_node(child) Then Break | 
| 1527 | node = entry_to_node(child) | 
| 1528 | offset = radix_tree_descend(node, & child, start) | 
| 1532 | start = next_index(start, node, offset) | 
| 1535 | When offset == RADIX_TREE_MAP_SIZE cycle | 
| 1542 | child = Dependency order vs. p above. (slots[offset]) | 
| 1548 | If node Then next_index = 1 + min - return minimum of two values of the same or compatible types*@x: first value*@y: second value(max, (start | node_maxindex(node))) | 
| 1550 | Else next_index = 1 | 
| 1555 | Return slot | 
| Name | Describe | 
|---|---|
| idr_alloc_u32 | 
| Source code conversion tool public plug-in interface  | X | 
|---|---|
| Support c/c++/esqlc/java Oracle/Informix/Mysql Plug-in can realize: logical Report Code generation and batch code conversion  |