1 1.43 rin /* $NetBSD: pmap.h,v 1.43 2023/12/15 09:43:59 rin Exp $ */ 2 1.1 ws 3 1.37 matt #ifndef _POWERPC_PMAP_H_ 4 1.37 matt #define _POWERPC_PMAP_H_ 5 1.37 matt 6 1.30 matt #ifdef _KERNEL_OPT 7 1.30 matt #include "opt_ppcarch.h" 8 1.37 matt #include "opt_modular.h" 9 1.30 matt #endif 10 1.30 matt 11 1.37 matt #if !defined(_MODULE) 12 1.37 matt 13 1.37 matt #if defined(PPC_BOOKE) 14 1.37 matt #include <powerpc/booke/pmap.h> 15 1.37 matt #elif defined(PPC_IBM4XX) 16 1.30 matt #include <powerpc/ibm4xx/pmap.h> 17 1.33 sanjayl #elif defined(PPC_OEA) || defined (PPC_OEA64) || defined (PPC_OEA64_BRIDGE) 18 1.30 matt #include <powerpc/oea/pmap.h> 19 1.38 matt #elif defined(_KERNEL) 20 1.36 matt #error unknown PPC variant 21 1.30 matt #endif 22 1.37 matt 23 1.43 rin #ifndef PMAP_DIRECT_MAPPED_LEN 24 1.43 rin #define PMAP_DIRECT_MAPPED_LEN (~0UL) 25 1.43 rin #endif 26 1.43 rin 27 1.37 matt #endif /* !_MODULE */ 28 1.37 matt 29 1.37 matt #if !defined(_LOCORE) && (defined(MODULAR) || defined(_MODULE)) 30 1.37 matt /* 31 1.37 matt * Both BOOKE and OEA use __HAVE_VM_PAGE_MD but IBM4XX doesn't so define 32 1.37 matt * a compatible vm_page_md so that struct vm_page is the same size for all 33 1.37 matt * PPC variants. 34 1.37 matt */ 35 1.37 matt #ifndef __HAVE_VM_PAGE_MD 36 1.37 matt #define __HAVE_VM_PAGE_MD 37 1.39 rin #define VM_MDPAGE_INIT(pg) __nothing 38 1.37 matt 39 1.37 matt struct vm_page_md { 40 1.37 matt uintptr_t mdpg_dummy[5]; 41 1.37 matt }; 42 1.40 rin #endif /* !__HAVE_VM_PAGE_MD */ 43 1.37 matt 44 1.37 matt __CTASSERT(sizeof(struct vm_page_md) == sizeof(uintptr_t)*5); 45 1.37 matt 46 1.42 rin #ifndef __HAVE_PMAP_PV_TRACK 47 1.42 rin /* 48 1.42 rin * We need empty stubs for modules shared with all sub-archs. 49 1.42 rin */ 50 1.42 rin #define __HAVE_PMAP_PV_TRACK 51 1.42 rin #define PMAP_PV_TRACK_ONLY_STUBS 52 1.42 rin #include <uvm/pmap/pmap_pvt.h> 53 1.42 rin #endif /* !__HAVE_PMAP_PV_TRACK */ 54 1.42 rin 55 1.37 matt #endif /* !LOCORE && (MODULAR || _MODULE) */ 56 1.37 matt 57 1.37 matt #endif /* !_POWERPC_PMAP_H_ */ 58