summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoralc <alc@FreeBSD.org>2007-12-27 17:56:35 +0000
committeralc <alc@FreeBSD.org>2007-12-27 17:56:35 +0000
commit33b51104e1fb9a6fa74e02b81d6a59aeca5ddd0e (patch)
tree07358ab5cd442288d5e3cd134789c49f0992a8e9
parent44c0fb33db7f3b17f54af438a68207fd8ed2b81a (diff)
downloadFreeBSD-src-33b51104e1fb9a6fa74e02b81d6a59aeca5ddd0e.zip
FreeBSD-src-33b51104e1fb9a6fa74e02b81d6a59aeca5ddd0e.tar.gz
Add a list of reservations to the vm object structure.
Recycle the vm object's "pg_color" field to represent the color of the first virtual page address at which the object is mapped instead of the color of the object's first physical page. Since an object may not be mapped, introduce a flag "OBJ_COLORED" that indicates whether "pg_color" is valid.
-rw-r--r--sys/vm/vm_object.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/sys/vm/vm_object.h b/sys/vm/vm_object.h
index b0da10b..4f9cad4 100644
--- a/sys/vm/vm_object.h
+++ b/sys/vm/vm_object.h
@@ -100,6 +100,7 @@ struct vm_object {
struct vm_object *backing_object; /* object that I'm a shadow of */
vm_ooffset_t backing_object_offset;/* Offset in backing object */
TAILQ_ENTRY(vm_object) pager_object_list; /* list of all objects of this pager type */
+ LIST_HEAD(, vm_reserv) rvq; /* list of reservations */
vm_page_t cache; /* root of the cache page splay tree */
void *handle;
union {
@@ -143,6 +144,7 @@ struct vm_object {
#define OBJ_PIPWNT 0x0040 /* paging in progress wanted */
#define OBJ_MIGHTBEDIRTY 0x0100 /* object might be dirty */
#define OBJ_CLEANING 0x0200
+#define OBJ_COLORED 0x1000 /* pg_color is defined */
#define OBJ_ONEMAPPING 0x2000 /* One USE (a single, non-forked) mapping flag */
#define OBJ_DISCONNECTWNT 0x4000 /* disconnect from vnode wanted */
#define OBJ_NEEDGIANT 0x8000 /* object requires Giant */
OpenPOWER on IntegriCloud