Accommodate non-VM_PMAP_HACK code.
This commit is contained in:
parent
a9b31740a2
commit
adc8e8d8b0
|
@ -1,4 +1,4 @@
|
|||
# $NetBSD: genassym.cf,v 1.1 1997/03/12 15:16:35 christos Exp $
|
||||
# $NetBSD: genassym.cf,v 1.2 1997/06/28 19:59:04 pk Exp $
|
||||
|
||||
#
|
||||
# Copyright (c) 1997 Christos Zoulas. All rights reserved.
|
||||
|
@ -91,9 +91,9 @@ define P_VMSPACE offsetof(struct proc, p_vmspace)
|
|||
define SRUN SRUN
|
||||
|
||||
# VM structure fields
|
||||
define VM_PMAP offsetof(struct vmspace, vm_pmap)
|
||||
define VM_PMAP_CTX offsetof(struct vmspace, vm_pmap.pm_ctx)
|
||||
define VM_PMAP_CTXNUM offsetof(struct vmspace, vm_pmap.pm_ctxnum)
|
||||
define VM_PMAP offsetof(struct vmspace, vm_map.pmap)
|
||||
define PMAP_CTX offsetof(struct pmap, pm_ctx)
|
||||
define PMAP_CTXNUM offsetof(struct pmap, pm_ctxnum)
|
||||
|
||||
# interrupt/fault metering
|
||||
define V_SWTCH offsetof(struct vmmeter, v_swtch)
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: locore.s,v 1.70 1997/04/22 07:48:31 mrg Exp $ */
|
||||
/* $NetBSD: locore.s,v 1.71 1997/06/28 19:59:05 pk Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1996 Paul Kranenburg
|
||||
|
@ -4574,15 +4574,17 @@ Lsw_load:
|
|||
* zero so it is safe to have interrupts going here.)
|
||||
*/
|
||||
ld [%g3 + P_VMSPACE], %o3 ! vm = p->p_vmspace;
|
||||
ld [%o3 + VM_PMAP_CTX], %o0! if (vm->vm_pmap.pm_ctx != NULL)
|
||||
ld [%o3 + VM_PMAP], %o3 ! pm = vm->vm_map.vm_pmap;
|
||||
ld [%o3 + PMAP_CTX], %o0 ! if (pm->pm_ctx != NULL)
|
||||
tst %o0
|
||||
bnz,a Lsw_havectx ! goto havecontext;
|
||||
ld [%o3 + VM_PMAP_CTXNUM], %o0 ! load context number
|
||||
ld [%o3 + PMAP_CTXNUM], %o0 ! load context number
|
||||
|
||||
/* p does not have a context: call ctx_alloc to get one */
|
||||
save %sp, -CCFSZ, %sp
|
||||
call _ctx_alloc ! ctx_alloc(&vm->vm_pmap);
|
||||
add %i3, VM_PMAP, %o0
|
||||
call _ctx_alloc ! ctx_alloc(pm);
|
||||
mov %i3, %o0
|
||||
|
||||
ret
|
||||
restore
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: trap.c,v 1.53 1997/03/15 20:31:33 pk Exp $ */
|
||||
/* $NetBSD: trap.c,v 1.54 1997/06/28 19:59:03 pk Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1996
|
||||
|
@ -709,7 +709,7 @@ mem_access_fault(type, ser, v, pc, psr, tf)
|
|||
* that got bumped out via LRU replacement.
|
||||
*/
|
||||
vm = p->p_vmspace;
|
||||
rv = mmu_pagein(&vm->vm_pmap, va,
|
||||
rv = mmu_pagein(vm->vm_pmap.pmap, va,
|
||||
ser & SER_WRITE ? VM_PROT_WRITE : VM_PROT_READ);
|
||||
if (rv < 0)
|
||||
goto fault;
|
||||
|
@ -741,7 +741,7 @@ mem_access_fault(type, ser, v, pc, psr, tf)
|
|||
* entries for `wired' pages). Instead, we call
|
||||
* mmu_pagein here to make sure the new PTE gets installed.
|
||||
*/
|
||||
(void) mmu_pagein(&vm->vm_pmap, va, VM_PROT_NONE);
|
||||
(void) mmu_pagein(vm->vm_pmap.pmap, va, VM_PROT_NONE);
|
||||
} else {
|
||||
/*
|
||||
* Pagein failed. If doing copyin/out, return to onfault
|
||||
|
|
Loading…
Reference in New Issue