Refactor MMU for multi-paging support and add 5-Level paging #16
@ -30,7 +30,7 @@
|
|||||||
#define MM_PDI_SHIFT 21
|
#define MM_PDI_SHIFT 21
|
||||||
#define MM_PPI_SHIFT 30
|
#define MM_PPI_SHIFT 30
|
||||||
#define MM_PXI_SHIFT 39
|
#define MM_PXI_SHIFT 39
|
||||||
#define MM_LA57_SHIFT 48
|
#define MM_P5I_SHIFT 48
|
||||||
|
|
||||||
/* Number of PTEs per page */
|
/* Number of PTEs per page */
|
||||||
#define MM_PTE_PER_PAGE 512
|
#define MM_PTE_PER_PAGE 512
|
||||||
|
@ -167,7 +167,7 @@ BlMapPage(IN PXTBL_PAGE_MAPPING PageMap,
|
|||||||
while(NumberOfPages > 0)
|
while(NumberOfPages > 0)
|
||||||
{
|
{
|
||||||
/* Calculate the indices in the various Page Tables from the virtual address */
|
/* Calculate the indices in the various Page Tables from the virtual address */
|
||||||
Pml5Entry = (VirtualAddress & ((ULONGLONG)0x1FF << MM_LA57_SHIFT)) >> MM_LA57_SHIFT;
|
Pml5Entry = (VirtualAddress & ((ULONGLONG)0x1FF << MM_P5I_SHIFT)) >> MM_P5I_SHIFT;
|
||||||
Pml4Entry = (VirtualAddress & ((ULONGLONG)0x1FF << MM_PXI_SHIFT)) >> MM_PXI_SHIFT;
|
Pml4Entry = (VirtualAddress & ((ULONGLONG)0x1FF << MM_PXI_SHIFT)) >> MM_PXI_SHIFT;
|
||||||
Pml3Entry = (VirtualAddress & ((ULONGLONG)0x1FF << MM_PPI_SHIFT)) >> MM_PPI_SHIFT;
|
Pml3Entry = (VirtualAddress & ((ULONGLONG)0x1FF << MM_PPI_SHIFT)) >> MM_PPI_SHIFT;
|
||||||
Pml2Entry = (VirtualAddress & ((ULONGLONG)0x1FF << MM_PDI_SHIFT)) >> MM_PDI_SHIFT;
|
Pml2Entry = (VirtualAddress & ((ULONGLONG)0x1FF << MM_PDI_SHIFT)) >> MM_PDI_SHIFT;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user