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