Deleted Added
full compact
64c64
< * $Id: vm_object.h,v 1.17 1995/04/09 06:03:51 davidg Exp $
---
> * $Id: vm_object.h,v 1.18 1995/05/02 05:57:11 davidg Exp $
78,79c78,79
< #include <vm/vm_page.h>
< #include <vm/vm_pager.h>
---
> enum obj_type { OBJT_DEFAULT, OBJT_SWAP, OBJT_VNODE, OBJT_DEVICE };
> typedef enum obj_type objtype_t;
88,89d87
< struct pglist memq; /* Resident memory */
< TAILQ_HEAD(rslist, vm_object) reverse_shadow_head; /* objects that this is a shadow for */
91,92c89,93
< TAILQ_ENTRY(vm_object) reverse_shadow_list; /* chain of objects that are shadowed */
< TAILQ_ENTRY(vm_object) cached_list; /* for persistence */
---
> TAILQ_ENTRY(vm_object) cached_list; /* list of cached (persistent) objects */
> TAILQ_HEAD(, vm_object) shadow_head; /* objects that this is a shadow for */
> TAILQ_ENTRY(vm_object) shadow_list; /* chain of shadow objects */
> TAILQ_HEAD(, vm_page) memq; /* list of resident pages */
> objtype_t type; /* type of pager */
98d98
< vm_pager_t pager; /* Where to get data */
100,101c100,101
< struct vm_object *shadow; /* My shadow */
< vm_offset_t shadow_offset; /* Offset in shadow */
---
> struct vm_object *backing_object; /* object that I'm a shadow of */
> vm_offset_t backing_object_offset;/* Offset in backing object */
103a104,114
> TAILQ_ENTRY(vm_object) pager_object_list; /* list of all objects of this pager type */
> void *handle;
> void *pg_data;
> union {
> struct {
> vm_size_t vnp_size; /* Current size of file */
> } vnp;
> struct {
> TAILQ_HEAD(, vm_page) devp_pglist; /* list of pages allocated */
> } devp;
> } un_pager;
110,114c121,122
< #define OBJ_INTERNAL 0x0002 /* internally created object */
< #define OBJ_ACTIVE 0x0004 /* used to mark active objects */
< #define OBJ_DEAD 0x0008 /* used to mark dead objects during rundown */
< #define OBJ_ILOCKED 0x0010 /* lock from modification */
< #define OBJ_ILOCKWT 0x0020 /* wait for lock from modification */
---
> #define OBJ_ACTIVE 0x0004 /* active objects */
> #define OBJ_DEAD 0x0008 /* dead objects (during rundown) */
116c124
< #define OBJ_WRITEABLE 0x0080 /* object has been made writeable */
---
> #define OBJ_WRITEABLE 0x0080 /* object has been made writable */
118d125
< LIST_HEAD(vm_object_hash_head, vm_object_hash_entry);
120,126d126
< struct vm_object_hash_entry {
< LIST_ENTRY(vm_object_hash_entry) hash_links; /* hash chain links */
< vm_object_t object; /* object represened */
< };
<
< typedef struct vm_object_hash_entry *vm_object_hash_entry_t;
<
134d133
< simple_lock_data_t vm_cache_lock; /* lock for object cache */
138d136
< simple_lock_data_t vm_object_list_lock;
145,146d142
< #define vm_object_cache_lock() simple_lock(&vm_cache_lock)
< #define vm_object_cache_unlock() simple_unlock(&vm_cache_lock)
149,155d144
< #if 1
< #define vm_object_lock_init(object) simple_lock_init(&(object)->Lock)
< #define vm_object_lock(object) simple_lock(&(object)->Lock)
< #define vm_object_unlock(object) simple_unlock(&(object)->Lock)
< #define vm_object_lock_try(object) simple_lock_try(&(object)->Lock)
< #endif
<
167c156
< vm_object_t vm_object_allocate __P((vm_size_t));
---
> vm_object_t vm_object_allocate __P((objtype_t, vm_size_t));
175d163
< void vm_object_enter __P((vm_object_t, vm_pager_t));
177,179c165
< vm_object_t vm_object_lookup __P((vm_pager_t));
< void _vm_object_page_clean __P((vm_object_t, vm_offset_t, vm_offset_t, boolean_t));
< void vm_object_page_clean __P((vm_object_t, vm_offset_t, vm_offset_t, boolean_t));
---
> void vm_object_page_clean __P((vm_object_t, vm_offset_t, vm_offset_t, boolean_t, boolean_t));
185d170
< void vm_object_remove __P((vm_pager_t));