函数逻辑报告 |
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 插件可实现:逻辑报告 代码生成和批量转换代码 |