2 * Copyright 2010, Ingo Weinhold, ingo_weinhold@gmx.de.
3 * Distributed under the terms of the MIT License.
5 #ifndef KERNEL_ARCH_M68K_PAGING_M68K_PAGING_METHOD_H
6 #define KERNEL_ARCH_M68K_PAGING_M68K_PAGING_METHOD_H
9 #include <SupportDefs.h>
13 struct VMPhysicalPageMapper
;
14 struct VMTranslationMap
;
17 class M68KPagingMethod
{
19 virtual ~M68KPagingMethod();
21 virtual status_t
Init(kernel_args
* args
,
22 VMPhysicalPageMapper
** _physicalPageMapper
)
24 virtual status_t
InitPostArea(kernel_args
* args
) = 0;
26 virtual status_t
CreateTranslationMap(bool kernel
,
27 VMTranslationMap
** _map
) = 0;
29 virtual status_t
MapEarly(kernel_args
* args
,
30 addr_t virtualAddress
,
31 phys_addr_t physicalAddress
,
33 phys_addr_t (*get_free_page
)(kernel_args
*))
36 virtual bool IsKernelPageAccessible(addr_t virtualAddress
,
37 uint32 protection
) = 0;
39 virtual void SetPageRoot(uint32 pageRoot
) = 0;
43 extern M68KPagingMethod
* gM68KPagingMethod
;
46 #endif // KERNEL_ARCH_M68K_PAGING_M68K_PAGING_METHOD_H