summaryrefslogtreecommitdiff
path: root/sys/arch/mvme68k/include
diff options
context:
space:
mode:
authorArtur Grabowski <art@cvs.openbsd.org>2000-07-06 12:56:20 +0000
committerArtur Grabowski <art@cvs.openbsd.org>2000-07-06 12:56:20 +0000
commit57061d67ad01e3340676072991d8fe868bb71507 (patch)
tree1d97e5bde08db5c9fc43740c5efdea9983d808ce /sys/arch/mvme68k/include
parent3da26f03c7202ef499ddd02620a74f71733662c5 (diff)
Fix pmap_activate and activation of the
correct pmap.
Diffstat (limited to 'sys/arch/mvme68k/include')
-rw-r--r--sys/arch/mvme68k/include/pmap.h20
1 files changed, 10 insertions, 10 deletions
diff --git a/sys/arch/mvme68k/include/pmap.h b/sys/arch/mvme68k/include/pmap.h
index d3f7a6ae388..e02b6740d74 100644
--- a/sys/arch/mvme68k/include/pmap.h
+++ b/sys/arch/mvme68k/include/pmap.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: pmap.h,v 1.5 1998/03/01 00:37:38 niklas Exp $ */
+/* $OpenBSD: pmap.h,v 1.6 2000/07/06 12:56:18 art Exp $ */
/*
* Copyright (c) 1987 Carnegie-Mellon University
@@ -60,7 +60,6 @@
struct pmap {
pt_entry_t *pm_ptab; /* KVA of page table */
st_entry_t *pm_stab; /* KVA of segment table */
- int pm_stchanged; /* ST changed */
int pm_stfree; /* 040: free lev2 blocks */
st_entry_t *pm_stpa; /* 040: ST phys addr */
short pm_sref; /* segment table ref count */
@@ -91,14 +90,11 @@ typedef struct pmap *pmap_t;
/*
* Macros for speed
*/
-#define PMAP_ACTIVATE(pmapp, pcbp, iscurproc) \
- if ((pmapp)->pm_stchanged) { \
- (pcbp)->pcb_ustp = m68k_btop((vm_offset_t)(pmapp)->pm_stpa); \
- if (iscurproc) \
- loadustp((pcbp)->pcb_ustp); \
- (pmapp)->pm_stchanged = FALSE; \
- }
-#define PMAP_DEACTIVATE(pmapp, pcbp)
+#define PMAP_ACTIVATE(pmap, loadhw) \
+{ \
+ if ((loadhw)) \
+ loadustp(m68k_btop((vm_offset_t)(pmap)->pm_stpa)); \
+}
/*
* For each vm_page_t, there is a list of all currently valid virtual
@@ -142,6 +138,10 @@ extern struct pmap kernel_pmap_store;
#define pmap_kernel() (&kernel_pmap_store)
#define active_pmap(pm) \
((pm) == pmap_kernel() || (pm) == curproc->p_vmspace->vm_map.pmap)
+#define active_user_pmap(pm) \
+ (curproc && \
+ (pm) != pmap_kernel() && (pm) == curproc->p_vmspace->vm_map.pmap)
+
extern struct pv_entry *pv_table; /* array of entries, one per page */