KernOS
VM Namespace Reference

Virtual memory namespace. More...

Namespaces

 PDA
 Page directory access (lower 12 bits of page directory entry)
 
 PTA
 Page table access (lower 12 bits of page table entry)
 

Functions

void InitializePageDirectory (uint32_t PageDirectory[PD_SIZE])
 
void MapPageTable (const size_t Idx, uint32_t PageDirectory[PD_SIZE], uint32_t PageTable[PT_SIZE])
 Map page table. More...
 
void InstallPaging (const uint32_t PageDirectory[])
 Set cr3 to page directory, and turn on paging. More...
 

Variables

const size_t PD_SIZE = 1024
 page directory size More...
 
const size_t PT_SIZE = 1024
 page table size More...
 
const size_t PG_SIZE = 4096
 page size More...
 
uint32_t page_directory [PD_SIZE][[gnu::aligned(PG_SIZE)]]
 
uint32_t pagetable0 [PT_SIZE][[gnu::aligned(PG_SIZE)]]
 

Detailed Description

Virtual memory namespace.

Function Documentation

◆ InitializePageDirectory()

void VM::InitializePageDirectory ( uint32_t  PageDirectory[PD_SIZE])

Definition at line 21 of file virtualmemory.cpp.

◆ InstallPaging()

void VM::InstallPaging ( const uint32_t  PageDirectory[])

Set cr3 to page directory, and turn on paging.

Parameters
PageDirectory

Definition at line 50 of file virtualmemory.cpp.

◆ MapPageTable()

void VM::MapPageTable ( const size_t  Idx,
uint32_t  PageDirectory[PD_SIZE],
uint32_t  PageTable[PT_SIZE] 
)

Map page table.

Parameters
Idx
PageDirectory
PageTable

Definition at line 34 of file virtualmemory.cpp.

Variable Documentation

◆ page_directory

uint32_t VM::page_directory[PD_SIZE][[gnu::aligned(PG_SIZE)]]

Definition at line 18 of file virtualmemory.cpp.

◆ pagetable0

uint32_t VM::pagetable0[PT_SIZE][[gnu::aligned(PG_SIZE)]]

Definition at line 19 of file virtualmemory.cpp.

◆ PD_SIZE

const size_t VM::PD_SIZE = 1024

page directory size

Definition at line 14 of file virtualmemory.cpp.

◆ PG_SIZE

const size_t VM::PG_SIZE = 4096

page size

Definition at line 16 of file virtualmemory.cpp.

◆ PT_SIZE

const size_t VM::PT_SIZE = 1024

page table size

Definition at line 15 of file virtualmemory.cpp.