X86PagingMethodPAE
gX86PagingMethod = new(&sPagingMethodBuffer) X86PagingMethodPAE;
char pae[sizeof(X86PagingMethodPAE)];
struct X86PagingMethodPAE::PhysicalPageSlotPool final
status_t InitInitial(X86PagingMethodPAE* method,
X86PagingMethodPAE::PhysicalPageSlotPool
X86PagingMethodPAE::PhysicalPageSlotPool::sInitialPhysicalPagePool[
X86PagingMethodPAE::PhysicalPageSlotPool::~PhysicalPageSlotPool()
X86PagingMethodPAE::PhysicalPageSlotPool::InitInitial(
X86PagingMethodPAE* method, kernel_args* args)
X86PagingMethodPAE::PhysicalPageSlotPool::InitInitialPostArea(
X86PagingMethodPAE::PhysicalPageSlotPool::Init(area_id dataArea,
X86PagingMethodPAE::PhysicalPageSlotPool::Map(phys_addr_t physicalAddress,
X86PagingMethodPAE::PhysicalPageSlotPool::AllocatePool(
= X86PagingMethodPAE::PageDirEntryForAddress(
X86PagingMethodPAE::X86PagingMethodPAE()
X86PagingMethodPAE::~X86PagingMethodPAE()
X86PagingMethodPAE::Init(kernel_args* args,
struct X86PagingMethodPAE::ToPAESwitcher {
X86PagingMethodPAE::InitPostArea(kernel_args* args)
X86PagingMethodPAE::CreateTranslationMap(bool kernel, VMTranslationMap** _map)
X86PagingMethodPAE::MapEarly(kernel_args* args, addr_t virtualAddress,
X86PagingMethodPAE::IsKernelPageAccessible(addr_t virtualAddress,
X86PagingMethodPAE::PutPageTableInPageDir(pae_page_directory_entry* entry,
X86PagingMethodPAE::PutPageTableEntryInTable(pae_page_table_entry* entry,
X86PagingMethodPAE::Allocate32BitPage(phys_addr_t& _physicalAddress,
X86PagingMethodPAE::Free32BitPage(void* address, phys_addr_t physicalAddress,
X86PagingMethodPAE::_GetInitialPoolCount()
X86PagingMethodPAE::_EarlyQuery(addr_t virtualAddress,
X86PagingMethodPAE::_EarlyGetPageTable(phys_addr_t address)
X86PagingMethodPAE::KernelVirtualPageDirPointerTable() const
X86PagingMethodPAE::KernelPhysicalPageDirPointerTable() const
/*static*/ inline X86PagingMethodPAE*
X86PagingMethodPAE::Method()
return static_cast<X86PagingMethodPAE*>(gX86PagingMethod);
X86PagingMethodPAE::PageDirEntryForAddress(
X86PagingMethodPAE::SetTableEntry(uint64_t* entry, uint64_t newEntry)
X86PagingMethodPAE::SetTableEntryFlags(uint64_t* entry, uint64_t flags)
X86PagingMethodPAE::TestAndSetTableEntry(uint64_t* entry,
X86PagingMethodPAE::ClearTableEntry(uint64_t* entry)
X86PagingMethodPAE::ClearTableEntryFlags(uint64_t* entry, uint64_t flags)
X86PagingMethodPAE::MemoryTypeToPageTableEntryFlags(uint32 memoryType)
class X86PagingMethodPAE final : public X86PagingMethod {
X86PagingMethodPAE();
virtual ~X86PagingMethodPAE();
static X86PagingMethodPAE* Method();
X86PagingMethodPAE::Method()->Free32BitPage(fPageDirPointerTable,
= (pae_page_table_entry*)X86PagingMethodPAE::Method()
= (pae_page_table_entry*)X86PagingMethodPAE::Method()
X86PagingMethodPAE* method = X86PagingMethodPAE::Method();
= X86PagingMethodPAE::PageDirEntryForAddress(
X86PagingMethodPAE::PutPageTableInPageDir(pageDirEntry,
X86PagingMethodPAE::PutPageTableEntryInTable(entry, physicalAddress,
= X86PagingMethodPAE::PageDirEntryForAddress(
= X86PagingMethodPAE::ClearTableEntry(&pageTable[index]);
= X86PagingMethodPAE::PageDirEntryForAddress(
pae_page_table_entry oldEntry = X86PagingMethodPAE::ClearTableEntry(
= X86PagingMethodPAE::PageDirEntryForAddress(
= X86PagingMethodPAE::ClearTableEntry(&pageTable[index]);
= X86PagingMethodPAE::PageDirEntryForAddress(
= X86PagingMethodPAE::PageDirEntryForAddress(
= (pae_page_table_entry*)X86PagingMethodPAE::Method()
= X86PagingMethodPAE::MemoryTypeToPageTableEntryFlags(memoryType);
= X86PagingMethodPAE::PageDirEntryForAddress(
oldEntry = X86PagingMethodPAE::TestAndSetTableEntry(
= X86PagingMethodPAE::PageDirEntryForAddress(
= X86PagingMethodPAE::ClearTableEntryFlags(entry, flagsToClear);
= X86PagingMethodPAE::PageDirEntryForAddress(
oldEntry = X86PagingMethodPAE::ClearTableEntryFlags(entry,
if (X86PagingMethodPAE::TestAndSetTableEntry(entry, 0, oldEntry)
oldEntry = X86PagingMethodPAE::ClearTableEntryFlags(entry,
= X86PagingMethodPAE::PageDirEntryForAddress(pdpt, virtualAddress);