函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:lib\xarray.c Create Date:2022-07-27 07:10:38
Last Modify:2020-03-12 14:18:49 Copyright©Brick
首页 函数Tree
注解内核,赢得工具下载SCCTEnglish

函数名称:xas_shrink

函数原型:static void xas_shrink(struct xa_state *xas)

返回类型:void

参数:

类型参数名称
struct xa_state *xas
435  xa等于xa
436  node等于xa_node
438  循环
441  XA_NODE_BUG_ON(node, Total entry count > XA_CHUNK_SIZE)
442  如果Total entry count 不等于1则退出
444  entry等于Private
445  如果非entry退出
447  如果非Private Bits remaining in each slot 退出
449  如果xa_is_zero() - Is the entry a zero entry?*@entry: Entry retrieved from the XArray* The normal API will return NULL as the contents of a slot containing* a zero entry. You can only see zero entries by using the advanced API.xa_zero_busy(xa)则entry = NULL
451  xa_node等于XAS_BOUNDS
453  RCU_INIT_POINTER() - initialize an RCU protected pointer*@p: The pointer to be initialized.*@v: The value to initialized the pointer to.* Initialize an RCU-protected pointer in special cases where readers(xa_head, entry)
454  如果xa_track_free(xa)且非node_get_mark(node, 0, XA_FREE_MARK)则xa_mark_clear(xa, XA_FREE_MARK)
457  Total entry count 等于0
458  Value entry count 等于0
459  如果非Private RCU_INIT_POINTER() - initialize an RCU protected pointer*@p: The pointer to be initialized.*@v: The value to initialized the pointer to.* Initialize an RCU-protected pointer in special cases where readers(slots[0], XA_RETRY_ENTRY)
461  xas_update(xas, node)
462  xa_node_free(node)
463  如果非Private 退出
465  node等于Private
466  NULL at top of tree = NULL
调用者
名称描述
xas_delete_nodexas_delete_node() - Attempt to delete an xa_node*@xas: Array operation state.* Attempts to delete the @xas->xa_node. This will fail if xa->node has* a non-zero reference count.