+typedef u32_t x86_pte_t;
+
+/**
+ * @brief 虚拟映射属性
+ *
+ */
+typedef struct
+{
+ // 虚拟页地址
+ ptr_t va;
+ // 物理页码(如果不存在映射,则为0)
+ u32_t pn;
+ // 物理页地址(如果不存在映射,则为0)
+ ptr_t pa;
+ // 映射的flags
+ u16_t flags;
+ // PTE地址
+ x86_pte_t* pte;
+} v_mapping;
+
+typedef struct
+{
+ x86_pte_t entry[PG_MAX_ENTRIES];
+} __attribute__((packed, aligned(4))) x86_page_table;
+
+/* 四个页挂载点,两个页目录挂载点: 用于临时创建&编辑页表 */
+#define PG_MOUNT_RANGE(l1_index) (701 <= l1_index && l1_index <= 703)
+
+/*
+ 当前进程内存空间挂载点
+*/
+#define VMS_SELF L2_BASE_VADDR
+
+#define PTE_MOUNTED(mnt, vpn) \
+ (((x86_page_table*)((mnt) | (((vpn)&0xffc00) << 2)))->entry[(vpn)&0x3ff])