函数逻辑报告 | 
Source Code:mm\z3fold.c | 
Create Date:2022-07-27 18:04:47 | 
| Last Modify:2020-03-12 14:18:49 | Copyright©Brick | 
| 首页 | 函数Tree | 
| 注解内核,赢得工具 | 下载SCCT | English | 
函数名称:compact_single_buddy
函数原型:static struct z3fold_header *compact_single_buddy(struct z3fold_header *zhdr)
返回类型:struct z3fold_header
参数:
| 类型 | 参数 | 名称 | 
|---|---|---|
| struct z3fold_header * | zhdr | 
| 672 | pool等于zhdr_to_pool(zhdr) | 
| 674 | old_handle等于0 | 
| 675 | sz等于0 | 
| 676 | struct z3fold_header * new_zhdr = NULL | 
| 680 | unsigned short * moved_chunks = NULL | 
| 687 | p加等于ZHDR_SIZE_ALIGNED | 
| 688 | sz等于first_chunks左移CHUNK_SHIFT位 | 
| 689 | old_handle = (unsigned long) & * we are using BUDDY_MASK in handle_to_buddy etc. so there should * be enough slots to hold all possible variants[first_idx] | 
| 690 | moved_chunks等于first_chunks | 
| 692 | p加等于start_middle左移CHUNK_SHIFT位 | 
| 693 | sz等于middle_chunks左移CHUNK_SHIFT位 | 
| 697 | p加等于PAGE_SIZE减last_chunks左移CHUNK_SHIFT位的值 | 
| 698 | sz等于last_chunks左移CHUNK_SHIFT位 | 
| 699 | old_handle = (unsigned long) & * we are using BUDDY_MASK in handle_to_buddy etc. so there should * be enough slots to hold all possible variants[last_idx] | 
| 700 | moved_chunks等于last_chunks | 
| 703 | 如果sz大于0则 | 
| 709 | 如果非new_zhdr则返回:NULL | 
| 715 | 如果first_chunks恒等于0则 | 
| 722 | 否则如果last_chunks恒等于0则 | 
| 724 | 否则如果middle_chunks恒等于0则 | 
| 743 | 默认 | 
| 744 | 转到:out_fail | 
| 746 | foreign_handles自加 | 
| 748 | write_lock( & lock) | 
| 751 | 如果new_bud恒等于LAST则old_handle或等于last_chunks左移BUDDY_SHIFT位 | 
| 754 | write_unlock( & lock) | 
| 758 | moved_chunks等于0 | 
| 761 | 返回:new_zhdr | 
| 763 | out_fail : | 
| 764 | 如果new_zhdr则 | 
| 767 | 否则 | 
| 772 | 返回:NULL | 
| 名称 | 描述 | 
|---|---|
| do_compact_page | 
| 源代码转换工具 开放的插件接口  | X | 
|---|---|
| 支持:c/c++/esqlc/java Oracle/Informix/Mysql 插件可实现:逻辑报告 代码生成和批量转换代码  |