bootmem的笔记
来源:互联网 发布:北京电子科技学院知乎 编辑:程序博客网 时间:2024/06/04 18:50
//The struct of bootmem is simple, first several pages are
//used for a page frame bitmap. All left pages can be used
//by system during booting phrase
typedef struct bootmem_data {
unsigned long node_boot_start; //start physical addr
unsigned long node_low_pfn; //end page frame
void *node_bootmem_map; //page frame bitmap
unsigned long last_offset;
unsigned long last_pos;
unsigned long last_success; /* Previous allocation point. To speed
* up searching */
} bootmem_data_t;
init_bootmem_core()
//init bootmem_data_t struct
//node_boot_start, node_low_pfn, node_bootmem_map
//set bitmap node_bootmem_map to 1
//Marks a particular physical memory range as unallocatable
reserve_bootmem_core()
//change the bitmap for the range
free_bootmem()
free_bootmem_core()
//Marks a particular physical memory range as allocatable
free_bootmem_core()
__alloc_bootmem_node()
//find a continuous memory area and set bitmap to 1
if __alloc_bootmem_core() failed
__alloc_bootmem()
__alloc_bootmem
for_each_pgdat(pgdat)
__alloc_bootmem_core
//reclaim pages and added them to Buddy system
free_all_bootmem
//used for a page frame bitmap. All left pages can be used
//by system during booting phrase
typedef struct bootmem_data {
unsigned long node_boot_start; //start physical addr
unsigned long node_low_pfn; //end page frame
void *node_bootmem_map; //page frame bitmap
unsigned long last_offset;
unsigned long last_pos;
unsigned long last_success; /* Previous allocation point. To speed
* up searching */
} bootmem_data_t;
init_bootmem_core()
//init bootmem_data_t struct
//node_boot_start, node_low_pfn, node_bootmem_map
//set bitmap node_bootmem_map to 1
//Marks a particular physical memory range as unallocatable
reserve_bootmem_core()
//change the bitmap for the range
free_bootmem()
free_bootmem_core()
//Marks a particular physical memory range as allocatable
free_bootmem_core()
__alloc_bootmem_node()
//find a continuous memory area and set bitmap to 1
if __alloc_bootmem_core() failed
__alloc_bootmem()
__alloc_bootmem
for_each_pgdat(pgdat)
__alloc_bootmem_core
//reclaim pages and added them to Buddy system
free_all_bootmem
- bootmem的笔记
- bootmem
- Bootmem
- 内核的bootmem内存分配器
- linux 内核 内存管理 bootmem alloctor 的初始化
- Linux内存初始化:bootmem到buddy的过渡
- 三读bootmem
- bootmem allocator
- Bootmem机制
- Bootmem机制
- uclinux2.6(bf561)中的bootmem分析(2):调用前的参数分析
- linux内存模型之buddy(伙伴)系统三从bootmem到buddy的过渡
- linux内存模型之buddy(伙伴)系统三从bootmem到buddy的过渡
- 启动期间的内存管理之引导分配器bootmem--Linux内存管理(十)
- mips架构linux启动分析(五)(bootmem和blockmem机制的初始化)(prom_init_numa_memory)
- bootmem_init分析(Bootmem Allocator)
- bootmem & buddy Allocator
- bootmem allocator介绍
- treeview的一段代码
- 编写一个通用的求三个元素中最大值得类模版并进行测试
- 向sql数据库中存取照片
- 服装制造业ERP应用(4)-ERP应用六大特点
- RDP ACTIVEX 协议(转贴,以后用)
- bootmem的笔记
- 链表
- vector类
- 十月假期过去了。
- 模仿土豆网首页图片切换特效的代码
- Windows平台九点提升权限终极技巧
- 实现CRC校验码
- oracle高版本向低版本导入数据方法
- 学习笔记(001)-隐式类型