函数逻辑报告 |
Source Code:mm\page_io.c |
Create Date:2022-07-27 16:43:57 |
| Last Modify:2020-03-12 14:18:49 | Copyright©Brick |
| 首页 | 函数Tree |
| 注解内核,赢得工具 | 下载SCCT | English |
函数名称:generic_swapfile_activate
函数原型:int generic_swapfile_activate(struct swap_info_struct *sis, struct file *swap_file, sector_t *span)
返回类型:int
参数:
| 类型 | 参数 | 名称 |
|---|---|---|
| struct swap_info_struct * | sis | |
| struct file * | swap_file | |
| sector_t * | span |
| 158 | lowest_block等于负1 |
| 159 | highest_block等于0 |
| 160 | nr_extents等于0 |
| 164 | blocks_per_page等于PAGE_SIZE右移blkbits位 |
| 170 | probe_block等于0 |
| 171 | page_no等于0 |
| 178 | cond_resched() |
| 180 | first_block等于查找文件中的块号 |
| 181 | 如果first_block恒等于0则转到:bad_bmap |
| 187 | 如果first_block按位与blocks_per_page减1则 |
| 188 | probe_block自加 |
| 189 | 转到:reprobe |
| 199 | 如果block不等于first_block加block_in_page则 |
| 201 | probe_block自加 |
| 202 | 转到:reprobe |
| 207 | 如果page_no则 |
| 217 | ret等于Add a block range (and the corresponding page range) into this swapdev's* extent tree.* This function rather assumes that it is called in ascending page order. |
| 220 | nr_extents加等于ret |
| 221 | page_no自加 |
| 222 | probe_block加等于blocks_per_page |
| 223 | reprobe : |
| 224 | 继续下一循环 |
| 226 | ret等于nr_extents |
| 227 | span等于1加highest_block减lowest_block |
| 230 | xtent of the swap_map 等于page_no |
| 231 | al of usable pages of swap 等于page_no减1 |
| 232 | dex of last free in swap_map 等于page_no减1 |
| 233 | out : |
| 234 | 返回:ret |
| 235 | bad_bmap : |
| 236 | 打印错误信息("swapon: swapfile has holes\n") |
| 238 | 转到:out |
| 名称 | 描述 |
|---|---|
| setup_swap_extents | A `swap extent' is a simple thing which maps a contiguous range of pages* onto a contiguous range of disk blocks. An ordered list of swap extents* is built at swapon time and is then used at swap_writepage/swap_readpage |
| 源代码转换工具 开放的插件接口 | X |
|---|---|
| 支持:c/c++/esqlc/java Oracle/Informix/Mysql 插件可实现:逻辑报告 代码生成和批量转换代码 |