15#define PGNUMMASK 0xFFFFFFFFFFFFF000ULL
18#define PGIDXMASK (512 - 1)
21#define PGSIZE (1 << PGSHIFT)
22#define PGMASK (PGSIZE - 1)
24#define LARGE_PGSHIFT 21
25#define LARGE_PGSIZE (1 << LARGE_PGSHIFT)
26#define LARGE_PGMASK (LARGE_PGSIZE - 1)
28#define HUGE_PGSHIFT 30
29#define HUGE_PGSIZE (1 << HUGE_PGSHIFT)
30#define HUGE_PGMASK (HUGE_PGSIZE - 1)
32#define ROUNDUP_PGSIZE(x) (((x) + LARGE_PGSIZE - 1) & ~LARGE_PGMASK)
33#define ROUNDDOWN_PGSIZE(x) ((x) & ~LARGE_PGMASK)
48#define PTE_NX 0x8000000000000000ULL
50#define PAGETABLE_ENTRIES 512
71#define SEG_DPL_SHIFT 45
74#define SEG_CS (0xE << 40)
75#define SEG_DS (0x2 << 40)
77#define SEG_TSA (0x9 << 40)
78#define SEG_TSB (0xB << 40)
148#define CR0_PE 0x00000001
149#define CR0_MP 0x00000002
150#define CR0_EM 0x00000004
151#define CR0_TS 0x00000008
152#define CR0_ET 0x00000010
153#define CR0_NE 0x00000020
154#define CR0_WP 0x00010000
155#define CR0_AM 0x00040000
156#define CR0_NW 0x20000000
157#define CR0_CD 0x40000000
158#define CR0_PG 0x80000000
160#define CR4_VME 0x00000001
161#define CR4_PVI 0x00000002
162#define CR4_TSD 0x00000004
163#define CR4_DE 0x00000008
164#define CR4_PSE 0x00000010
165#define CR4_PAE 0x00000020
166#define CR4_MCE 0x00000040
167#define CR4_PGE 0x00000080
168#define CR4_PCE 0x00000100
169#define CR4_OSFXSR 0x00000200
170#define CR4_OSXMMEXCPT 0x00000400
171#define CR4_FSGSBASE 0x00010000
172#define CR4_OSXSAVE 0x00040000
174#define RFLAGS_CF 0x00000001
175#define RFLAGS_PF 0x00000004
176#define RFLAGS_AF 0x00000010
177#define RFLAGS_ZF 0x00000040
178#define RFLAGS_SF 0x00000080
179#define RFLAGS_TF 0x00000100
180#define RFLAGS_IF 0x00000200
181#define RFLAGS_DF 0x00000400
182#define RFLAGS_OF 0x00000800
184#define RFLAGS_NT 0x00004000
185#define RFLAGS_RF 0x00010000
186#define RFLAGS_VM 0x00020000
187#define RFLAGS_AC 0x00040000
188#define RFLAGS_VIF 0x00080000
189#define RFLAGS_VIP 0x00100000
190#define RFLAGS_ID 0x00200000
196#define DR7_DR0L 0x00000001
197#define DR7_DR0G 0x00000002
198#define DR7_DR1L 0x00000004
199#define DR7_DR1G 0x00000008
200#define DR7_DR2L 0x00000010
201#define DR7_DR2G 0x00000020
202#define DR7_DR3L 0x00000040
203#define DR7_DR3G 0x00000080
209#define MSR_EFER 0xC0000080
211#define EFER_SCE 0x0001
212#define EFER_LME 0x0100
213#define EFER_LMA 0x0400
214#define EFER_NXE 0x0800
215#define EFER_SVME 0x1000
216#define EFER_SLE 0x2000
217#define EFER_FFXSR 0x4000
218#define EFER_TCE 0x8000
221#define MSR_STAR 0xC0000081
222#define MSR_LSTAR 0xC0000082
223#define MSR_CSTAR 0xC0000083
224#define MSR_SFMASK 0xC0000084
PageEntry entries[PAGETABLE_ENTRIES]
uint64_t SegmentDescriptor
#define PAGETABLE_ENTRIES