diff options
author | nwhitehorn <nwhitehorn@FreeBSD.org> | 2008-09-23 03:02:57 +0000 |
---|---|---|
committer | nwhitehorn <nwhitehorn@FreeBSD.org> | 2008-09-23 03:02:57 +0000 |
commit | d5de411ace042b8b879d37935fe313ce84b1a9d3 (patch) | |
tree | 8bab40e211360b3e5ed9dad4fe506bc63f3578a7 /sys/powerpc/include | |
parent | ba7bc1f5eab0dc332f7453ae165ebdb0be1e9126 (diff) | |
download | FreeBSD-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.h | 9 | ||||
-rw-r--r-- | sys/powerpc/include/pte.h | 1 |
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 /* |