| 函数逻辑报告 | 
| Source Code: mm\memory.c | Create Date:2022-07-27 16:06:45 | 
| Last Modify:2020-03-12 14:18:49 | Copyright©Brick | 
| 首页 | 函数Tree | 
| 注解内核,赢得工具 | 下载SCCT | English | 
函数名称:vm_normal_page -- This function gets the "struct page" associated with a pte.* "Special" mappings do not wish to be associated with a "struct page" (either* it doesn't exist, or it exists but they don't want to touch it). In this
函数原型:struct page *vm_normal_page(struct vm_area_struct *vma, unsigned long addr, pte_t pte)
返回类型:struct page
参数:
| 类型 | 参数 | 名称 | 
|---|---|---|
| struct vm_area_struct * | vma | |
| unsigned long | addr | |
| pte_t | pte | 
| 598 | 如果此条件成立可能性大(为编译器优化)(!pte_special(pte))则转到:check_pfn | 
| 600 | 如果Function pointers to deal with this struct. 且find_special_page则返回:find_special_page(vma, addr) | 
| 602 | 如果Flags, see mm.h. 按位与Page-ranges managed without "struct page", just pure PFN 按位或Can contain "struct page" and pure PFN pages 的值则返回:NULL | 
| 604 | 如果is_zero_pfn(pfn)则返回:NULL | 
| 606 | 如果pte_devmap(pte)则返回:NULL | 
| 610 | 返回:NULL | 
| 620 | 否则 | 
| 623 | 如果pfn恒等于Offset (within vm_file) in PAGE_SIZEunits 加off则返回:NULL | 
| 625 | 如果非is_cow_mapping(Flags, see mm.h. )则返回:NULL | 
| 630 | 如果is_zero_pfn(pfn)则返回:NULL | 
| 633 | check_pfn : | 
| 634 | 如果此条件成立可能性小(为编译器优化)(pfn > highest_memmap_pfn)则 | 
| 643 | out : | 
| 644 | 返回:pfn_to_page(pfn) | 
| 名称 | 描述 | 
|---|---|
| get_gate_page | |
| copy_one_pte | py one vm_area from one task to the other. Assumes the page tables* already present in the new task to be cleared in the whole range* covered by this vma. | 
| zap_pte_range | |
| do_wp_page | This routine handles present pages, when users try to write* to a shared page. It is done by copying the page to a new address* and decrementing the shared-page counter for the old page.* Note that this routine assumes that the protection checks have been | 
| do_numa_page | |
| __munlock_pagevec_fill | Fill up pagevec for __munlock_pagevec using pte walk* The function expects that the struct page corresponding to @start address is* a non-TPH page already pinned and in the @pvec, and that it belongs to @zone | 
| change_pte_range | |
| madvise_cold_or_pageout_pte_range | |
| madvise_free_pte_range | |
| queue_pages_pte_range | Scan through pages checking if pages follow certain conditions,* and move them to the pagelist if they do | 
| __collapse_huge_page_isolate | |
| khugepaged_scan_pmd | |
| mc_handle_present_pte | |
| follow_page_pte | 
| 源代码转换工具 开放的插件接口 | X | 
|---|---|
| 支持:c/c++/esqlc/java Oracle/Informix/Mysql 插件可实现:逻辑报告 代码生成和批量转换代码 |