#include namespace Memory { Virtual::PageMapIndexer::PageMapIndexer(uint64_t VirtualAddress) { #if defined(__amd64__) this->PDPIndex = (VirtualAddress & ((uint64_t)0x1FF << 39)) >> 39; this->PDIndex = (VirtualAddress & ((uint64_t)0x1FF << 30)) >> 30; this->PTIndex = (VirtualAddress & ((uint64_t)0x1FF << 21)) >> 21; this->PIndex = (VirtualAddress & ((uint64_t)0x1FF << 12)) >> 12; #elif defined(__i386__) this->PDIndex = (VirtualAddress & ((uint64_t)0x3FF << 22)) >> 22; this->PTIndex = (VirtualAddress & ((uint64_t)0x3FF << 12)) >> 12; this->PIndex = (VirtualAddress & ((uint64_t)0xFFF)) >> 0; #elif defined(__aarch64__) this->PDIndex = (VirtualAddress & ((uint64_t)0x1FF << 30)) >> 30; this->PTIndex = (VirtualAddress & ((uint64_t)0x1FF << 21)) >> 21; this->PIndex = (VirtualAddress & ((uint64_t)0x1FF << 12)) >> 12; #endif } }