Skip to main content

Crate moa_mm

Crate moa_mm 

Source
Expand description

页表定义

三级页表:PGD(1GB) → PMD(2MB) → PTE(4KB) 叶子可出现在任意级别,支持 4KB / 2MB / 1GB 页。

Structs§

PageProt
架构无关的页保护属性

Enums§

PageLevel
页大小级别

Constants§

BOOT_STACK_SIZE
Boot 阶段 per-CPU 栈大小(8KB)
KERNEL_ADDR_END
内核地址空间结束
KERNEL_ADDR_START
内核地址空间起始
KERNEL_STACK_SIZE
内核线程栈大小(16KB)
KFDT_ADDR_SIZE
内核 FDT 区域大小
KFDT_ADDR_START
内核 FDT 区域起始
KFIXMAP_ADDR_START
Fixmap 区域起始(KIMAGE 末尾 2MB)
KFIXMAP_NR_PAGES
Fixmap 页数
KIMAGE_ADDR_SIZE
内核镜像区域大小
KIMAGE_ADDR_START
内核镜像区域起始
KIO_ADDR_SIZE
内核 IO 映射区域大小
KIO_ADDR_START
内核 IO 映射区域起始
KMEM_ADDR_END
内核线性映射区域结束
KMEM_ADDR_START
内核线性映射区域起始
KPAGE_ADDR_SIZE
内核页元数据区域大小
KPAGE_ADDR_START
内核页元数据区域起始
PAGE_MASK
页掩码
PAGE_SHIFT
页偏移位数
PAGE_SIZE
页大小(4KB)
PGD_MASK
PGD 级掩码
PGD_SHIFT
PGD 级偏移位数
PGD_SIZE
PGD 级大小(1GB)
PMD_MASK
PMD 级掩码
PMD_SHIFT
PMD 级偏移位数
PMD_SIZE
PMD 级大小(2MB)
PTRS_PER_TABLE
每级页表条目数
USER_ADDR_END
用户态地址空间结束
USER_ADDR_START
用户态地址空间起始
VA_BITS
虚拟地址有效位宽

Functions§

entry_is_leaf
条目是否为叶子(非 table pointer)
entry_is_valid
条目是否有效
leaf_to_paddr
叶子条目 → 物理地址
paddr_to_leaf
物理地址 + 保护属性 → 叶子条目
paddr_to_table
物理地址 → 非叶子条目(table pointer)
table_to_paddr
非叶子条目 → 物理地址