Deleted Added
full compact
vm_map.h (43209) vm_map.h (43748)
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_map.h,v 1.33 1999/01/06 23:05:42 julian Exp $
64 * $Id: vm_map.h,v 1.34 1999/01/26 02:49:52 julian Exp $
65 */
66
67/*
68 * Virtual memory map module definitions.
69 */
70
71#ifndef _VM_MAP_
72#define _VM_MAP_

--- 9 unchanged lines hidden (view full) ---

82/*
83 * Objects which live in maps may be either VM objects, or
84 * another map (called a "sharing map") which denotes read-write
85 * sharing with other maps.
86 */
87
88union vm_map_object {
89 struct vm_object *vm_object; /* object object */
65 */
66
67/*
68 * Virtual memory map module definitions.
69 */
70
71#ifndef _VM_MAP_
72#define _VM_MAP_

--- 9 unchanged lines hidden (view full) ---

82/*
83 * Objects which live in maps may be either VM objects, or
84 * another map (called a "sharing map") which denotes read-write
85 * sharing with other maps.
86 */
87
88union vm_map_object {
89 struct vm_object *vm_object; /* object object */
90 struct vm_map *share_map; /* share map */
91 struct vm_map *sub_map; /* belongs to another map */
92};
93
94/*
95 * Address map entries consist of start and end addresses,
96 * a VM object (or sharing map) and offset into that object,
97 * and user-exported inheritance and protection information.
98 * Also included is control information for virtual copy operations.

--- 9 unchanged lines hidden (view full) ---

108 u_char eflags; /* map entry flags */
109 /* Only in task maps: */
110 vm_prot_t protection; /* protection code */
111 vm_prot_t max_protection; /* maximum protection */
112 vm_inherit_t inheritance; /* inheritance */
113 int wired_count; /* can be paged if = 0 */
114};
115
90 struct vm_map *sub_map; /* belongs to another map */
91};
92
93/*
94 * Address map entries consist of start and end addresses,
95 * a VM object (or sharing map) and offset into that object,
96 * and user-exported inheritance and protection information.
97 * Also included is control information for virtual copy operations.

--- 9 unchanged lines hidden (view full) ---

107 u_char eflags; /* map entry flags */
108 /* Only in task maps: */
109 vm_prot_t protection; /* protection code */
110 vm_prot_t max_protection; /* maximum protection */
111 vm_inherit_t inheritance; /* inheritance */
112 int wired_count; /* can be paged if = 0 */
113};
114
116#define MAP_ENTRY_IS_A_MAP 0x1
115#define MAP_ENTRY_UNUSED_01 0x1
117#define MAP_ENTRY_IS_SUB_MAP 0x2
118#define MAP_ENTRY_COW 0x4
119#define MAP_ENTRY_NEEDS_COPY 0x8
120#define MAP_ENTRY_NOFAULT 0x10
121#define MAP_ENTRY_USER_WIRED 0x20
122
123/*
124 * Maps are doubly-linked lists of map entries, kept sorted

--- 35 unchanged lines hidden (view full) ---

160 segsz_t vm_ssize; /* stack size (pages) */
161 caddr_t vm_taddr; /* user virtual address of text XXX */
162 caddr_t vm_daddr; /* user virtual address of data XXX */
163 caddr_t vm_maxsaddr; /* user VA at max stack growth */
164 caddr_t vm_minsaddr; /* user VA at max stack growth */
165};
166
167
116#define MAP_ENTRY_IS_SUB_MAP 0x2
117#define MAP_ENTRY_COW 0x4
118#define MAP_ENTRY_NEEDS_COPY 0x8
119#define MAP_ENTRY_NOFAULT 0x10
120#define MAP_ENTRY_USER_WIRED 0x20
121
122/*
123 * Maps are doubly-linked lists of map entries, kept sorted

--- 35 unchanged lines hidden (view full) ---

159 segsz_t vm_ssize; /* stack size (pages) */
160 caddr_t vm_taddr; /* user virtual address of text XXX */
161 caddr_t vm_daddr; /* user virtual address of data XXX */
162 caddr_t vm_maxsaddr; /* user VA at max stack growth */
163 caddr_t vm_minsaddr; /* user VA at max stack growth */
164};
165
166
167#if 0
168/*
169 * Map versions are used to validate a previous lookup attempt.
170 *
171 * Since lookup operations may involve both a main map and
172 * a sharing map, it is necessary to have a timestamp from each.
173 * [If the main map timestamp has changed, the share_map and
174 * associated timestamp are no longer valid; the map version
175 * does not include a reference for the embedded share_map.]
176 */
177typedef struct {
178 int main_timestamp;
168/*
169 * Map versions are used to validate a previous lookup attempt.
170 *
171 * Since lookup operations may involve both a main map and
172 * a sharing map, it is necessary to have a timestamp from each.
173 * [If the main map timestamp has changed, the share_map and
174 * associated timestamp are no longer valid; the map version
175 * does not include a reference for the embedded share_map.]
176 */
177typedef struct {
178 int main_timestamp;
179 vm_map_t share_map;
180 int share_timestamp;
181} vm_map_version_t;
182
179 int share_timestamp;
180} vm_map_version_t;
181
182#endif
183
183/*
184 * Macros: vm_map_lock, etc.
185 * Function:
186 * Perform locking on the data portion of a map.
187 */
188
189#define vm_map_lock_drain_interlock(map) { \
190 lockmgr(&(map)->lock, LK_DRAIN|LK_INTERLOCK, \

--- 153 unchanged lines hidden ---
184/*
185 * Macros: vm_map_lock, etc.
186 * Function:
187 * Perform locking on the data portion of a map.
188 */
189
190#define vm_map_lock_drain_interlock(map) { \
191 lockmgr(&(map)->lock, LK_DRAIN|LK_INTERLOCK, \

--- 153 unchanged lines hidden ---