1/*	$NetBSD: pmap.h,v 1.37 2011/06/20 20:24:28 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
34struct 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