Linux 内核 内存管理memblock 分配器 ④ ( memblockmemblock_typememblock_region 结构体的关系 )
Posted 韩曙亮
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux 内核 内存管理memblock 分配器 ④ ( memblockmemblock_typememblock_region 结构体的关系 )相关的知识,希望对你有一定的参考价值。
文章目录
一、memblock、memblock_type、memblock_region 结构体的关系
1、memblock、memblock_type 关系
memblock 分配器 定义在 Linux 内核源码的 linux-4.12\\include\\linux\\memblock.h#48 位置 ;
struct memblock
bool bottom_up; /* is bottom up direction? */
phys_addr_t current_limit;
struct memblock_type memory;
struct memblock_type reserved;
#ifdef CONFIG_HAVE_MEMBLOCK_PHYS_MAP
struct memblock_type physmem;
#endif
;
源码路径 : linux-4.12\\include\\linux\\memblock.h#48
memblock
结构体中的 memory
( 内存类型 ) , reserved
( 预留类型 ) , physmem
( 物理页内存类型 ) 这
3
3
3 个成员都是 memblock_type
结构体实例 ;
2、memblock_type、memblock_region 关系
struct memblock_type
结构体 定义在 Linux 内核源码的 linux-4.12\\include\\linux\\memblock.h#40 位置 ;
struct memblock_type
unsigned long cnt; /* number of regions */
unsigned long max; /* size of the allocated array */
phys_addr_t total_size; /* size of all regions */
struct memblock_region *regions;
char *name;
;
源码路径 : linux-4.12\\include\\linux\\memblock.h#40
其中的 regions
成员是 struct memblock_region
结构体类型的指针 ;
二、上述数据结构关系图示
以上是关于Linux 内核 内存管理memblock 分配器 ④ ( memblockmemblock_typememblock_region 结构体的关系 )的主要内容,如果未能解决你的问题,请参考以下文章
Linux 内核 内存管理memblock 分配器 ② ( memblock_type 内存块类型 | memblock_type 结构体成员分析 )
Linux 内核 内存管理memblock 分配器编程接口 ⑤ ( memblock_free 函数 | memblock_remove_range 函数 )
Linux 内核 内存管理memblock 分配器 ③ ( memblock_region 内存块区域 | memblock_region 结构体成员分析 | memblock 分配器标志位 )
Linux 内核 内存管理memblock 分配器编程接口 ① ( memblock 分配器编程接口简介 | memblock_add 函数原型分析 | memblock_add 函数源码 )
Linux 内核 内存管理memblock 分配器编程接口 ③ ( memblock_remove 函数 | memblock_remove_range 函数 )
Linux 内核 内存管理memblock 分配器编程接口 ④ ( memblock_alloc 函数 | memblock_alloc_base 函数 )