函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

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

函数名称:check_xa_mark_2

函数原型:static noinline void check_xa_mark_2(struct xarray *xa)

返回类型:void

参数:

类型参数名称
struct xarray *xa
253  XA_STATE() - Declare an XArray operation state.*@name: Name of this operation state (usually xas).*@array: Array to operate on.*@index: Initial index of interest.* Declare and initialise an xa_state on the stack.(xas, xa, 0)
255  count等于0
258  xa_store_index(xa, 0, GFP_KERNEL)
259  xa_set_mark() - Set this mark on this entry.*@xa: XArray.*@index: Index of entry.*@mark: Mark number.* Attempting to set a mark on a %NULL entry does not succeed.* Context: Process context. Takes and releases the xa_lock.
260  xas_lock( & xas)
261  xas_load() - Load an entry from the XArray (advanced).*@xas: XArray operation state.* Usually walks the @xas to the appropriate state to load the entry* stored at xa_index. However, it will do nothing and return %NULL if*@xas is in an error state
262  xas_init_marks() - Initialise all marks for the entry*@xas: Array operations state
263  xas_unlock( & xas)
264  XA_BUG_ON(xa, !xa_get_mark() - Inquire whether this mark is set on this entry.*@xa: XArray.*@index: Index of entry.*@mark: Mark number.* This function uses the RCU read lock, so the result may be out of date* by the time it returns == 0)
266 index小于4500循环
267  xa_store_index(xa, index, GFP_KERNEL)
268  xa_set_mark() - Set this mark on this entry.*@xa: XArray.*@index: Index of entry.*@mark: Mark number.* Attempting to set a mark on a %NULL entry does not succeed.* Context: Process context. Takes and releases the xa_lock.
271  xas_reset() - Reset an XArray operation state.*@xas: XArray operation state.* Resets the error or walk state of the @xas so future walks of the* array will start from the root. Use this if you have dropped the* xarray lock and want to reuse the xa_state.
272  _read_lock() - mark the beginning of an RCU read-side critical section* When synchronize_rcu() is invoked on one CPU while other CPUs* are within RCU read-side critical sections, then the* synchronize_rcu() is guaranteed to block until after all the other
273  xas_for_each_marked() - Iterate over a range of an XArray( & xas, entry, ULONG_MAX, XA_MARK_0)
274  count自加
275  _read_unlock() - marks the end of an RCU read-side critical section.* In most situations, rcu_read_unlock() is immune from deadlock.* However, in kernels built with CONFIG_RCU_BOOST, rcu_read_unlock()
276  XA_BUG_ON(xa, count != 1000)
278  xas_lock( & xas)
280  xas_init_marks() - Initialise all marks for the entry*@xas: Array operations state
281  XA_BUG_ON(xa, !xa_get_mark() - Inquire whether this mark is set on this entry.*@xa: XArray.*@index: Index of entry.*@mark: Mark number.* This function uses the RCU read lock, so the result may be out of date* by the time it returns)
282  XA_BUG_ON(xa, !xas_get_mark() - Returns the state of this mark.*@xas: XArray operation state.*@mark: Mark number.* Return: true if the mark is set, false if the mark is clear or @xas* is in an error state.)
284  xas_unlock( & xas)
286  xa_destroy() - Free all internal data structures.*@xa: XArray.* After calling this function, the XArray is empty and has freed all memory* allocated for its internal data structures. You are responsible for* freeing the objects referenced by the XArray.
调用者
名称描述
check_xa_mark