23 for (
size_t i = 0; i <
PD_SIZE; ++i)
25 PageDirectory[i] = DWord<PDA::R>();
34 void MapPageTable(
const size_t Idx, uint32_t PageDirectory[PD_SIZE], uint32_t PageTable[PT_SIZE])
36 for (
size_t i = 0; i <
PT_SIZE; ++i)
39 | (DWord<PTA::R>() | DWord<PTA::P>());
42 PageDirectory[Idx] = ( (uint32_t) PageTable
43 | (DWord<PDA::R>() | DWord<PDA::P>())
65 :
"n"(DWord<CR0::PG>())
void MapPageTable(const size_t Idx, uint32_t PageDirectory[PD_SIZE], uint32_t PageTable[PT_SIZE])
Map page table.
const size_t PT_SIZE
page table size
void InitializePageDirectory(uint32_t PageDirectory[PD_SIZE])
uint32_t page_directory[PD_SIZE][[gnu::aligned(PG_SIZE)]]
const size_t PD_SIZE
page directory size
contains all kernel initialization routines
Virtual memory namespace.
void InstallPaging(const uint32_t PageDirectory[])
Set cr3 to page directory, and turn on paging.
const size_t PG_SIZE
page size
uint32_t pagetable0[PT_SIZE][[gnu::aligned(PG_SIZE)]]
void PAGE()
set up page directory, page table, and turn on paging