更新日期: 2022/06/01 来源: https://gitee.com/weharmony/kernel_liteos_a_note
VmSpace结构体 参考

虚拟空间,每个进程都有一个属于自己的虚拟内存地址空间 更多...

#include <los_vm_map.h>

成员变量

LOS_DL_LIST node
 
LosRbTree regionRbTree
 
LosMux regionMux
 
VADDR_T base
 
UINT32 size
 
VADDR_T heapBase
 
VADDR_T heapNow
 
LosVmMapRegionheap
 
VADDR_T mapBase
 
UINT32 mapSize
 
LosArchMmu archMmu
 
VADDR_T codeStart
 
VADDR_T codeEnd
 

详细描述

虚拟空间,每个进程都有一个属于自己的虚拟内存地址空间

在文件 los_vm_map.h146 行定义.

结构体成员变量说明

◆ archMmu

LosArchMmu VmSpace::archMmu

vm mapping physical memory | MMU记录<虚拟地址,物理地址>的映射情况

在文件 los_vm_map.h157 行定义.

◆ base

VADDR_T VmSpace::base

vm space base addr | 虚拟空间的基地址,线性区的分配范围,常用于判断地址是否在内核还是用户空间

在文件 los_vm_map.h150 行定义.

◆ codeEnd

VADDR_T VmSpace::codeEnd

user process code area end | 代码区结束位置

在文件 los_vm_map.h160 行定义.

◆ codeStart

VADDR_T VmSpace::codeStart

user process code area start | 代码区开始位置

在文件 los_vm_map.h159 行定义.

◆ heap

LosVmMapRegion* VmSpace::heap

heap region | 传说中的堆区,用于满足进程的动态内存需求,大家熟知的malloc,realloc,free其实就是在操作这个区

在文件 los_vm_map.h154 行定义.

◆ heapBase

VADDR_T VmSpace::heapBase

vm space heap base address | 堆区基地址,指向堆区起点

在文件 los_vm_map.h152 行定义.

◆ heapNow

VADDR_T VmSpace::heapNow

vm space heap base now | 堆顶地址,指向堆区终点,do_brk()直接修改堆的大小返回新的堆区结束地址, heapNow >= heapBase

在文件 los_vm_map.h153 行定义.

◆ mapBase

VADDR_T VmSpace::mapBase

vm space mapping area base | 虚拟空间映射区基地址,L1,L2表存放在这个区

在文件 los_vm_map.h155 行定义.

◆ mapSize

UINT32 VmSpace::mapSize

vm space mapping area size | 虚拟空间映射区大小,映射区是个很大的区。

在文件 los_vm_map.h156 行定义.

◆ node

LOS_DL_LIST VmSpace::node

vm space dl list | 节点,通过它挂到全局虚拟空间 g_vmSpaceList 链表上

在文件 los_vm_map.h147 行定义.

◆ regionMux

LosMux VmSpace::regionMux

region list mutex lock | 虚拟空间操作红黑树互斥锁

在文件 los_vm_map.h149 行定义.

◆ regionRbTree

LosRbTree VmSpace::regionRbTree

region red-black tree root | 采用红黑树方式管理本空间各个线性区

在文件 los_vm_map.h148 行定义.

◆ size

UINT32 VmSpace::size

vm space size | 虚拟空间大小

在文件 los_vm_map.h151 行定义.


该结构体的文档由以下文件生成: