Function report |
Source Code:mm\vmalloc.c |
Create Date:2022-07-28 14:58:06 |
Last Modify:2020-03-12 14:18:49 | Copyright©Brick |
home page | Tree |
Annotation kernel can get tool activity | Download SCCT | Chinese |
Name:Walk a vmap address to the struct page it maps.
Proto:struct page *vmalloc_to_page(const void *vmalloc_addr)
Type:struct page
Parameter:
Type | Parameter | Name |
---|---|---|
const void * | vmalloc_addr |
271 | addr = vmalloc_addr |
285 | If The "pgd_xxx()" functions here are trivial for a folded two-level* setup: the p4d is never bad, and a p4d always exists (as it's folded* into the pgd entry) Then Return NULL |
287 | p4d = p4d_offset(pgd, addr) |
288 | If The "p4d_xxx()" functions here are trivial for a folded two-level* setup: the pud is never bad, and a pud always exists (as it's folded* into the p4d entry) Then Return NULL |
290 | pud = pud_offset(p4d, addr) |
300 | WARN_ON_ONCE(pud_bad( * pud)) |
301 | If The "pud_xxx()" functions here are trivial for a folded two-level* setup: the pmd is never bad, and a pmd always exists (as it's folded* into the pud entry) || pud_bad( * pud) Then Return NULL |
303 | pmd = pmd_offset(pud, addr) |
304 | WARN_ON_ONCE(pmd_bad( * pmd)) |
308 | ptep = pte_offset_map(pmd, addr) |
310 | If pte_present(pte) Then page = pte_page(pte) |
313 | Return page |
Name | Describe |
---|---|
__text_poke | |
relay_buf_fault | ault() vm_op implementation for relay file mapping. |
vmalloc_to_pfn | Map a vmalloc()-space virtual address to the physical page frame number. |
aligned_vread | small helper routine , copy contents to buf from addr.* If the page is not present, fill zero. |
aligned_vwrite | |
remap_vmalloc_range_partial | map_vmalloc_range_partial - map vmalloc pages to userspace*@vma: vma to cover*@uaddr: target user address to start at*@kaddr: virtual address of vmalloc kernel memory*@size: size of map area* Returns: 0 for success, -Exxx on failure* This function checks |
swp_swapcount | How many references to @entry are currently swapped out?* This considers COUNT_CONTINUED so it returns exact answer. |
add_swap_count_continuation | add_swap_count_continuation - called when a swap count is duplicated* beyond SWAP_MAP_MAX, it allocates a new page and links that to the entry's* page of the original vmalloc'ed swap_map, to hold the continuation count |
swap_count_continued | swap_count_continued - when the original swap_map count is incremented* from SWAP_MAP_MAX, check if there is already a continuation page to carry* into, carry if so, or else fail until a new continuation page is allocated;* when the original swap_map |
free_swap_count_continuations | _swap_count_continuations - swapoff free all the continuation pages* appended to the swap_map, after swap_map is quiesced, before vfree'ing it. |
Source code conversion tool public plug-in interface | X |
---|---|
Support c/c++/esqlc/java Oracle/Informix/Mysql Plug-in can realize: logical Report Code generation and batch code conversion |