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