summaryrefslogtreecommitdiffstats
path: root/sys
diff options
context:
space:
mode:
authordt <dt@FreeBSD.org>1999-04-21 10:51:04 +0000
committerdt <dt@FreeBSD.org>1999-04-21 10:51:04 +0000
commitd0aab1cd6909d34e466e2ecb5ce4d4d31dd8a798 (patch)
treebc50d48643d03437950f105c1b80497780089f18 /sys
parent306f74ff3a1149a222f14620a2bf5b987aef2772 (diff)
downloadFreeBSD-src-d0aab1cd6909d34e466e2ecb5ce4d4d31dd8a798.zip
FreeBSD-src-d0aab1cd6909d34e466e2ecb5ce4d4d31dd8a798.tar.gz
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).
Diffstat (limited to 'sys')
-rw-r--r--sys/alpha/alpha/pmap.c14
1 files changed, 8 insertions, 6 deletions
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;
}
/*
OpenPOWER on IntegriCloud