1/* 2 * Copyright 2008-2010, Ingo Weinhold, ingo_weinhold@gmx.de. 3 * Distributed under the terms of the MIT License. 4 */ 5#ifndef KERNEL_ARCH_M68K_PAGING_M68K_PHYSICAL_PAGE_MAPPER_H 6#define KERNEL_ARCH_M68K_PAGING_M68K_PHYSICAL_PAGE_MAPPER_H 7 8 9#include <vm/VMTranslationMap.h> 10 11 12struct kernel_args; 13struct vm_translation_map_ops; 14 15 16class TranslationMapPhysicalPageMapper { 17public: 18 virtual ~TranslationMapPhysicalPageMapper(); 19 20 virtual void Delete() = 0; 21 22 virtual void* GetPageTableAt(phys_addr_t physicalAddress) = 0; 23 // Must be invoked with thread pinned to current CPU. 24}; 25 26 27class M68KPhysicalPageMapper : public VMPhysicalPageMapper { 28public: 29 virtual ~M68KPhysicalPageMapper(); 30 31 virtual status_t CreateTranslationMapPhysicalPageMapper( 32 TranslationMapPhysicalPageMapper** _mapper) 33 = 0; 34 35 virtual void* InterruptGetPageTableAt( 36 phys_addr_t physicalAddress) = 0; 37}; 38 39 40#endif // KERNEL_ARCH_M68K_PAGING_M68K_PHYSICAL_PAGE_MAPPER_H 41