二级页表参数解释

// 每个 PGD 页表项对应 512 个 PTE
#define
PTRS_PER_PTE 512
// 由于只有二级页表,二级页表没有 PMD,所以为1,表示一个 PGD 页表项对应一个 PMD 页表项 #define PTRS_PER_PMD 1
// 一共有 2048 个 PGD 页表项,也就是一级页表项 #define PTRS_PER_PGD 2048 /* * PMD_SHIFT determines the size of the area a second-level page table can map * PGDIR_SHIFT determines what a third-level page table entry can map */ #define PMD_SHIFT 21 // 一个 PGD 页表项表示的内存地址范围是 21 bits,因为一共 32 bits,共有 11 bits 的PGD数量
#define PGDIR_SHIFT 21 #define PMD_SIZE (1UL << PMD_SHIFT) #define PMD_MASK (~(PMD_SIZE-1)) #define PGDIR_SIZE (1UL << PGDIR_SHIFT) #define PGDIR_MASK (~(PGDIR_SIZE-1))

 

posted @ 2023-06-22 14:33  流水灯  阅读(68)  评论(0编辑  收藏  举报