函数逻辑报告 | 
Source Code:mm\swapfile.c | 
Create Date:2022-07-27 16:50:45 | 
| Last Modify:2020-03-17 22:19:49 | Copyright©Brick | 
| 首页 | 函数Tree | 
| 注解内核,赢得工具 | 下载SCCT | English | 
函数名称:add_swap_count_continuation - called when a swap count is duplicated* beyond SWAP_MAP_MAX, it allocates a new page and links that to the entry's* page of the original vmalloc'ed swap_map, to hold the continuation count
函数原型:int add_swap_count_continuation(swp_entry_t entry, gfp_t gfp_mask)
返回类型:int
参数:
| 类型 | 参数 | 名称 | 
|---|---|---|
| swp_entry_t | entry | |
| gfp_t | gfp_mask | 
| 3538 | ret等于0 | 
| 3544 | page等于alloc_page(gfp_mask | __GFP_HIGHMEM) | 
| 3547 | 如果非si则 | 
| 3552 | 转到:outer | 
| 3554 | 加自旋锁 | 
| 3556 | offset等于Extract the `offset' field from a swp_entry_t. The swp_entry_t is in* arch-independent format | 
| 3558 | ci等于lock_cluster(si, offset) | 
| 3568 | 转到:out | 
| 3571 | 如果非page则 | 
| 3584 | 加自旋锁 | 
| 3589 | 如果非page_private(head)则 | 
| 3591 | 初始化链表头 | 
| 3592 | set_page_private(head, SWP_CONTINUED) | 
| 3593 | SWP_USED etc: see above 或等于SWP_CONTINUED | 
| 3603 | 如果非count按位与See swap_map continuation for full count 的值则转到:out_unlock_cont | 
| 3606 | map等于kmap_atomic(list_page)加offset | 
| 3618 | 添加链表项 | 
| 3619 | page = NULL | 
| 3620 | out_unlock_cont : | 
| 3621 | 自旋锁解锁 | 
| 3622 | out : | 
| 3623 | unlock_cluster(ci) | 
| 3624 | 自旋锁解锁 | 
| 3625 | put_swap_device(si) | 
| 3626 | outer : | 
| 3627 | 如果page则__free_page(page) | 
| 3629 | 返回:ret | 
| 名称 | 描述 | 
|---|---|
| swap_duplicate | Increase reference count of swap entry by 1 | 
| 源代码转换工具 开放的插件接口  | X | 
|---|---|
| 支持:c/c++/esqlc/java Oracle/Informix/Mysql 插件可实现:逻辑报告 代码生成和批量转换代码  |