diff --git a/sys/arch/powerpc/include/pmap.h b/sys/arch/powerpc/include/pmap.h index 1d3305a56632..e85273863136 100644 --- a/sys/arch/powerpc/include/pmap.h +++ b/sys/arch/powerpc/include/pmap.h @@ -1,4 +1,4 @@ -/* $NetBSD: pmap.h,v 1.9 1998/09/01 16:35:50 tsubai Exp $ */ +/* $NetBSD: pmap.h,v 1.10 1999/02/26 14:40:45 tsubai Exp $ */ /*- * Copyright (C) 1995, 1996 Wolfgang Solfrank. @@ -75,6 +75,9 @@ paddr_t pmap_extract __P((struct pmap *, vaddr_t)); void ptemodify __P((paddr_t, u_int, u_int)); int ptebits __P((paddr_t, int)); +#define PMAP_NEED_PROCWR +void pmap_procwr __P((struct proc *, vaddr_t, size_t)); + static __inline paddr_t vtophys(va) vaddr_t va; diff --git a/sys/arch/powerpc/powerpc/pmap.c b/sys/arch/powerpc/powerpc/pmap.c index 099c9f1f3259..83a176df8844 100644 --- a/sys/arch/powerpc/powerpc/pmap.c +++ b/sys/arch/powerpc/powerpc/pmap.c @@ -1,4 +1,4 @@ -/* $NetBSD: pmap.c,v 1.15 1999/02/04 12:45:31 tsubai Exp $ */ +/* $NetBSD: pmap.c,v 1.16 1999/02/26 14:40:45 tsubai Exp $ */ /* * Copyright (C) 1995, 1996 Wolfgang Solfrank. @@ -1444,3 +1444,18 @@ pmap_deactivate(p) struct proc *p; { } + +/* + * Synchronize caches corresponding to [addr, addr+len) in p. + */ +void +pmap_procwr(p, va, len) + struct proc *p; + vaddr_t va; + size_t len; +{ + paddr_t pa; + + pa = pmap_extract(p->p_vmspace->vm_map.pmap, va); + syncicache((void *)pa, len); +}