Accommodate non-VM_PMAP_HACK code.

This commit is contained in:
pk 1997-06-28 19:59:03 +00:00
parent a9b31740a2
commit adc8e8d8b0
3 changed files with 14 additions and 12 deletions

View File

@ -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)

View File

@ -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

View File

@ -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