summaryrefslogtreecommitdiff
path: root/sys/uvm/uvm_vnode.c
diff options
context:
space:
mode:
authoryamt <yamt@NetBSD.org>2006-10-12 10:14:20 +0000
committeryamt <yamt@NetBSD.org>2006-10-12 10:14:20 +0000
commit9de1cdc8fe7dd07fb614fa971b16a4e6fed2b6a6 (patch)
treece3f43b06bf6040425c5238956552668d8096516 /sys/uvm/uvm_vnode.c
parentb290489c817ffcf46ce4877327e98492e88b416a (diff)
move some knowledge about vnode into uvm_vnode.c.
Diffstat (limited to 'sys/uvm/uvm_vnode.c')
-rw-r--r--sys/uvm/uvm_vnode.c29
1 files changed, 27 insertions, 2 deletions
diff --git a/sys/uvm/uvm_vnode.c b/sys/uvm/uvm_vnode.c
index 6b0fc37aad2..23cbf138a3a 100644
--- a/sys/uvm/uvm_vnode.c
+++ b/sys/uvm/uvm_vnode.c
@@ -1,4 +1,4 @@
-/* $NetBSD: uvm_vnode.c,v 1.74 2006/10/12 01:32:54 christos Exp $ */
+/* $NetBSD: uvm_vnode.c,v 1.75 2006/10/12 10:14:20 yamt Exp $ */
/*
* Copyright (c) 1997 Charles D. Cranor and Washington University.
@@ -50,7 +50,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: uvm_vnode.c,v 1.74 2006/10/12 01:32:54 christos Exp $");
+__KERNEL_RCSID(0, "$NetBSD: uvm_vnode.c,v 1.75 2006/10/12 10:14:20 yamt Exp $");
#include "fs_nfs.h"
#include "opt_uvmhist.h"
@@ -501,3 +501,28 @@ uvm_vnp_zerorange(struct vnode *vp, off_t off, size_t len)
len -= bytelen;
}
}
+
+boolean_t
+uvn_text_p(struct uvm_object *uobj)
+{
+ struct vnode *vp = (struct vnode *)uobj;
+
+ return (vp->v_flag & VEXECMAP) != 0;
+}
+
+boolean_t
+uvn_clean_p(struct uvm_object *uobj)
+{
+ struct vnode *vp = (struct vnode *)uobj;
+
+ return (vp->v_flag & VONWORKLST) == 0;
+}
+
+boolean_t
+uvn_needs_writefault_p(struct uvm_object *uobj)
+{
+ struct vnode *vp = (struct vnode *)uobj;
+
+ return uvn_clean_p(uobj) ||
+ (vp->v_flag & (VWRITEMAP|VWRITEMAPDIRTY)) == VWRITEMAP;
+}