Luna/kernel/include/memory/VMM.h

21 lines
464 B
C++

#pragma once
#include "memory/Paging.h"
namespace Paging
{
class VirtualMemoryManager
{
public:
void init(); // fetch page table from cr3
void init(PageTable* PML4);
void map(uint64_t virtualAddress, uint64_t physicalAddress);
void unmap(uint64_t virtualAddress);
uint64_t getPhysical(uint64_t virtualAddress);
private:
PageTable* PML4;
};
}
extern Paging::VirtualMemoryManager kernelVMM;