Go to the documentation of this file.
18 #ifndef __LIBARCH_ARM_PAGING_H
19 #define __LIBARCH_ARM_PAGING_H
143 const bool tablesOnly =
false);
virtual Result activate(bool initializeMMU=false)
Activate the MemoryContext.
Virtual memory abstract interface.
Arch::Cache m_cache
Caching implementation.
ARMPaging(MemoryMap *map, SplitAllocator *alloc)
Constructor.
virtual Result releaseRange(Memory::Range *range)
Release range of memory.
ARM virtual memory implementation.
ARM first level page table.
unsigned long Address
A memory address.
virtual Result initialize()
Initialize the MemoryContext.
virtual ~ARMPaging()
Destructor.
ARMFirstTable * m_firstTable
Pointer to the first level page table.
void setupFirstTable(MemoryMap *map, Address firstTableAddress, Address kernelBaseAddress)
Installs default mappings on 1st level page table.
Address m_kernelBaseAddr
Kernel base address.
Allocator which separates kernel mapped memory at virtual and physical addresses.
virtual Result lookup(Address virt, Address *phys) const
Translate virtual address to physical address.
ARMv6 cache management implementation.
Describes virtual memory map layout.
virtual Result access(Address virt, Memory::Access *access) const
Get Access flags for a virtual address.
Access
Memory access flags.
Address m_firstTableAddr
Physical address of the first level page table.
virtual Result map(Address virt, Address phys, Memory::Access access)
Map a physical page to a virtual address.
virtual Result releaseSection(const Memory::Range &range, const bool tablesOnly=false)
Release memory sections.
Result enableMMU()
Enable the MMU.
virtual Result unmap(Address virt)
Unmap a virtual address.