]> git.saurik.com Git - apple/xnu.git/blame - osfmk/mach/mach_types.defs
xnu-3789.1.32.tar.gz
[apple/xnu.git] / osfmk / mach / mach_types.defs
CommitLineData
1c79356b 1/*
39037602 2 * Copyright (c) 2000-2016 Apple Inc. All rights reserved.
1c79356b 3 *
2d21ac55 4 * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
1c79356b 5 *
2d21ac55
A
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.
8f6c56a5 14 *
2d21ac55
A
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
8f6c56a5
A
20 * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
21 * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
2d21ac55
A
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.
8f6c56a5 25 *
2d21ac55 26 * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
1c79356b
A
27 */
28/*
29 * @OSF_COPYRIGHT@
30 */
31/*
32 * Mach Operating System
33 * Copyright (c) 1991,1990,1989,1988 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 */
2d21ac55
A
56/*
57 * NOTICE: This file was modified by McAfee Research in 2004 to introduce
58 * support for mandatory and extensible security protections. This notice
59 * is included in support of clause 2.2 (b) of the Apple Public License,
60 * Version 2.0.
61 */
1c79356b
A
62/*
63 */
64/*
65 * Mach kernel interface type declarations
66 */
67
68#ifndef _MACH_MACH_TYPES_DEFS_
69#define _MACH_MACH_TYPES_DEFS_
70
71
72#include <mach/std_types.defs>
73
9bccf70c
A
74type memory_object_offset_t = uint64_t;
75type memory_object_size_t = uint64_t;
91447636 76type memory_object_cluster_size_t = uint32_t;
2d21ac55 77type memory_object_fault_info_t = array[16] of integer_t;
1c79356b 78
91447636 79#ifdef KERNEL_PRIVATE
1c79356b 80
91447636
A
81/* Universal Page Lists - restricted to (in-kernel) pagers for now */
82type upl_size_t = uint32_t;
83type upl_offset_t = uint32_t;
84type upl_page_info_t = struct[2] of integer_t;
85type upl_page_info_array_t = array[*:256] of upl_page_info_t;
1c79356b 86
91447636
A
87type upl_t = mach_port_t
88 intran: upl_t convert_port_to_upl(mach_port_t)
89 outtran: mach_port_t convert_upl_to_port(upl_t)
90 destructor: upl_deallocate(upl_t)
91 ;
92
93#endif /* KERNEL_PRIVATE */
1c79356b
A
94
95type mach_port_status_t = struct[10] of integer_t; /* obsolete */
39236c6e 96type mach_port_info_ext_t = struct[17] of integer_t;
1c79356b
A
97
98 /* mach_port_info_t: can hold either a
99 * mach_port_status_t (9 ints) or a
39236c6e
A
100 * mach_port_limits_t (1 int) or a
101 * mach_port_info_ext_t (17 ints). If new flavors of
1c79356b
A
102 * mach_port_{get,set}_attributes are added, the size of
103 * this array may have to be increased. (See mach/port.h)
104 */
105type mach_port_flavor_t = int;
39236c6e
A
106type mach_port_info_t = array[*:17] of integer_t;
107
108 /*
109 * mach_msg_max_trailer_t: can hold
110 * mach_msg_trailer_type_t (1 int)
111 * mach_msg_trailer_size_t (1 int)
112 * mach_port_seqno_t (1 int)
113 * security_token_t (2 ints)
114 * audit_token_t (8 ints)
115 * mach_port_context_t (2 ints)
116 * msgh_ad (1 int)
117 * msg_labels_t (1 int)
118 */
119type mach_msg_trailer_type_t = int;
120type mach_msg_trailer_info_t = array[*:68] of char;
1c79356b
A
121
122type task_t = mach_port_t
123#if KERNEL_SERVER
124 intran: task_t convert_port_to_task(mach_port_t)
125 outtran: mach_port_t convert_task_to_port(task_t)
126 destructor: task_deallocate(task_t)
127#endif /* KERNEL_SERVER */
128 ;
129
0c530ab8
A
130type task_name_t = mach_port_t
131#if KERNEL_SERVER
132 intran: task_name_t convert_port_to_task_name(mach_port_t)
133 outtran: mach_port_t convert_task_name_to_port(task_name_t)
134 destructor: task_name_deallocate(task_name_t)
135#endif /* KERNEL_SERVER */
136 ;
137
1c79356b
A
138type thread_t = mach_port_t
139#if KERNEL_SERVER
140 intran: thread_t convert_port_to_thread(mach_port_t)
141 outtran: mach_port_t convert_thread_to_port(thread_t)
142 destructor: thread_deallocate(thread_t)
143#endif /* KERNEL_SERVER */
144 ;
145
146type thread_act_t = mach_port_t
147#if KERNEL_SERVER
91447636
A
148 intran: thread_act_t convert_port_to_thread(mach_port_t)
149 outtran: mach_port_t convert_thread_to_port(thread_act_t)
150 destructor: thread_deallocate(thread_act_t)
55e303ae 151#endif /* KERNEL_SERVER */
1c79356b
A
152 ;
153
154type thread_act_consume_ref_t = mach_port_move_send_t
91447636 155 cusertype: thread_act_t
1c79356b 156#if KERNEL_SERVER
91447636
A
157 intran: thread_act_t convert_port_to_thread(mach_port_t)
158 destructor: thread_deallocate(thread_act_t)
55e303ae 159#endif /* KERNEL_SERVER */
1c79356b
A
160 ;
161
162 /* thread_state_t: This inline array can hold
163 * a machine-dependent amount of data, defined in
164 * mach/machine/???? (currently THREAD_STATE_MAX,
165 * in mach/thread_state.h)
166 */
167#include <mach/machine/thread_state.h>
168type thread_state_flavor_t = int;
169type thread_state_t = array[*:THREAD_STATE_MAX] of natural_t;
170
171type task_array_t = ^array[] of task_t;
172type thread_array_t = ^array[] of thread_t;
173type thread_act_array_t = ^array[] of thread_act_t;
174type act_params_t = array[6] of int;
175
176type vm_map_t = mach_port_t
177#if KERNEL_SERVER
178 intran: vm_map_t convert_port_to_map(mach_port_t)
179 destructor: vm_map_deallocate(vm_map_t)
180#endif /* KERNEL_SERVER */
181 ;
182
183type vm_task_entry_t = mach_port_t
91447636 184 cusertype: vm_map_t
1c79356b
A
185#if KERNEL_SERVER
186 intran: vm_map_t convert_port_entry_to_map(mach_port_t)
187 destructor: vm_map_deallocate(vm_map_t)
188#endif /* KERNEL_SERVER */
189 ;
190
1c79356b
A
191type ipc_space_t = mach_port_t
192#if KERNEL_SERVER
193 intran: ipc_space_t convert_port_to_space(mach_port_t)
194 destructor: space_deallocate(ipc_space_t)
195#endif /* KERNEL_SERVER */
196 ;
197
1c79356b
A
198type vm_prot_t = int;
199type vm_inherit_t = int;
91447636 200type vm_purgable_t = int;
1c79356b
A
201type xxx_vm_statistics_data_t = struct[13] of integer_t;
202type vm_behavior_t = int;
2d21ac55 203type vm_statistics_data_t = struct[15] of integer_t;
1c79356b
A
204type vm_machine_attribute_t = int;
205type vm_machine_attribute_val_t = int;
206type vm_sync_t = int;
207
208 /* thread_info_t: this inline array can hold any of:
209 * thread_basic_info_t (10 ints)
210 * policy_timeshare_info_t (5 ints)
211 * policy_fifo_info_t (4 ints)
212 * policy_rr_info_t (5 ints)
3e170ce0 213 * thread_extended_info (12 ints + 64 chars)
1c79356b
A
214 * if other thread_info flavors are added, this
215 * definition may need to be changed. (See
216 * mach/thread_info.h and mach/policy.h) */
217type thread_flavor_t = int;
3e170ce0 218type thread_info_t = array[*:32] of integer_t;
1c79356b
A
219
220type thread_policy_flavor_t = natural_t;
221type thread_policy_t = array[*:16] of integer_t;
222
223 /* task_info_t: this inline array can hold any of:
91447636
A
224 * task_basic_info_32_t (8 ints)
225 * task_basic_info_64_t (10 ints)
1c79356b
A
226 * task_events_info_t (8 ints)
227 * task_thread_times_info_t (4 ints)
228 * policy_timeshare_info_t (5 ints)
229 * policy_fifo_info_t (4 ints)
230 * policy_rr_info_t (5 ints)
55e303ae
A
231 * task security token (2 ints)
232 * task audit token (8 ints)
6d2010ae
A
233 * dyld info (2 64-bit ints and 1 int)
234 * task_extmod_info_t (8 64-bit ints)
316670eb
A
235 * task_basic_info_64_2_t
236 * mach_task_basic_info_t (12 ints)
bd504ef0 237 * task_power_info_t (18 ints)
1c79356b
A
238 * If other task_info flavors are added, this
239 * definition may need to be changed. (See
240 * mach/task_info.h and mach/policy.h) */
241type task_flavor_t = int;
39236c6e
A
242type task_info_t = array[*:52] of integer_t;
243
244type task_purgable_info_t = struct[68] of integer_t;
1c79356b
A
245
246type task_policy_flavor_t = natural_t;
247type task_policy_t = array[*:16] of integer_t;
248
249type mem_entry_name_port_t = mach_port_t
250#if KERNEL_SERVER
0b4e3aa0 251 intran: mem_entry_name_port_t null_conversion(mach_port_t)
91447636
A
252 outtran: mach_port_t null_conversion(mem_entry_name_port_t)
253#endif /* KERNEL_SERVER */
254 ;
255
256type mem_entry_name_port_move_send_t = mach_port_move_send_t
257 cusertype: mem_entry_name_port_t
258#if KERNEL_SERVER
259 intran: mem_entry_name_port_t null_conversion(mach_port_t)
260 outtran: mach_port_t null_conversion(mem_entry_name_port_t)
1c79356b
A
261#endif /* KERNEL_SERVER */
262 ;
263
1c79356b 264type memory_object_default_t = mach_port_t
0b4e3aa0 265#if KERNEL_PRIVATE
1c79356b 266 intran: memory_object_default_t null_conversion(mach_port_t)
0b4e3aa0
A
267 outtran: mach_port_t null_conversion(memory_object_default_t)
268#endif /* KERNEL_PRIVATE */
1c79356b 269 ;
0b4e3aa0
A
270
271type memory_object_t = mach_port_t
272#if KERNEL_PRIVATE
273 intran: memory_object_t convert_port_to_memory_object(mach_port_t)
274 outtran: mach_port_t convert_memory_object_to_port(memory_object_t)
275#endif /* KERNEL_PRIVATE */
1c79356b
A
276 ;
277
0b4e3aa0
A
278
279type memory_object_control_t = mach_port_t
280#if KERNEL_PRIVATE
281 intran: memory_object_control_t convert_port_to_mo_control(mach_port_t)
282 outtran: mach_port_t convert_mo_control_to_port(memory_object_control_t)
283 destructor: memory_object_control_deallocate(memory_object_control_t)
284#endif /* KERNEL_PRIVATE */
1c79356b
A
285 ;
286
287type memory_object_name_t = mach_port_t
288 ctype: mach_port_t
289 ;
290
0b4e3aa0 291
1c79356b
A
292type memory_object_copy_strategy_t = int;
293type memory_object_return_t = int;
294
295type machine_info_data_t = struct[5] of integer_t;
296type machine_slot_data_t = struct[8] of integer_t;
297
298type host_t = mach_port_t
299#if KERNEL_SERVER
300 intran: host_t convert_port_to_host(mach_port_t)
301 outtran: mach_port_t convert_host_to_port(host_t)
302#endif /* KERNEL_SERVER */
303 ;
304
305type host_priv_t = mach_port_t
306#if KERNEL_SERVER
307 intran: host_priv_t convert_port_to_host_priv(mach_port_t)
308#endif /* KERNEL_SERVER */
309 ;
310
311type host_security_t = mach_port_t
312#if KERNEL_SERVER
313 intran: host_security_t convert_port_to_host_security(mach_port_t)
314#endif /* KERNEL_SERVER */
315 ;
316
b0d623f7
A
317 /*
318 * host_info_t: variable-sized inline array that can contain:
319 *
320 * host_basic_info_old_t (5 ints)
321 * host_basic_info_t (12 ints)
322 * host_sched_info_t (2 ints)
323 * kernel_resource_sizes_t (5 ints)
324 * host_load_info_t (6 ints)
325 * vm_statistics32_t (15 ints)
39236c6e 326 * host_purgable_info_t (68 ints)
bd504ef0 327 * host_expired_task_info uses a task_power_info (18 ints)
b0d623f7 328 *
1c79356b
A
329 * If other host_info flavors are added, this definition may
330 * need to be changed. (See mach/{host_info,vm_statistics}.h)
331 */
332type host_flavor_t = int;
39236c6e 333type host_info_t = array[*:68] of integer_t;
b0d623f7
A
334 /*
335 * host_info64_t: variable-sized inline array that can contain:
336 *
337 * vm_statistics_t (6 ints and 9 longs)
6d2010ae 338 * vm_extmod_statistics_t (6 64-bit ints)
b0d623f7
A
339 */
340type host_info64_t = array[*:256] of integer_t;
341
1c79356b
A
342type processor_t = mach_port_t
343#if KERNEL_SERVER
344 intran: processor_t convert_port_to_processor(mach_port_t)
345 outtran: mach_port_t convert_processor_to_port(processor_t)
346#endif /* KERNEL_SERVER */
347 ;
348
349type processor_array_t = ^array[] of processor_t;
350
351 /* processor_info_t: variable-sized inline array that can
352 * contain:
353 * processor_basic_info_t: (5 ints)
354 * processor_cpu_load_info_t:(4 ints)
355 * processor_machine_info_t :(12 ints)
356 * If other processor_info flavors are added, this definition
357 * may need to be changed. (See mach/processor_info.h) */
358type processor_flavor_t = int;
359type processor_info_t = array[*:12] of integer_t;
360type processor_info_array_t = ^array[] of integer_t;
361
362type processor_set_t = mach_port_t
363#if KERNEL_SERVER
364 intran: processor_set_t convert_port_to_pset(mach_port_t)
365 outtran: mach_port_t convert_pset_to_port(processor_set_t)
366 destructor: pset_deallocate(processor_set_t)
367#endif /* KERNEL_SERVER */
368 ;
369
370type processor_set_array_t = ^array[] of processor_set_t;
371
372type processor_set_name_t = mach_port_t
373#if KERNEL_SERVER
374 intran: processor_set_name_t convert_port_to_pset_name(mach_port_t)
375 outtran: mach_port_t convert_pset_name_to_port(processor_set_name_t)
376 destructor: pset_deallocate(processor_set_name_t)
377#endif /* KERNEL_SERVER */
378 ;
379
380type processor_set_name_array_t = ^array[] of processor_set_name_t;
381
382 /* processor_set_info_t: variable-size inline array
383 * that can hold:
384 * processor_set_basic_info (5 ints)
385 * processor_set_load_info (4 ints)
386 * policy_timeshare_base_t (1 int)
387 * policy_fifo_base_t (1 int)
388 * policy_rr_base_t (1 int)
389 * policy_timeshare_base_t (1 int)
390 * policy_fifo_base_t (1 int)
391 * policy_rr_base_t (1 int)
392 * policy_t (1 int)
393 * If other flavors are added, this definition may
394 * need to be changed. (see mach/processor.h) */
395type processor_set_flavor_t = int;
396type processor_set_info_t = array[*:5] of integer_t;
397
398type bootstrap_t = mach_port_t;
399
400type kernel_version_t = c_string[*:512];
401type kernel_boot_info_t = c_string[*:4096];
402
403type time_value_t = struct[2] of integer_t;
404
1c79356b
A
405type mach_port_qos_t = struct[2] of integer_t;
406
39236c6e
A
407type mach_port_options_t = struct[3] of uint64_t;
408type mach_port_options_ptr_t = ^ mach_port_options_t;
409
1c79356b
A
410type emulation_vector_t = ^array[] of vm_offset_t;
411
412type inline_existence_map_t = array[*:512] of char;
413
414type policy_t = int;
415 /* policy_info_t: variable-size inline array. Can hold:
416 * policy_timeshare_info_t (5 ints)
417 * policy_fifo_info_t (4 ints)
418 * policy_rr_info_t (5 ints) */
419type policy_base_t = array[*:5] of integer_t;
420type policy_info_t = array[*:2] of integer_t;
421type policy_limit_t = array[*:1] of integer_t;
422
423type ledger_t = mach_port_t
424#if KERNEL_SERVER
425 intran: ledger_t convert_port_to_ledger(mach_port_t)
426 outtran: mach_port_t convert_ledger_to_port(ledger_t)
427#endif /* KERNEL_SERVER */
428 ;
429
55e303ae 430type ledger_array_t = ^array[] of ledger_t;
1c79356b 431type ledger_item_t = integer_t;
316670eb
A
432 /* DEPRECATED */
433
434type ledger_amount_t = int64_t;
1c79356b 435
55e303ae
A
436type security_token_t = struct[2] of uint32_t;
437type audit_token_t = struct[8] of uint32_t;
1c79356b 438
2d21ac55
A
439type msg_labels_t = mach_port_t;
440
1c79356b
A
441 /* memory_object_info_t: variable-size inline array:
442 * memory_object_attr_info_t (5 ints)
443 * XXX actually it's 6 ints temporarily (object_ready!)
444 * memory_object_behave_info_t (4 ints)
445 * memory_object_perf_info_t (2 ints)
446 * old_memory_object_attr_info_t (3 ints)
1c79356b
A
447 * If other flavors are added, this definition may
448 * need to be changed. (see mach/memory_object.h) */
449type memory_object_flavor_t = int;
450type memory_object_info_t = array[*:6] of int;
451
452 /* vm_region_info_t: variable-size inline array that can hold:
453 * vm_region_basic_info_t (8 ints)
454 * If other flavors are added, this definition may
455 * need to be changed. (see mach/vm_region.h) */
456type vm_region_flavor_t = int;
91447636 457type vm_region_info_t = array[*:10] of int;
1c79356b 458type vm_region_recurse_info_t = array[*:19] of int;
1c79356b 459
b0d623f7
A
460type vm_page_info_flavor_t = int;
461type vm_page_info_t = array[*:32] of int;
462
91447636
A
463type mach_vm_read_entry_t = array[512] of mach_vm_offset_t;
464type vm_read_entry_t = array[512] of vm_offset_t;
39037602 465#ifdef VM32_SUPPORT
b0d623f7
A
466type vm32_read_entry_t = array[512] of vm32_offset_t;
467#endif
1c79356b
A
468
469type exception_mask_t = int;
470type exception_behavior_t = int;
471
472type exception_handler_t = mach_port_t;
473
474type exception_handler_array_t =
475 array[*:32] of exception_handler_t;
476
477type exception_behavior_array_t =
478 array[*:32] of exception_behavior_t;
479
480type exception_flavor_array_t =
481 array[*:32] of thread_state_flavor_t;
482
483type exception_mask_array_t =
484 array[*:32] of exception_mask_t;
485
486type semaphore_t = mach_port_t
487#if KERNEL_SERVER
488 intran: semaphore_t convert_port_to_semaphore(mach_port_t)
489 outtran: mach_port_t convert_semaphore_to_port(semaphore_t)
490 destructor: semaphore_dereference(semaphore_t)
491#endif /* KERNEL_SERVER */
492 ;
493
494type semaphore_consume_ref_t = mach_port_move_send_t
91447636 495 cusertype: semaphore_t
1c79356b
A
496#if KERNEL_SERVER
497 intran: semaphore_t convert_port_to_semaphore(mach_port_t)
0b4e3aa0 498 outtran: mach_port_t convert_semaphore_to_port(semaphore_t)
1c79356b
A
499#endif /* KERNEL_SERVER */
500 ;
501
502type lock_set_t = mach_port_t
503#if KERNEL_SERVER
504 intran: lock_set_t convert_port_to_lock_set(mach_port_t)
505 outtran: mach_port_t convert_lock_set_to_port(lock_set_t)
506 destructor: lock_set_dereference(lock_set_t)
507#endif /* KERNEL_SERVER */
508 ;
509
39236c6e
A
510type task_suspension_token_t = mach_port_move_send_once_t
511#if KERNEL_SERVER
512 intran: task_suspension_token_t convert_port_to_task_suspension_token(mach_port_t)
513 outtran: mach_port_t convert_task_suspension_token_to_port(task_suspension_token_t)
514#endif /* KERNEL_SERVER */
515 ;
516
fe8ab488
A
517
518/* public voucher types */
519
520/* Mach voucher object */
521type mach_voucher_t = mach_port_t;
522type mach_voucher_name_t = mach_port_name_t;
523
524type mach_voucher_attr_manager_t = mach_port_t;
525type mach_voucher_attr_control_t = mach_port_t;
526
527/* IPC voucher internal object */
528type ipc_voucher_t = mach_port_t
529#if KERNEL_SERVER
530 intran: ipc_voucher_t convert_port_to_voucher(mach_port_t)
531 outtran: mach_port_t convert_voucher_to_port(ipc_voucher_t)
532 destructor: ipc_voucher_release(ipc_voucher_t)
533#endif /* KERNEL_SERVER */
534 ;
535
536/* IPC voucher attribute control internal object */
537type ipc_voucher_attr_control_t = mach_port_t
538#if KERNEL_SERVER
539 intran: ipc_voucher_attr_control_t convert_port_to_voucher_attr_control(mach_port_t)
540 outtran: mach_port_t convert_voucher_attr_control_to_port(ipc_voucher_attr_control_t)
541 destructor: ipc_voucher_attr_control_release(ipc_voucher_attr_control_t)
542#endif /* KERNEL_SERVER */
543 ;
544
545type mach_voucher_attr_key_t = uint32_t;
546
547type mach_voucher_attr_command_t = uint32_t;
548type mach_voucher_attr_recipe_command_t = uint32_t;
549
550type mach_voucher_attr_content_size_t = uint32_t;
551type mach_voucher_attr_content_t = array[*:4096] of uint8_t;
552type mach_voucher_attr_content_array_t = array[*:5120] of uint8_t;
553
554type mach_voucher_attr_raw_recipe_size_t = uint32_t;
555type mach_voucher_attr_raw_recipe_t = array[*:4096] of uint8_t;
556type mach_voucher_attr_raw_recipe_array_t = array[*:5120] of uint8_t;
557
558type mach_voucher_selector_t = uint32_t;
559
560type mach_voucher_attr_value_handle_t = uint64_t;
561type mach_voucher_attr_value_handle_array_t = array[*:4] of mach_voucher_attr_value_handle_t;
562type mach_voucher_attr_value_reference_t = uint32_t;
563
3e170ce0
A
564type task_inspect_flavor_t = natural_t;
565type task_inspect_data_t = array[] of char;
566
1c79356b
A
567/* kernel module loader */
568type kmod_t = int;
569type kmod_control_flavor_t = int;
570
571type kmod_args_t = ^array[] of MACH_MSG_TYPE_BYTE
572 ctype: kmod_args_t;
573
574type io_master_t = mach_port_t;
575type UNDServerRef = mach_port_t;
576
39037602
A
577/* These must be kept in sync with definitions in osfmk/mach/dyld_kernel.h */
578type dyld_kernel_image_info_t = struct[40] of MACH_MSG_TYPE_BYTE;
579type dyld_kernel_image_info_array_t = ^array[] of dyld_kernel_image_info_t;
580type dyld_kernel_process_info_t = struct[64] of MACH_MSG_TYPE_BYTE;
581
9bccf70c 582#if KERNEL_SERVER
1c79356b 583#ifdef MACH_KERNEL_PRIVATE
fe8ab488 584simport <ipc/ipc_voucher.h>; /* for voucher conversions */
1c79356b
A
585simport <kern/ipc_kobject.h>; /* for null conversion */
586simport <kern/ipc_tt.h>; /* for task/thread conversion */
587simport <kern/ipc_host.h>; /* for host/processor/pset conversions */
1c79356b 588simport <kern/ipc_sync.h>; /* for lock_set and semaphore conversions */
9bccf70c 589simport <kern/ledger.h>; /* for ledger conversions */
91447636
A
590simport <kern/processor.h>; /* for processor conversions */
591simport <kern/sync_lock.h>; /* for lock-set conversions */
592simport <kern/sync_sema.h>; /* for semaphore conversions */
593simport <vm/memory_object.h>; /* for memory object type conversions */
594simport <vm/vm_map.h>; /* for vm_map conversions */
1c79356b
A
595#endif /* MACH_KERNEL_PRIVATE */
596
597simport <kern/ipc_mig.h>; /* pick up kernel-specific MIG things */
598
599#endif /* KERNEL_SERVER */
600
9bccf70c 601import <mach/mig.h>;
1c79356b
A
602import <mach/mach_types.h>;
603
604#endif /* _MACH_MACH_TYPES_DEFS_ */
2d21ac55
A
605
606/* vim: set ft=c : */