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