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