summaryrefslogtreecommitdiffstats
path: root/sys/powerpc/include
diff options
context:
space:
mode:
authornwhitehorn <nwhitehorn@FreeBSD.org>2008-09-23 03:02:57 +0000
committernwhitehorn <nwhitehorn@FreeBSD.org>2008-09-23 03:02:57 +0000
commitd5de411ace042b8b879d37935fe313ce84b1a9d3 (patch)
tree8bab40e211360b3e5ed9dad4fe506bc63f3578a7 /sys/powerpc/include
parentba7bc1f5eab0dc332f7453ae165ebdb0be1e9126 (diff)
downloadFreeBSD-src-d5de411ace042b8b879d37935fe313ce84b1a9d3.zip
FreeBSD-src-d5de411ace042b8b879d37935fe313ce84b1a9d3.tar.gz
In preparation for PowerPC G5 support, allow PVO objects to contain page
table entries for both the 32-bit and 64-bit AIM MMUs.
Diffstat (limited to 'sys/powerpc/include')
-rw-r--r--sys/powerpc/include/pmap.h9
-rw-r--r--sys/powerpc/include/pte.h1
2 files changed, 8 insertions, 2 deletions
diff --git a/sys/powerpc/include/pmap.h b/sys/powerpc/include/pmap.h
index 50f9761..d6e3169 100644
--- a/sys/powerpc/include/pmap.h
+++ b/sys/powerpc/include/pmap.h
@@ -82,6 +82,8 @@ struct pmap {
u_int pm_sr[16];
u_int pm_active;
u_int pm_context;
+
+ struct pmap *pmap_phys;
struct pmap_statistics pm_stats;
};
@@ -90,14 +92,17 @@ typedef struct pmap *pmap_t;
struct pvo_entry {
LIST_ENTRY(pvo_entry) pvo_vlink; /* Link to common virt page */
LIST_ENTRY(pvo_entry) pvo_olink; /* Link to overflow entry */
- struct pte pvo_pte; /* PTE */
+ union {
+ struct pte pte; /* 32 bit PTE */
+ struct lpte lpte; /* 64 bit PTE */
+ } pvo_pte;
pmap_t pvo_pmap; /* Owning pmap */
vm_offset_t pvo_vaddr; /* VA of entry */
};
LIST_HEAD(pvo_head, pvo_entry);
struct md_page {
- u_int mdpg_attrs;
+ u_int64_t mdpg_attrs;
struct pvo_head mdpg_pvoh;
};
diff --git a/sys/powerpc/include/pte.h b/sys/powerpc/include/pte.h
index 1658ff4..8664406 100644
--- a/sys/powerpc/include/pte.h
+++ b/sys/powerpc/include/pte.h
@@ -131,6 +131,7 @@ typedef struct lpte lpte_t;
#define ADDR_PIDX 0x0ffff000
#define ADDR_PIDX_SHFT 12
#define ADDR_API_SHFT 22
+#define ADDR_API_SHFT64 16
#define ADDR_POFF 0x00000fff
/*
OpenPOWER on IntegriCloud