1 | /*␊ |
2 | * Copyright (c) 2000-2007 Apple Inc. All rights reserved.␊ |
3 | *␊ |
4 | * @APPLE_OSREFERENCE_LICENSE_HEADER_START@␊ |
5 | * ␊ |
6 | * This file contains Original Code and/or Modifications of Original Code␊ |
7 | * as defined in and that are subject to the Apple Public Source License␊ |
8 | * Version 2.0 (the 'License'). You may not use this file except in␊ |
9 | * compliance with the License. The rights granted to you under the License␊ |
10 | * may not be used to create, or enable the creation or redistribution of,␊ |
11 | * unlawful or unlicensed copies of an Apple operating system, or to␊ |
12 | * circumvent, violate, or enable the circumvention or violation of, any␊ |
13 | * terms of an Apple operating system software license agreement.␊ |
14 | * ␊ |
15 | * Please obtain a copy of the License at␊ |
16 | * http://www.opensource.apple.com/apsl/ and read it before using this file.␊ |
17 | * ␊ |
18 | * The Original Code and all software distributed under the License are␊ |
19 | * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER␊ |
20 | * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,␊ |
21 | * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,␊ |
22 | * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.␊ |
23 | * Please see the License for the specific language governing rights and␊ |
24 | * limitations under the License.␊ |
25 | * ␊ |
26 | * @APPLE_OSREFERENCE_LICENSE_HEADER_END@␊ |
27 | */␊ |
28 | /*␊ |
29 | * @OSF_COPYRIGHT@␊ |
30 | */␊ |
31 | /* ␊ |
32 | * Mach Operating System␊ |
33 | * Copyright (c) 1991,1990,1989,1988,1987 Carnegie Mellon University␊ |
34 | * All Rights Reserved.␊ |
35 | * ␊ |
36 | * Permission to use, copy, modify and distribute this software and its␊ |
37 | * documentation is hereby granted, provided that both the copyright␊ |
38 | * notice and this permission notice appear in all copies of the␊ |
39 | * software, derivative works or modified versions, and any portions␊ |
40 | * thereof, and that both notices appear in supporting documentation.␊ |
41 | * ␊ |
42 | * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"␊ |
43 | * CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR␊ |
44 | * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.␊ |
45 | * ␊ |
46 | * Carnegie Mellon requests users of this software to return to␊ |
47 | * ␊ |
48 | * Software Distribution Coordinator or Software.Distribution@CS.CMU.EDU␊ |
49 | * School of Computer Science␊ |
50 | * Carnegie Mellon University␊ |
51 | * Pittsburgh PA 15213-3890␊ |
52 | * ␊ |
53 | * any improvements or extensions that they make and grant Carnegie Mellon␊ |
54 | * the rights to redistribute these changes.␊ |
55 | */␊ |
56 | /*␊ |
57 | */␊ |
58 | /*␊ |
59 | *␉Definitions of general Mach system traps.␊ |
60 | *␊ |
61 | *␉These are the definitions as seen from user-space.␊ |
62 | *␉The kernel definitions are in <mach/syscall_sw.h>.␊ |
63 | *␉Kernel RPC functions are defined in <mach/mach_interface.h>.␊ |
64 | */␊ |
65 | ␊ |
66 | #ifndef␉_MACH_MACH_TRAPS_H_␊ |
67 | #define _MACH_MACH_TRAPS_H_␊ |
68 | ␊ |
69 | #include <stdint.h>␊ |
70 | ␊ |
71 | #include <mach/std_types.h>␊ |
72 | #include <mach/mach_types.h>␊ |
73 | #include <mach/kern_return.h>␊ |
74 | #include <mach/port.h>␊ |
75 | #include <mach/vm_types.h>␊ |
76 | #include <mach/clock_types.h>␊ |
77 | ␊ |
78 | #include <machine/endian.h>␊ |
79 | ␊ |
80 | #include <sys/cdefs.h>␊ |
81 | ␊ |
82 | __BEGIN_DECLS␊ |
83 | ␊ |
84 | ␊ |
85 | ␊ |
86 | extern kern_return_t clock_sleep_trap(␊ |
87 | ␉␉␉␉mach_port_name_t clock_name,␊ |
88 | ␉␉␉␉sleep_type_t sleep_type,␊ |
89 | ␉␉␉␉int sleep_sec,␊ |
90 | ␉␉␉␉int sleep_nsec,␊ |
91 | ␉␉␉␉mach_timespec_t␉*wakeup_time);␊ |
92 | ␊ |
93 | extern kern_return_t _kernelrpc_mach_vm_allocate_trap(␊ |
94 | ␉␉␉␉mach_port_name_t target,␊ |
95 | ␉␉␉␉mach_vm_offset_t *addr,␊ |
96 | ␉␉␉␉mach_vm_size_t size,␊ |
97 | ␉␉␉␉int flags);␊ |
98 | ␊ |
99 | extern kern_return_t _kernelrpc_mach_vm_deallocate_trap(␊ |
100 | ␉␉␉␉mach_port_name_t target,␊ |
101 | ␉␉␉␉mach_vm_address_t address,␊ |
102 | ␉␉␉␉mach_vm_size_t size␊ |
103 | );␊ |
104 | ␊ |
105 | extern kern_return_t _kernelrpc_mach_vm_protect_trap(␊ |
106 | ␉␉␉␉mach_port_name_t target,␊ |
107 | ␉␉␉␉mach_vm_address_t address,␊ |
108 | ␉␉␉␉mach_vm_size_t size,␊ |
109 | ␉␉␉␉boolean_t set_maximum,␊ |
110 | ␉␉␉␉vm_prot_t new_protection␊ |
111 | );␊ |
112 | ␊ |
113 | extern kern_return_t _kernelrpc_mach_port_allocate_trap(␊ |
114 | ␉␉␉␉mach_port_name_t target,␊ |
115 | ␉␉␉␉mach_port_right_t right,␊ |
116 | ␉␉␉␉mach_port_name_t *name␊ |
117 | );␊ |
118 | ␊ |
119 | ␊ |
120 | extern kern_return_t _kernelrpc_mach_port_destroy_trap(␊ |
121 | ␉␉␉␉mach_port_name_t target,␊ |
122 | ␉␉␉␉mach_port_name_t name␊ |
123 | );␊ |
124 | ␊ |
125 | extern kern_return_t _kernelrpc_mach_port_deallocate_trap(␊ |
126 | ␉␉␉␉mach_port_name_t target,␊ |
127 | ␉␉␉␉mach_port_name_t name␊ |
128 | );␊ |
129 | ␊ |
130 | extern kern_return_t _kernelrpc_mach_port_mod_refs_trap(␊ |
131 | ␉␉␉␉mach_port_name_t target,␊ |
132 | ␉␉␉␉mach_port_name_t name,␊ |
133 | ␉␉␉␉mach_port_right_t right,␊ |
134 | ␉␉␉␉mach_port_delta_t delta␊ |
135 | );␊ |
136 | ␊ |
137 | extern kern_return_t _kernelrpc_mach_port_move_member_trap(␊ |
138 | ␉␉␉␉mach_port_name_t target,␊ |
139 | ␉␉␉␉mach_port_name_t member,␊ |
140 | ␉␉␉␉mach_port_name_t after␊ |
141 | );␊ |
142 | ␊ |
143 | extern kern_return_t _kernelrpc_mach_port_insert_right_trap(␊ |
144 | ␉␉␉␉mach_port_name_t target,␊ |
145 | ␉␉␉␉mach_port_name_t name,␊ |
146 | ␉␉␉␉mach_port_name_t poly,␊ |
147 | ␉␉␉␉mach_msg_type_name_t polyPoly␊ |
148 | );␊ |
149 | ␊ |
150 | extern kern_return_t _kernelrpc_mach_port_insert_member_trap(␊ |
151 | ␉␉␉␉mach_port_name_t target,␊ |
152 | ␉␉␉␉mach_port_name_t name,␊ |
153 | ␉␉␉␉mach_port_name_t pset␊ |
154 | );␊ |
155 | ␊ |
156 | extern kern_return_t _kernelrpc_mach_port_extract_member_trap(␊ |
157 | ␉␉␉␉mach_port_name_t target,␊ |
158 | ␉␉␉␉mach_port_name_t name,␊ |
159 | ␉␉␉␉mach_port_name_t pset␊ |
160 | );␊ |
161 | ␊ |
162 | extern kern_return_t macx_swapon(␊ |
163 | ␉␉␉␉uint64_t filename,␊ |
164 | ␉␉␉␉int flags,␊ |
165 | ␉␉␉␉int size,␊ |
166 | ␉␉␉␉int priority);␊ |
167 | ␊ |
168 | extern kern_return_t macx_swapoff(␊ |
169 | ␉␉␉␉uint64_t filename,␊ |
170 | ␉␉␉␉int flags);␊ |
171 | ␊ |
172 | extern kern_return_t macx_triggers(␊ |
173 | ␉␉␉␉int hi_water,␊ |
174 | ␉␉␉␉int low_water,␊ |
175 | ␉␉␉␉int flags,␊ |
176 | ␉␉␉␉mach_port_t alert_port);␊ |
177 | ␊ |
178 | extern kern_return_t macx_backing_store_suspend(␊ |
179 | ␉␉␉␉boolean_t suspend);␊ |
180 | ␊ |
181 | extern kern_return_t macx_backing_store_recovery(␊ |
182 | ␉␉␉␉int pid);␊ |
183 | ␊ |
184 | extern boolean_t swtch_pri(int pri);␊ |
185 | ␊ |
186 | extern boolean_t swtch(void);␊ |
187 | ␊ |
188 | extern kern_return_t thread_switch(␊ |
189 | ␉␉␉␉mach_port_name_t thread_name,␊ |
190 | ␉␉␉␉int option,␊ |
191 | ␉␉␉␉mach_msg_timeout_t option_time);␊ |
192 | ␊ |
193 | extern mach_port_name_t task_self_trap(void);␊ |
194 | ␊ |
195 | /*␊ |
196 | *␉Obsolete interfaces.␊ |
197 | */␊ |
198 | ␊ |
199 | extern kern_return_t task_for_pid(␊ |
200 | ␉␉␉␉mach_port_name_t target_tport,␊ |
201 | ␉␉␉␉int pid,␊ |
202 | ␉␉␉␉mach_port_name_t *t);␊ |
203 | ␊ |
204 | extern kern_return_t task_name_for_pid(␊ |
205 | ␉␉␉␉mach_port_name_t target_tport,␊ |
206 | ␉␉␉␉int pid,␊ |
207 | ␉␉␉␉mach_port_name_t *tn);␊ |
208 | ␊ |
209 | extern kern_return_t pid_for_task(␊ |
210 | ␉␉␉␉mach_port_name_t t,␊ |
211 | ␉␉␉␉int *x);␊ |
212 | ␊ |
213 | #if␉␉!defined(__LP64__) && !defined(__arm__)␊ |
214 | /* these should go away altogether - so no 64 legacy please */␊ |
215 | ␊ |
216 | extern kern_return_t map_fd(␊ |
217 | ␉␉␉␉int fd,␊ |
218 | ␉␉␉␉vm_offset_t offset,␊ |
219 | ␉␉␉␉vm_offset_t *va,␊ |
220 | ␉␉␉␉boolean_t findspace,␊ |
221 | ␉␉␉␉vm_size_t size);␊ |
222 | ␊ |
223 | #endif␉/* !defined(__LP64__) && !defined(__arm__) */␊ |
224 | ␊ |
225 | ␊ |
226 | __END_DECLS␊ |
227 | ␊ |
228 | #endif␉/* _MACH_MACH_TRAPS_H_ */␊ |
229 | |