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