2 * Copyright 2008-2010, Ingo Weinhold, ingo_weinhold@gmx.de.
3 * Distributed under the terms of the MIT License.
5 #ifndef KERNEL_ARCH_ARM_PAGING_ARM_PHYSICAL_PAGE_MAPPER_H
6 #define KERNEL_ARCH_ARM_PAGING_ARM_PHYSICAL_PAGE_MAPPER_H
9 #include <vm/VMTranslationMap.h>
15 class TranslationMapPhysicalPageMapper
{
17 virtual ~TranslationMapPhysicalPageMapper() { }
19 virtual void Delete() = 0;
21 virtual void* GetPageTableAt(phys_addr_t physicalAddress
) = 0;
22 // Must be invoked with thread pinned to current CPU.
26 class ARMPhysicalPageMapper
: public VMPhysicalPageMapper
{
28 virtual status_t
CreateTranslationMapPhysicalPageMapper(
29 TranslationMapPhysicalPageMapper
** _mapper
)
32 virtual void* InterruptGetPageTableAt(
33 phys_addr_t physicalAddress
) = 0;
37 #endif // KERNEL_ARCH_ARM_PAGING_ARM_PHYSICAL_PAGE_MAPPER_H