函数逻辑报告 |
Source Code:mm\page_alloc.c |
Create Date:2022-07-27 16:37:56 |
| Last Modify:2020-03-12 14:18:49 | Copyright©Brick |
| 首页 | 函数Tree |
| 注解内核,赢得工具 | 下载SCCT | English |
函数名称:Set up the zone data structures:* - mark all pages reserved* - mark all memory queues empty* - clear the memory bitmaps* NOTE: pgdat should get zeroed by caller.* NOTE: this function is only called during early init.
函数原型:static void __init free_area_init_core(struct pglist_data *pgdat)
返回类型:void
参数:
| 类型 | 参数 | 名称 |
|---|---|---|
| struct pglist_data * | pgdat |
| 6739 | pgdat_init_internals(pgdat) |
| 6742 | 以j小于MAX_NR_ZONES循环 |
| 6743 | zone等于包含了结点中各内存域的数据结构加j |
| 6745 | zone_start_pfn等于内存域第一个页帧的索引 |
| 6748 | freesize等于内存域中实际上可用的页数目 |
| 6755 | memmap_pages等于calc_memmap_size(size, freesize) |
| 6756 | 如果非is_highmem_idx(j)则 |
| 6757 | 如果freesize大于等于memmap_pages则 |
| 6758 | freesize减等于memmap_pages |
| 6763 | 否则打印警告信息(" %s zone: %lu pages exceeds freesize %lu\n", zone_names[j], memmap_pages, freesize) |
| 6769 | 如果j恒等于0且freesize大于dma_reserve则 |
| 6770 | freesize减等于dma_reserve |
| 6775 | 如果非is_highmem_idx(j)则nr_kernel_pages加等于freesize |
| 6778 | 否则如果nr_kernel_pages大于memmap_pages乘2则nr_kernel_pages减等于memmap_pages |
| 6780 | nr_all_pages加等于freesize |
| 6787 | zone_init_internals(zone, j, nid, freesize) |
| 6789 | 如果非size则继续下一循环 |
| 6793 | setup_usemap(pgdat, zone, zone_start_pfn, size) |
| 6795 | memmap_init(size, nid, j, zone_start_pfn) |
| 名称 | 描述 |
|---|---|
| free_area_init_node |
| 源代码转换工具 开放的插件接口 | X |
|---|---|
| 支持:c/c++/esqlc/java Oracle/Informix/Mysql 插件可实现:逻辑报告 代码生成和批量转换代码 |