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