aboutsummaryrefslogtreecommitdiff
path: root/sys/sparc64/include
diff options
context:
space:
mode:
Diffstat (limited to 'sys/sparc64/include')
-rw-r--r--sys/sparc64/include/pmap.h11
-rw-r--r--sys/sparc64/include/tte.h9
2 files changed, 11 insertions, 9 deletions
diff --git a/sys/sparc64/include/pmap.h b/sys/sparc64/include/pmap.h
index 427074a7f3120..d0a11fa740772 100644
--- a/sys/sparc64/include/pmap.h
+++ b/sys/sparc64/include/pmap.h
@@ -55,16 +55,17 @@
#define PMAP_CONTEXT_MAX 8192
-#define pmap_page_is_mapped(m) (!STAILQ_EMPTY(&(m)->md.tte_list))
+#define pmap_page_is_mapped(m) (!TAILQ_EMPTY(&(m)->md.tte_list))
#define pmap_resident_count(pm) (pm->pm_stats.resident_count)
typedef struct pmap *pmap_t;
struct md_page {
- STAILQ_HEAD(, tte) tte_list;
- int colors[DCACHE_COLORS];
- int color;
- int flags;
+ TAILQ_HEAD(, tte) tte_list;
+ struct pmap *pmap;
+ uint32_t colors[DCACHE_COLORS];
+ int32_t color;
+ uint32_t flags;
};
struct pmap {
diff --git a/sys/sparc64/include/tte.h b/sys/sparc64/include/tte.h
index e86c722f8793a..c2b38b1f2457a 100644
--- a/sys/sparc64/include/tte.h
+++ b/sys/sparc64/include/tte.h
@@ -104,17 +104,18 @@
#define TTE_GET_VA(tp) \
(TTE_GET_VPN(tp) << TTE_GET_PAGE_SHIFT(tp))
#define TTE_GET_PMAP(tp) \
- ((tp)->tte_pmap)
+ (((tp)->tte_data & TD_P) != 0 ? \
+ (kernel_pmap) : \
+ (PHYS_TO_VM_PAGE(pmap_kextract((vm_offset_t)(tp)))->md.pmap))
#define TTE_ZERO(tp) \
- bzero(tp, sizeof(*tp))
+ __builtin_memset(tp, 0, sizeof(*tp))
struct pmap;
struct tte {
u_long tte_vpn;
u_long tte_data;
- STAILQ_ENTRY(tte) tte_link;
- struct pmap *tte_pmap;
+ TAILQ_ENTRY(tte) tte_link;
};
static __inline int