summaryrefslogtreecommitdiff
path: root/include/mach/std_types.defs
blob: b0011f1b7e23411d60fb194cb86e10318473ad40 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
/* 
 * Mach Operating System
 * Copyright (c) 1991,1990,1989,1988 Carnegie Mellon University
 * All Rights Reserved.
 *
 * Permission to use, copy, modify and distribute this software and its
 * documentation is hereby granted, provided that both the copyright
 * notice and this permission notice appear in all copies of the
 * software, derivative works or modified versions, and any portions
 * thereof, and that both notices appear in supporting documentation.
 *
 * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
 * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
 * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
 *
 * Carnegie Mellon requests users of this software to return to
 *
 *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
 *  School of Computer Science
 *  Carnegie Mellon University
 *  Pittsburgh PA 15213-3890
 *
 * any improvements or extensions that they make and grant Carnegie Mellon
 * the rights to redistribute these changes.
 */
/*
 *	Mach kernel standard interface type declarations
 */

#ifndef	_MACH_STD_TYPES_DEFS_
#define _MACH_STD_TYPES_DEFS_

#ifdef	MACH_KERNEL
#include <mach_ipc_compat.h>
#endif

type char = MACH_MSG_TYPE_CHAR;
type short = MACH_MSG_TYPE_INTEGER_16;
type int = MACH_MSG_TYPE_INTEGER_32;
type int32 = MACH_MSG_TYPE_INTEGER_32;
type int64 = MACH_MSG_TYPE_INTEGER_64;
type boolean_t = MACH_MSG_TYPE_BOOLEAN;
type unsigned = MACH_MSG_TYPE_INTEGER_32;
type unsigned32 = MACH_MSG_TYPE_INTEGER_32;
type unsigned64 = MACH_MSG_TYPE_INTEGER_64;

/* Get the definitions for natural_t and integer_t */
#include <mach/machine/machine_types.defs>

type kern_return_t = int;

type pointer_t = ^array[] of MACH_MSG_TYPE_BYTE
	ctype: vm_offset_t;


type mach_port_t = MACH_MSG_TYPE_COPY_SEND;
type mach_port_array_t = array[] of mach_port_t;

type mach_port_name_t = MACH_MSG_TYPE_PORT_NAME
	ctype: mach_port_t;
type mach_port_name_array_t = array[] of mach_port_name_t
	ctype: mach_port_array_t;

type mach_port_right_t = natural_t;

type mach_port_type_t = natural_t;
type mach_port_type_array_t = array[] of mach_port_type_t;

type mach_port_urefs_t = natural_t;
type mach_port_delta_t = integer_t;
type mach_port_seqno_t = natural_t;
type mach_port_mscount_t = unsigned;
type mach_port_msgcount_t = unsigned;
type mach_port_rights_t = unsigned;
type mach_msg_id_t = integer_t;
type mach_msg_type_name_t = unsigned;
type mach_msg_type_number_t = natural_t;

type mach_port_move_receive_t =		MACH_MSG_TYPE_MOVE_RECEIVE
	ctype: mach_port_t;
type mach_port_copy_send_t =		MACH_MSG_TYPE_COPY_SEND
	ctype: mach_port_t;
type mach_port_make_send_t =		MACH_MSG_TYPE_MAKE_SEND
	ctype: mach_port_t;
type mach_port_move_send_t =		MACH_MSG_TYPE_MOVE_SEND
	ctype: mach_port_t;
type mach_port_make_send_once_t =	MACH_MSG_TYPE_MAKE_SEND_ONCE
	ctype: mach_port_t;
type mach_port_move_send_once_t =	MACH_MSG_TYPE_MOVE_SEND_ONCE
	ctype: mach_port_t;

type mach_port_receive_t =		MACH_MSG_TYPE_PORT_RECEIVE
	ctype: mach_port_t;
type mach_port_send_t =			MACH_MSG_TYPE_PORT_SEND
	ctype: mach_port_t;
type mach_port_send_once_t =		MACH_MSG_TYPE_PORT_SEND_ONCE
	ctype: mach_port_t;

type mach_port_poly_t = polymorphic
	ctype: mach_port_t;


/* Definitions for the old IPC interface. */

#if	MACH_IPC_COMPAT

type port_name_t = MSG_TYPE_PORT_NAME
	ctype: mach_port_t;
type port_name_array_t = ^array[] of port_name_t
	ctype: mach_port_array_t;
type port_type_t = int
	ctype: mach_port_type_t;
type port_type_array_t = ^array[] of port_type_t
	ctype: mach_port_type_array_t;
type port_set_name_t = port_name_t
	ctype: mach_port_t;

type port_t = MACH_MSG_TYPE_COPY_SEND
	ctype: mach_port_t;
type port_all_t = MACH_MSG_TYPE_MOVE_RECEIVE
	ctype: mach_port_t;
type port_rcv_t = MACH_MSG_TYPE_MOVE_RECEIVE
	ctype: mach_port_t;
type port_array_t = ^array[] of port_t
	ctype: mach_port_array_t;

#endif	/* MACH_IPC_COMPAT */

import <mach/std_types.h>;

#endif	/* _MACH_STD_TYPES_DEFS_ */