xref: /netbsd-src/sys/arch/powerpc/include/pmap.h (revision bdc22b2e01993381dcefeff2bc9b56ca75a4235c)
1 /*	$NetBSD: pmap.h,v 1.38 2011/06/20 21:45:16 matt 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 
34 struct vm_page_md {
35 	uintptr_t mdpg_dummy[5];
36 };
37 #endif /* !__HVE_VM_PAGE_MD */
38 
39 __CTASSERT(sizeof(struct vm_page_md) == sizeof(uintptr_t)*5);
40 
41 #endif /* !LOCORE && (MODULAR || _MODULE) */
42 
43 #endif /* !_POWERPC_PMAP_H_ */
44