1 /*
2 * Mach Operating System
3 * Copyright (c) 1991,1992 Carnegie Mellon University
4 * All Rights Reserved.
5 *
6 * Permission to use, copy, modify and distribute this software and its
7 * documentation is hereby granted, provided that both the copyright
8 * notice and this permission notice appear in all copies of the
9 * software, derivative works or modified versions, and any portions
10 * thereof, and that both notices appear in supporting documentation.
11 *
12 * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS
13 * CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
14 * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
15 *
16 * Carnegie Mellon requests users of this software to return to
17 *
18 * Software Distribution Coordinator or Software.Distribution@CS.CMU.EDU
19 * School of Computer Science
20 * Carnegie Mellon University
21 * Pittsburgh PA 15213-3890
22 *
23 * any improvements or extensions that they make and grant Carnegie the
24 * rights to redistribute these changes.
25 */
26 /*
27 * HISTORY
28 * $Log: xmm_proxy.defs,v $
29 * Revision 2.4 92/03/10 16:29:32 jsb
30 * Merged in norma branch changes as of NORMA_MK7.
31 * [92/03/09 12:52:28 jsb]
32 *
33 * Revision 2.3.3.3 92/02/21 11:27:57 jsb
34 * Changed proxy_terminate back into a simpleroutine, and changed its
35 * destination argument from copy_send to move_send.
36 * [92/02/17 07:18:19 jsb]
37 *
38 * Changed proxy_init destination from copy_send to move_send.
39 * [92/02/16 14:12:32 jsb]
40 *
41 * Renamed {mobj,kobj}_port to xmm_{pager,kernel}.
42 * Changed proxy_init to use xmm_object instead of
43 * <memory_object_host, memory_object> pair.
44 * [92/02/10 17:04:18 jsb]
45 *
46 * Changed for new memory_object_name protocol.
47 * [92/02/09 12:56:43 jsb]
48 *
49 * Revision 2.3.3.2 92/01/21 22:09:01 jsb
50 * From dlb@ri.osf.org: make proxy_terminate an rpc.
51 *
52 * Revision 2.3.3.1 92/01/21 21:54:39 jsb
53 * Changed interface to use ports instead of pointers.
54 * [92/01/20 17:28:21 jsb]
55 *
56 * Fixes from OSF.
57 * [92/01/17 14:15:23 jsb]
58 *
59 * Revision 2.3.1.1 92/01/15 12:22:11 jeffreyh
60 * Pass memory_object_name as a receive right in proxy_terminate. (dlb)
61 *
62 * Revision 2.3 91/12/10 13:26:30 jsb
63 * Added missing third parameter to proxy_terminate.
64 * It should in the future become a moving receive right.
65 * [91/12/10 12:49:57 jsb]
66 *
67 * Revision 2.2 91/06/17 15:48:31 jsb
68 * First checkin.
69 * [91/06/17 13:45:41 jsb]
70 *
71 */
72 /*
73 * File: norma/xmm_proxy.defs
74 * Author: Joseph S. Barrera III
75 * Date: 1991
76 *
77 * Mig interface for communication between xmm_export.c and xmm_import.c.
78 */
79
80 subsystem
81 #if KERNEL_USER
82 KernelUser
83 #endif KERNEL_USER
84 #if KERNEL_SERVER
85 KernelServer
86 #endif KERNEL_SERVER
87 proxy 923000;
88
89 serverprefix _;
90
91 #include <mach/std_types.defs>
92 #include <mach/mach_types.defs>
93
94 /*
95 * Calls from kernel to memory manager (adopted from memory_object.defs).
96 */
97
98 simpleroutine proxy_init(
99 xmm_object : mach_port_move_send_t;
100 xmm_kernel : mach_port_make_send_t;
101 page_size : vm_size_t;
102 internal : boolean_t;
103 size : vm_size_t);
104
105 simpleroutine proxy_terminate(
106 xmm_pager : mach_port_move_send_t);
107
108 simpleroutine proxy_copy(
109 xmm_pager : mach_port_t;
110 offset : vm_offset_t;
111 length : vm_size_t;
112 new_memory_object : memory_object_t =
113 MACH_MSG_TYPE_MOVE_RECEIVE
114 ctype: mach_port_t);
115
116 simpleroutine proxy_data_request(
117 xmm_pager : mach_port_t;
118 offset : vm_offset_t;
119 length : vm_size_t;
120 desired_access : vm_prot_t);
121
122 simpleroutine proxy_data_unlock(
123 xmm_pager : mach_port_t;
124 offset : vm_offset_t;
125 length : vm_size_t;
126 desired_access : vm_prot_t);
127
128 simpleroutine proxy_data_write(
129 xmm_pager : mach_port_t;
130 offset : vm_offset_t;
131 data : pointer_t);
132
133 simpleroutine proxy_lock_completed(
134 reply_to : mach_port_move_send_once_t;
135 offset : vm_offset_t;
136 length : vm_size_t);
137
138 simpleroutine proxy_supply_completed(
139 reply_to : mach_port_move_send_once_t;
140 offset : vm_offset_t;
141 length : vm_size_t;
142 result : kern_return_t;
143 error_offset : vm_offset_t);
144
145 simpleroutine proxy_data_return(
146 xmm_pager : mach_port_t;
147 offset : vm_offset_t;
148 data : pointer_t);
149
150 simpleroutine proxy_change_completed(
151 reply_to : mach_port_move_send_once_t;
152 may_cache : boolean_t;
153 copy_strategy : memory_object_copy_strategy_t);
154
155 /*
156 * Calls from memory manager to kernel (adopted from mach.defs).
157 */
158
159 simpleroutine proxy_data_unavailable(
160 xmm_kernel : mach_port_t;
161 offset : vm_offset_t;
162 size : vm_size_t);
163
164 routine proxy_get_attributes(
165 xmm_kernel : mach_port_t;
166 out object_ready : boolean_t;
167 out may_cache : boolean_t;
168 out copy_strategy : memory_object_copy_strategy_t);
169
170 simpleroutine proxy_lock_request(
171 xmm_kernel : mach_port_t;
172 offset : vm_offset_t;
173 size : vm_size_t;
174 should_clean : boolean_t;
175 should_flush : boolean_t;
176 lock_value : vm_prot_t;
177 reply_to : mach_port_make_send_once_t);
178
179 simpleroutine proxy_data_error(
180 xmm_kernel : mach_port_t;
181 offset : vm_offset_t;
182 size : vm_size_t;
183 error_value : kern_return_t);
184
185 simpleroutine proxy_set_ready(
186 xmm_kernel : mach_port_t;
187 xmm_pager : mach_port_make_send_t;
188 object_ready : boolean_t;
189 may_cache : boolean_t;
190 copy_strategy : memory_object_copy_strategy_t;
191 error_value : kern_return_t;
192 use_old_pageout : boolean_t;
193 pager_name : mach_port_move_send_t;
194 reply_to : mach_port_make_send_once_t);
195
196 simpleroutine proxy_destroy(
197 xmm_kernel : mach_port_t;
198 reason : kern_return_t);
199
200 simpleroutine proxy_data_supply(
201 xmm_kernel : mach_port_t;
202 offset : vm_offset_t;
203 data : pointer_t;
204 lock_value : vm_prot_t;
205 precious : boolean_t;
206 reply_to : mach_port_make_send_once_t);
Cache object: 0410408a0ddf154fca7c2c3807042799
|