函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:lib\radix-tree.c Create Date:2022-07-27 07:10:17
Last Modify:2022-05-21 10:04:37 Copyright©Brick
首页 函数Tree
注解内核,赢得工具下载SCCTEnglish

函数名称:Extend a radix tree so it can store key @index.

函数原型:static int radix_tree_extend(struct xarray *root, gfp_t gfp, unsigned long index, unsigned int shift)

返回类型:int

参数:

类型参数名称
struct xarray *root
gfp_tgfp
unsigned longindex
unsigned intshift
426  maxshift等于shift
427 index大于The maximum index which can be stored in a radix tree循环
428  maxshift加等于adix-tree API starts here **
430  entry等于Dependency order vs. p above. (xa_head)
431  如果非entry且非is_idr(root)或root_tag_get(root, 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.)的值则转到:out
434  循环
435  node等于This assumes that the caller has performed appropriate preallocation, and* that the caller has pinned this thread of control to the current CPU.
437  如果非node则返回:负ENOMEM
440  如果is_idr(root)则
446  否则
449  如果root_tag_get(root, tag)则tag_set(node, tag, 0)
454  BUG_ON(shift > BITS_PER_LONG)
459  nr_values等于1
465  slots[0]等于entry
466  entry等于node_to_entry(node)
467  cu_assign_pointer() - assign to RCU-protected pointer*@p: pointer to assign to*@v: value to assign (publish)* Assigns the specified value to the specified RCU-protected* pointer, ensuring that any concurrent RCU readers will see* any prior initialization(xa_head, entry)
468  shift加等于adix-tree API starts here **
469 shift小于等于maxshift循环
470  out :
471  返回:maxshiftadix-tree API starts here **
调用者
名称描述
__radix_tree_create
idr_get_free