函数逻辑报告 |
Source Code:mm\page_owner.c |
Create Date:2022-07-27 17:58:54 |
Last Modify:2020-03-12 14:18:49 | Copyright©Brick |
首页 | 函数Tree |
注解内核,赢得工具 | 下载SCCT | English |
函数名称:init_pages_in_zone
函数原型:static void init_pages_in_zone(pg_data_t *pgdat, struct zone *zone)
返回类型:void
参数:
类型 | 参数 | 名称 |
---|---|---|
pg_data_t * | pgdat | |
struct zone * | zone |
548 | pfn等于内存域第一个页帧的索引 |
549 | end_pfn等于zone_end_pfn(zone) |
550 | count等于0 |
561 | pfn等于@a is a power of 2 value (pfn + 1, MAX_ORDER_NR_PAGES) |
562 | 继续下一循环 |
565 | block_end_pfn等于@a is a power of 2 value (pfn + 1, pageblock_nr_pages) |
566 | block_end_pfn等于两数取小(block_end_pfn, end_pfn) |
568 | 以pfn小于block_end_pfn循环 |
572 | 如果非pfn_valid_within(pfn)则继续下一循环 |
575 | page等于pfn_to_page(pfn) |
590 | 如果order大于0且order小于Free memory management - zoned buddy allocator. 则pfn加等于1UL左移order位的值减1 |
592 | 继续下一循环 |
595 | 如果PageReserved(page)则继续下一循环 |
598 | page_ext等于lookup_page_ext(page) |
599 | 如果此条件成立可能性小(为编译器优化)(!page_ext)则继续下一循环 |
603 | 如果st_bit - Determine whether a bit is set*@nr: bit number to test*@addr: Address to start counting from则继续下一循环 |
607 | __set_page_owner_handle(page, page_ext, early_handle, 0, 0) |
609 | count自加 |
611 | cond_resched() |
614 | 打印信息("Node %d, zone %8s: page owner found early allocated %lu pages\n", 全局结点ID, 内存域的惯用名称(NORMAL DMA HIGHMEM), count) |
名称 | 描述 |
---|---|
init_zones_in_node |
源代码转换工具 开放的插件接口 | X |
---|---|
支持:c/c++/esqlc/java Oracle/Informix/Mysql 插件可实现:逻辑报告 代码生成和批量转换代码 |