Home | History | Annotate | Line # | Download | only in include
      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