函数逻辑报告 |
Source Code:mm\memory.c |
Create Date:2022-07-27 16:07:16 |
Last Modify:2020-03-12 14:18:49 | Copyright©Brick |
首页 | 函数Tree |
注解内核,赢得工具 | 下载SCCT | English |
函数名称:copy_page_range
函数原型:int copy_page_range(struct mm_struct *dst_mm, struct mm_struct *src_mm, struct vm_area_struct *vma)
返回类型:int
参数:
类型 | 参数 | 名称 |
---|---|---|
struct mm_struct * | dst_mm | |
struct mm_struct * | src_mm | |
struct vm_area_struct * | vma |
972 | 如果非Flags, see mm.h. 按位与Huge TLB Page VM 按位或Page-ranges managed without "struct page", just pure PFN 按位或Can contain "struct page" and pure PFN pages 的值的值且非Serialized by page_table_lock 则返回:0 |
976 | 如果is_vm_hugetlb_page(vma)则返回:copy_hugetlb_page_range(dst_mm, src_mm, vma) |
984 | ret等于track_pfn_copy(vma) |
995 | is_cow等于is_cow_mapping(Flags, see mm.h. ) |
997 | 如果is_cow则 |
998 | mmu_notifier_range_init( & range, MMU_NOTIFY_PROTECTION_PAGE, 0, vma, src_mm, addr, end) |
1000 | mmu_notifier_invalidate_range_start( & range) |
1003 | ret等于0 |
1006 | 循环 |
1008 | 如果pgd_none_or_clear_bad(src_pgd)则继续下一循环 |
1010 | 如果此条件成立可能性小(为编译器优化)(copy_p4d_range(dst_mm, src_mm, dst_pgd, src_pgd, vma, addr, next))则 |
1017 | 如果is_cow则mmu_notifier_invalidate_range_end( & range) |
1019 | 返回:ret |
名称 | 描述 |
---|---|
dup_mmap |
源代码转换工具 开放的插件接口 | X |
---|---|
支持:c/c++/esqlc/java Oracle/Informix/Mysql 插件可实现:逻辑报告 代码生成和批量转换代码 |