函数逻辑报告 |
Source Code:mm\swap_state.c |
Create Date:2022-07-27 16:44:47 |
Last Modify:2020-03-17 22:02:06 | Copyright©Brick |
首页 | 函数Tree |
注解内核,赢得工具 | 下载SCCT | English |
函数名称:add_to_swap_cache resembles add_to_page_cache_locked on swapper_space,* but sets SwapCache flag and private instead of mapping and index.
函数原型:int add_to_swap_cache(struct page *page, swp_entry_t entry, gfp_t gfp)
返回类型:int
参数:
类型 | 参数 | 名称 |
---|---|---|
struct page * | page | |
swp_entry_t | entry | |
gfp_t | gfp |
117 | idx等于Extract the `offset' field from a swp_entry_t. The swp_entry_t is in* arch-independent format |
121 | VM_BUG_ON_PAGE(!PageLocked(page), page) |
122 | VM_BUG_ON_PAGE(PageSwapCache(page), page) |
123 | VM_BUG_ON_PAGE(!PageSwapBacked(page), page) |
125 | page_ref_add(page, nr) |
126 | SetPageSwapCache(page) |
128 | 循环 |
129 | xas_lock_irq( & xas) |
131 | 如果xas_error() - Return an errno stored in the xa_state.*@xas: XArray operation state.* Return: 0 if no error has been noted. A negative errno if one has.则转到:unlock |
134 | VM_BUG_ON_PAGE(xa_index != idx + i, page) |
135 | set_page_private(page + i, val + i) |
141 | ADD_CACHE_INFO(add_total, nr) |
142 | unlock : |
143 | xas_unlock_irq( & xas) |
149 | ClearPageSwapCache(page) |
150 | page_ref_sub(page, nr) |
名称 | 描述 |
---|---|
add_to_swap | add_to_swap - allocate swap space for a page*@page: page we want to move to swap* Allocate swap space for the page and add the page to the* swap cache. Caller needs to hold the page lock. |
__read_swap_cache_async |
源代码转换工具 开放的插件接口 | X |
---|---|
支持:c/c++/esqlc/java Oracle/Informix/Mysql 插件可实现:逻辑报告 代码生成和批量转换代码 |