diff options
author | Artur Grabowski <art@cvs.openbsd.org> | 2000-07-06 12:56:20 +0000 |
---|---|---|
committer | Artur Grabowski <art@cvs.openbsd.org> | 2000-07-06 12:56:20 +0000 |
commit | 57061d67ad01e3340676072991d8fe868bb71507 (patch) | |
tree | 1d97e5bde08db5c9fc43740c5efdea9983d808ce /sys/arch/mvme68k/include | |
parent | 3da26f03c7202ef499ddd02620a74f71733662c5 (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.h | 20 |
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 */ |