函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

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

函数名称: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

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

返回类型:void

参数:

类型参数名称
struct xa_state *xas
233  entry等于Starts a walk. If the @xas is already valid, we assume that it's on* the right path and just return where we've got to. If we're in an* error state, return NULL. If the index is outside the current scope
235 Private 循环
236  node等于Private
238  如果xa_shift大于Bits remaining in each slot 退出
240  entry等于xas_descend(xas, node)
241  如果Bits remaining in each slot 恒等于0则退出
244  返回:entry
调用者
名称描述
xas_storexas_store() - Store this entry in the XArray
__xas_prev__xas_prev() - Find the previous entry in the XArray.*@xas: XArray operation state.* Helper function for xas_prev() which handles all the complex cases* out of line.
__xas_next__xas_next() - Find the next entry in the XArray.*@xas: XArray operation state.* Helper function for xas_next() which handles all the complex cases* out of line.
xas_findxas_find() - Find the next present entry in the XArray
xa_loadxa_load() - Load an entry from an XArray.*@xa: XArray.*@index: index into array.* Context: Any context. Takes and releases the RCU lock.* Return: The entry at @index in @xa.
__xa_cmpxchg__xa_cmpxchg() - Store this entry in the XArray
__xa_insert__xa_insert() - Store this entry in the XArray if no entry is present.*@xa: XArray.*@index: Index into array.*@entry: New entry.*@gfp: Memory allocation flags.* Inserting a NULL entry will store a reserved entry (like xa_reserve())* if no entry is present
__xa_set_mark__xa_set_mark() - Set this mark on this entry while locked.*@xa: XArray.*@index: Index of entry.*@mark: Mark number.* Attempting to set a mark on a %NULL entry does not succeed.* Context: Any context. Expects xa_lock to be held on entry.
__xa_clear_mark__xa_clear_mark() - Clear this mark on this entry while locked.*@xa: XArray.*@index: Index of entry.*@mark: Mark number.* Context: Any context. Expects xa_lock to be held on entry.
ida_freeda_free() - Release an allocated ID.*@ida: IDA handle.*@id: Previously allocated ID.* Context: Any context.
check_xa_mark_2
check_xa_shrink
check_accountCheck that the pointer / value / sibling entries are accounted the* way we expect them to be.
find_get_entryd_get_entry - find and get a page cache entry*@mapping: the address_space to search*@offset: the page cache index* Looks up the page cache slot at @mapping & @offset
find_get_pages_contigd_get_pages_contig - gang contiguous pagecache lookup*@mapping: The address_space to search*@index: The starting page index*@nr_pages: The maximum number of pages*@pages: Where the resulting pages are placed* find_get_pages_contig() works exactly like
__test_set_page_writeback
__clear_shadow_entryRegular page slots are stabilized by the page lock even without the tree* itself locked. These unlocked entries need verification under the tree* lock.
migrate_page_move_mappingReplace the page in the mapping.* The number of remaining references must be:* 1 for anonymous pages without a mapping* 2 for pages with a mapping* 3 for pages with a mapping and PagePrivate/PagePrivate2 set.
migrate_huge_page_move_mappingThe expected number of remaining references is the same as that* of migrate_page_move_mapping().
split_huge_page_to_listThis function splits huge page into normal pages. @page can point to any* subpage of huge page to split. Split doesn't change the position of @page.* Only caller must hold pin on the @page, otherwise split fails with -EBUSY.* The huge page must be locked.
dax_insert_entryBy this point grab_mapping_entry() has ensured that we have a locked entry* of the appropriate size so we don't have to worry about downgrading PMDs to* PTEs
__add_to_page_cache_locked
dax_lock_pagedax_lock_mapping_entry - Lock the DAX entry corresponding to a page*@page: The page whose entry we want to lock* Context: Process context.* Return: A cookie to pass to dax_unlock_page() or 0 if the entry could* not be locked.