From d0aab1cd6909d34e466e2ecb5ce4d4d31dd8a798 Mon Sep 17 00:00:00 2001 From: dt Date: Wed, 21 Apr 1999 10:51:04 +0000 Subject: pmap_ts_referenced(): set fault on {read|execute|write} bits on the page on, so we will know when the page is accessed again. (Also, make it return an integer, not "boolean" TRUE/FALSE). --- sys/alpha/alpha/pmap.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) (limited to 'sys') diff --git a/sys/alpha/alpha/pmap.c b/sys/alpha/alpha/pmap.c index 4054cac..52d5454 100644 --- a/sys/alpha/alpha/pmap.c +++ b/sys/alpha/alpha/pmap.c @@ -43,7 +43,7 @@ * from: @(#)pmap.c 7.7 (Berkeley) 5/12/91 * from: i386 Id: pmap.c,v 1.193 1998/04/19 15:22:48 bde Exp * with some ideas from NetBSD's alpha pmap - * $Id: pmap.c,v 1.16 1999/04/05 19:38:27 julian Exp $ + * $Id: pmap.c,v 1.17 1999/04/07 03:34:32 msmith Exp $ */ /* @@ -2830,17 +2830,19 @@ int pmap_ts_referenced(vm_offset_t pa) { pv_table_t *ppv; - int ret; if (!pmap_is_managed(pa)) - return FALSE; + return 0; ppv = pa_to_pvh(pa); - ret = (ppv->pv_flags & PV_TABLE_REF) != 0; - ppv->pv_flags &= ~PV_TABLE_REF; + if (ppv->pv_flags & PV_TABLE_REF) { + pmap_changebit(pa, PG_FOR|PG_FOE|PG_FOW, TRUE); + ppv->pv_flags &= ~PV_TABLE_REF; + return 1; + } - return ret; + return 0; } /* -- cgit v1.1