Function report |
Source Code:mm\page_owner.c |
Create Date:2022-07-28 16:23:58 |
Last Modify:2020-03-12 14:18:49 | Copyright©Brick |
home page | Tree |
Annotation kernel can get tool activity | Download SCCT | Chinese |
Name:read_page_owner
Proto:static ssize_t read_page_owner(struct file *file, char __user *buf, size_t count, loff_t *ppos)
Type:ssize_t
Parameter:
Type | Parameter | Name |
---|---|---|
struct file * | file | |
char __user * | buf | |
size_t | count | |
loff_t * | ppos |
465 | If Not static_branch_unlikely( & page_owner_inited) Then Return -EINVAL |
468 | page = NULL |
469 | pfn = min_low_pfn + ppos |
472 | When Not pfn_valid(pfn) && (pfn & MAX_ORDER_NR_PAGES - 1 ) != 0 cycle |
473 | pfn++ |
483 | If (pfn & MAX_ORDER_NR_PAGES - 1 ) == 0 && Not pfn_valid(pfn) Then |
484 | pfn += MAX_ORDER_NR_PAGES - 1 |
485 | Continue |
489 | If Not pfn_valid_within(pfn) Then Continue |
492 | page = pfn_to_page(pfn) |
494 | freepage_order = Like page_order(), but for callers who cannot afford to hold the zone lock(page) |
496 | If freepage_order < Free memory management - zoned buddy allocator. Then pfn += (1UL << freepage_order) - 1 |
498 | Continue |
501 | page_ext = lookup_page_ext(page) |
502 | If Value for the false possibility is greater at compile time(!page_ext) Then Continue |
509 | If Not st_bit - Determine whether a bit is set*@nr: bit number to test*@addr: Address to start counting from Then Continue |
516 | If Not st_bit - Determine whether a bit is set*@nr: bit number to test*@addr: Address to start counting from Then Continue |
519 | page_owner = get_page_owner(page_ext) |
525 | If Not IS_ALIGNED(pfn, 1 << order) Then Continue |
533 | If Not handle Then Continue |
537 | ppos = pfn - min_low_pfn + 1 |
539 | Return print_page_owner(buf, count, pfn, page, page_owner, handle) |
543 | Return 0 |
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 |