xref: /netbsd-src/sys/arch/powerpc/include/pmap.h (revision 82d56013d7b633d116a93943de88e08335357a7c)
1 /*	$NetBSD: pmap.h,v 1.40 2020/07/06 08:17:01 rin Exp $	*/
2 
3 #ifndef _POWERPC_PMAP_H_
4 #define _POWERPC_PMAP_H_
5 
6 #ifdef _KERNEL_OPT
7 #include "opt_ppcarch.h"
8 #include "opt_modular.h"
9 #endif
10 
11 #if !defined(_MODULE)
12 
13 #if defined(PPC_BOOKE)
14 #include <powerpc/booke/pmap.h>
15 #elif defined(PPC_IBM4XX)
16 #include <powerpc/ibm4xx/pmap.h>
17 #elif defined(PPC_OEA) || defined (PPC_OEA64) || defined (PPC_OEA64_BRIDGE)
18 #include <powerpc/oea/pmap.h>
19 #elif defined(_KERNEL)
20 #error unknown PPC variant
21 #endif
22 
23 #endif /* !_MODULE */
24 
25 #if !defined(_LOCORE) && (defined(MODULAR) || defined(_MODULE))
26 /*
27  * Both BOOKE and OEA use __HAVE_VM_PAGE_MD but IBM4XX doesn't so define
28  * a compatible vm_page_md so that struct vm_page is the same size for all
29  * PPC variants.
30  */
31 #ifndef __HAVE_VM_PAGE_MD
32 #define __HAVE_VM_PAGE_MD
33 #define VM_MDPAGE_INIT(pg) __nothing
34 
35 struct vm_page_md {
36 	uintptr_t mdpg_dummy[5];
37 };
38 #endif /* !__HAVE_VM_PAGE_MD */
39 
40 __CTASSERT(sizeof(struct vm_page_md) == sizeof(uintptr_t)*5);
41 
42 #endif /* !LOCORE && (MODULAR || _MODULE) */
43 
44 #endif /* !_POWERPC_PMAP_H_ */
45