vm_object.h (5841) | vm_object.h (6129) |
---|---|
1/* 2 * Copyright (c) 1991, 1993 3 * The Regents of the University of California. All rights reserved. 4 * 5 * This code is derived from software contributed to Berkeley by 6 * The Mach Operating System project at Carnegie-Mellon University. 7 * 8 * Redistribution and use in source and binary forms, with or without --- 47 unchanged lines hidden (view full) --- 56 * Software Distribution Coordinator or Software.Distribution@CS.CMU.EDU 57 * School of Computer Science 58 * Carnegie Mellon University 59 * Pittsburgh PA 15213-3890 60 * 61 * any improvements or extensions that they make and grant Carnegie the 62 * rights to redistribute these changes. 63 * | 1/* 2 * Copyright (c) 1991, 1993 3 * The Regents of the University of California. All rights reserved. 4 * 5 * This code is derived from software contributed to Berkeley by 6 * The Mach Operating System project at Carnegie-Mellon University. 7 * 8 * Redistribution and use in source and binary forms, with or without --- 47 unchanged lines hidden (view full) --- 56 * Software Distribution Coordinator or Software.Distribution@CS.CMU.EDU 57 * School of Computer Science 58 * Carnegie Mellon University 59 * Pittsburgh PA 15213-3890 60 * 61 * any improvements or extensions that they make and grant Carnegie the 62 * rights to redistribute these changes. 63 * |
64 * $Id: vm_object.h,v 1.4 1995/01/09 16:05:50 davidg Exp $ | 64 * $Id: vm_object.h,v 1.5 1995/01/24 10:13:24 davidg Exp $ |
65 */ 66 67/* 68 * Virtual memory object module definitions. 69 */ 70 71#ifndef _VM_OBJECT_ 72#define _VM_OBJECT_ --- 4 unchanged lines hidden (view full) --- 77/* 78 * Types defined: 79 * 80 * vm_object_t Virtual memory object. 81 */ 82 83struct vm_object { 84 struct pglist memq; /* Resident memory */ | 65 */ 66 67/* 68 * Virtual memory object module definitions. 69 */ 70 71#ifndef _VM_OBJECT_ 72#define _VM_OBJECT_ --- 4 unchanged lines hidden (view full) --- 77/* 78 * Types defined: 79 * 80 * vm_object_t Virtual memory object. 81 */ 82 83struct vm_object { 84 struct pglist memq; /* Resident memory */ |
85 TAILQ_ENTRY(vm_object) object_list; /* list of all objects */ 86 u_short flags; /* see below */ 87 u_short paging_in_progress; /* Paging (in or out) so don't collapse or destroy */ | 85 TAILQ_HEAD(rslist, vm_object) reverse_shadow_head; /* objects that this is a shadow for */ 86 TAILQ_ENTRY(vm_object) object_list; /* list of all objects */ 87 TAILQ_ENTRY(vm_object) reverse_shadow_list; /* chain of objects that are shadowed */ 88 TAILQ_ENTRY(vm_object) cached_list; /* for persistence */ 89 vm_size_t size; /* Object size */ |
88 int ref_count; /* How many refs?? */ 89 struct { 90 int recursion; /* object locking */ 91 struct proc *proc; /* process owned */ 92 } lock; | 90 int ref_count; /* How many refs?? */ 91 struct { 92 int recursion; /* object locking */ 93 struct proc *proc; /* process owned */ 94 } lock; |
93 vm_size_t size; /* Object size */ 94 int resident_page_count; 95 /* number of resident pages */ 96 struct vm_object *copy; /* Object that holds copies of my changed pages */ | 95 u_short flags; /* see below */ 96 u_short paging_in_progress; /* Paging (in or out) so don't collapse or destroy */ 97 int resident_page_count; /* number of resident pages */ |
97 vm_pager_t pager; /* Where to get data */ 98 vm_offset_t paging_offset; /* Offset into paging space */ 99 struct vm_object *shadow; /* My shadow */ 100 vm_offset_t shadow_offset; /* Offset in shadow */ | 98 vm_pager_t pager; /* Where to get data */ 99 vm_offset_t paging_offset; /* Offset into paging space */ 100 struct vm_object *shadow; /* My shadow */ 101 vm_offset_t shadow_offset; /* Offset in shadow */ |
102 struct vm_object *copy; /* Object that holds copies of my changed pages */ |
|
101 vm_offset_t last_read; /* last read in object -- detect seq behavior */ | 103 vm_offset_t last_read; /* last read in object -- detect seq behavior */ |
102 TAILQ_ENTRY(vm_object) cached_list; /* for persistence */ 103 TAILQ_ENTRY(vm_object) reverse_shadow_list; /* chain of objects that are shadowed */ 104 TAILQ_HEAD(rslist, vm_object) reverse_shadow_head; /* objects that this is a shadow for */ | |
105}; 106 107/* 108 * Flags 109 */ 110#define OBJ_CANPERSIST 0x0001 /* allow to persist */ 111#define OBJ_INTERNAL 0x0002 /* internally created object */ 112#define OBJ_ACTIVE 0x0004 /* used to mark active objects */ --- 100 unchanged lines hidden --- | 104}; 105 106/* 107 * Flags 108 */ 109#define OBJ_CANPERSIST 0x0001 /* allow to persist */ 110#define OBJ_INTERNAL 0x0002 /* internally created object */ 111#define OBJ_ACTIVE 0x0004 /* used to mark active objects */ --- 100 unchanged lines hidden --- |