// 每个 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))