VMSAv8TranslationMap
VMSAv8TranslationMap::VMSAv8TranslationMap(
VMSAv8TranslationMap::~VMSAv8TranslationMap()
VMSAv8TranslationMap::SwitchUserMap(VMSAv8TranslationMap *from, VMSAv8TranslationMap *to)
VMSAv8TranslationMap::CalcStartLevel(int vaBits, int pageBits)
VMSAv8TranslationMap::Lock()
VMSAv8TranslationMap::Unlock()
VMSAv8TranslationMap::MappedSize() const
uint32_t VMSAv8TranslationMap::fHwFeature;
VMSAv8TranslationMap::MaxPagesNeededToMap(addr_t start, addr_t end) const
uint64_t VMSAv8TranslationMap::fMair;
VMSAv8TranslationMap::TableFromPa(phys_addr_t pa)
VMSAv8TranslationMap::FreeTable(phys_addr_t ptPa, uint64_t va, int level,
VMSAv8TranslationMap::GetOrMakeTable(phys_addr_t ptPa, int level, int index,
static VMSAv8TranslationMap* sAsidMapping[kNumAsids] = {};
VMSAv8TranslationMap::FlushVAIfAccessed(uint64_t pte, addr_t va)
VMSAv8TranslationMap::AttemptPteBreakBeforeMake(uint64_t* ptePtr, uint64_t oldPte, addr_t va)
VMSAv8TranslationMap::ProcessRange(phys_addr_t ptPa, int level, addr_t va, size_t size,
VMSAv8TranslationMap::MairIndex(uint8_t type)
VMSAv8TranslationMap::GetMemoryAttr(uint32 attributes, uint32 memoryType, bool isKernel)
VMSAv8TranslationMap::Map(addr_t va, phys_addr_t pa, uint32 attributes, uint32 memoryType,
VMSAv8TranslationMap::Unmap(addr_t start, addr_t end)
VMSAv8TranslationMap::UnmapPage(VMArea* area, addr_t address,
VMSAv8TranslationMap::UnmapPages(VMArea* area, addr_t address, size_t size,
VMSAv8TranslationMap::ValidateVa(addr_t va)
VMSAv8TranslationMap::Query(addr_t va, phys_addr_t* pa, uint32* flags)
VMSAv8TranslationMap::QueryInterrupt(
VMSAv8TranslationMap::Protect(addr_t start, addr_t end, uint32 attributes, uint32 memoryType)
VMSAv8TranslationMap::ClearFlags(addr_t va, uint32 flags)
VMSAv8TranslationMap::ClearAccessedAndModified(
VMSAv8TranslationMap::Flush()
static void SwitchUserMap(VMSAv8TranslationMap *from, VMSAv8TranslationMap *to);
struct VMSAv8TranslationMap : public VMTranslationMap {
VMSAv8TranslationMap(
~VMSAv8TranslationMap();
int initialLevel = VMSAv8TranslationMap::CalcStartLevel(48, 12);
VMSAv8TranslationMap* fromMap = (VMSAv8TranslationMap*)from->TranslationMap();
VMSAv8TranslationMap* toMap = (VMSAv8TranslationMap*)to->TranslationMap();
VMSAv8TranslationMap::SwitchUserMap(fromMap, toMap);
int level = VMSAv8TranslationMap::CalcStartLevel(va_bits, page_bits);
pa |= VMSAv8TranslationMap::GetMemoryAttr(attributes, 0, true);
*_map = new (std::nothrow) VMSAv8TranslationMap(kernel, pt, 12, 48, 1);
ASSERT(VMSAv8TranslationMap::fHwFeature == 0);
VMSAv8TranslationMap::fHwFeature = VMSAv8TranslationMap::HW_ACCESS;
VMSAv8TranslationMap::fHwFeature
= VMSAv8TranslationMap::HW_ACCESS | VMSAv8TranslationMap::HW_DIRTY;
VMSAv8TranslationMap::fHwFeature |= VMSAv8TranslationMap::HW_COMMON_NOT_PRIVATE;
VMSAv8TranslationMap::fMair = mair;