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