1 #ifndef _clock_user_
2 #define _clock_user_
3
4 /* Module clock */
5
6 #include <sys/cdefs.h>
7 #include <sys/types.h>
8 #ifdef _KERNEL
9 #include <sys/mach/ndr.h>
10 #include <sys/mach/kern_return.h>
11 #include <sys/mach/notify.h>
12 #include <sys/mach/mach_types.h>
13 #include <sys/mach/message.h>
14 #include <sys/mach/mig_errors.h>
15 #else /* !_KERNEL */
16 #include <string.h>
17 #include <mach/ndr.h>
18 #include <mach/boolean.h>
19 #include <mach/kern_return.h>
20 #include <mach/notify.h>
21 #include <mach/mach_types.h>
22 #include <mach/message.h>
23 #include <mach/mig_errors.h>
24 #endif /*_KERNEL */
25
26 #ifdef AUTOTEST
27 #ifndef FUNCTION_PTR_T
28 #define FUNCTION_PTR_T
29 typedef void (*function_ptr_t)(mach_port_t, char *, mach_msg_type_number_t);
30 typedef struct {
31 char *name;
32 function_ptr_t function;
33 } function_table_entry;
34 typedef function_table_entry *function_table_t;
35 #endif /* FUNCTION_PTR_T */
36 #endif /* AUTOTEST */
37
38 #ifndef clock_MSG_COUNT
39 #define clock_MSG_COUNT 3
40 #endif /* clock_MSG_COUNT */
41
42 #include <sys/mach/std_types.h>
43 #include <sys/mach/mig.h>
44 #include <sys/mach/thread_status.h>
45 #include <sys/mach/mig.h>
46 #include <sys/mach/mach_types.h>
47 #include <sys/mach/mach_types.h>
48
49 #ifdef __BeforeMigUserHeader
50 __BeforeMigUserHeader
51 #endif /* __BeforeMigUserHeader */
52
53 #include <sys/cdefs.h>
54 __BEGIN_DECLS
55
56
57 /* Routine clock_get_time */
58 #ifdef mig_external
59 mig_external
60 #else
61 extern
62 #endif /* mig_external */
clock_get_time(clock_serv,cur_time)63 kern_return_t clock_get_time
64 #if defined(LINTLIBRARY)
65 (clock_serv, cur_time)
66 clock_serv_t clock_serv;
67 mach_timespec_t *cur_time;
68 { return clock_get_time(clock_serv, cur_time); }
69 #else
70 (
71 clock_serv_t clock_serv,
72 mach_timespec_t *cur_time
73 );
74 #endif /* defined(LINTLIBRARY) */
75
76 /* Routine clock_get_attributes */
77 #ifdef mig_external
78 mig_external
79 #else
80 extern
81 #endif /* mig_external */
clock_get_attributes(clock_serv,flavor,clock_attr,clock_attrCnt)82 kern_return_t clock_get_attributes
83 #if defined(LINTLIBRARY)
84 (clock_serv, flavor, clock_attr, clock_attrCnt)
85 clock_serv_t clock_serv;
86 clock_flavor_t flavor;
87 clock_attr_t clock_attr;
88 mach_msg_type_number_t *clock_attrCnt;
89 { return clock_get_attributes(clock_serv, flavor, clock_attr, clock_attrCnt); }
90 #else
91 (
92 clock_serv_t clock_serv,
93 clock_flavor_t flavor,
94 clock_attr_t clock_attr,
95 mach_msg_type_number_t *clock_attrCnt
96 );
97 #endif /* defined(LINTLIBRARY) */
98
99 /* Routine clock_alarm */
100 #ifdef mig_external
101 mig_external
102 #else
103 extern
104 #endif /* mig_external */
clock_alarm(clock_serv,alarm_type,alarm_time,alarm_port)105 kern_return_t clock_alarm
106 #if defined(LINTLIBRARY)
107 (clock_serv, alarm_type, alarm_time, alarm_port)
108 clock_serv_t clock_serv;
109 alarm_type_t alarm_type;
110 mach_timespec_t alarm_time;
111 clock_reply_t alarm_port;
112 { return clock_alarm(clock_serv, alarm_type, alarm_time, alarm_port); }
113 #else
114 (
115 clock_serv_t clock_serv,
116 alarm_type_t alarm_type,
117 mach_timespec_t alarm_time,
118 clock_reply_t alarm_port
119 );
120 #endif /* defined(LINTLIBRARY) */
121
122 __END_DECLS
123
124 /********************** Caution **************************/
125 /* The following data types should be used to calculate */
126 /* maximum message sizes only. The actual message may be */
127 /* smaller, and the position of the arguments within the */
128 /* message layout may vary from what is presented here. */
129 /* For example, if any of the arguments are variable- */
130 /* sized, and less than the maximum is sent, the data */
131 /* will be packed tight in the actual message to reduce */
132 /* the presence of holes. */
133 /********************** Caution **************************/
134
135 /* typedefs for all requests */
136
137 #ifndef __Request__clock_subsystem__defined
138 #define __Request__clock_subsystem__defined
139
140 #ifdef __MigPackStructs
141 #pragma pack(4)
142 #endif
143 typedef struct {
144 mach_msg_header_t Head;
145 /* start of the kernel processed data */
146 mach_msg_body_t msgh_body;
147 /* end of the kernel processed data */
148 } __Request__clock_get_time_t;
149 #ifdef __MigPackStructs
150 #pragma pack()
151 #endif
152
153 #ifdef __MigPackStructs
154 #pragma pack(4)
155 #endif
156 typedef struct {
157 mach_msg_header_t Head;
158 /* start of the kernel processed data */
159 mach_msg_body_t msgh_body;
160 /* end of the kernel processed data */
161 NDR_record_t NDR;
162 clock_flavor_t flavor;
163 mach_msg_type_number_t clock_attrCnt;
164 } __Request__clock_get_attributes_t;
165 #ifdef __MigPackStructs
166 #pragma pack()
167 #endif
168
169 #ifdef __MigPackStructs
170 #pragma pack(4)
171 #endif
172 typedef struct {
173 mach_msg_header_t Head;
174 /* start of the kernel processed data */
175 mach_msg_body_t msgh_body;
176 mach_msg_port_descriptor_t alarm_port;
177 /* end of the kernel processed data */
178 NDR_record_t NDR;
179 alarm_type_t alarm_type;
180 mach_timespec_t alarm_time;
181 } __Request__clock_alarm_t;
182 #ifdef __MigPackStructs
183 #pragma pack()
184 #endif
185 #endif /* !__Request__clock_subsystem__defined */
186
187 /* union of all requests */
188
189 #ifndef __RequestUnion__clock_subsystem__defined
190 #define __RequestUnion__clock_subsystem__defined
191 union __RequestUnion__clock_subsystem {
192 __Request__clock_get_time_t Request_clock_get_time;
193 __Request__clock_get_attributes_t Request_clock_get_attributes;
194 __Request__clock_alarm_t Request_clock_alarm;
195 };
196 #endif /* !__RequestUnion__clock_subsystem__defined */
197 /* typedefs for all replies */
198
199 #ifndef __Reply__clock_subsystem__defined
200 #define __Reply__clock_subsystem__defined
201
202 #ifdef __MigPackStructs
203 #pragma pack(4)
204 #endif
205 typedef struct {
206 mach_msg_header_t Head;
207 NDR_record_t NDR;
208 kern_return_t RetCode;
209 mach_timespec_t cur_time;
210 } __Reply__clock_get_time_t;
211 #ifdef __MigPackStructs
212 #pragma pack()
213 #endif
214
215 #ifdef __MigPackStructs
216 #pragma pack(4)
217 #endif
218 typedef struct {
219 mach_msg_header_t Head;
220 NDR_record_t NDR;
221 kern_return_t RetCode;
222 mach_msg_type_number_t clock_attrCnt;
223 int clock_attr[1];
224 } __Reply__clock_get_attributes_t;
225 #ifdef __MigPackStructs
226 #pragma pack()
227 #endif
228
229 #ifdef __MigPackStructs
230 #pragma pack(4)
231 #endif
232 typedef struct {
233 mach_msg_header_t Head;
234 NDR_record_t NDR;
235 kern_return_t RetCode;
236 } __Reply__clock_alarm_t;
237 #ifdef __MigPackStructs
238 #pragma pack()
239 #endif
240 #endif /* !__Reply__clock_subsystem__defined */
241
242 /* union of all replies */
243
244 #ifndef __ReplyUnion__clock_subsystem__defined
245 #define __ReplyUnion__clock_subsystem__defined
246 union __ReplyUnion__clock_subsystem {
247 __Reply__clock_get_time_t Reply_clock_get_time;
248 __Reply__clock_get_attributes_t Reply_clock_get_attributes;
249 __Reply__clock_alarm_t Reply_clock_alarm;
250 };
251 #endif /* !__RequestUnion__clock_subsystem__defined */
252
253 #ifndef subsystem_to_name_map_clock
254 #define subsystem_to_name_map_clock \
255 { "clock_get_time", 1000 },\
256 { "clock_get_attributes", 1001 },\
257 { "clock_alarm", 1002 }
258 #endif
259
260 #ifdef __AfterMigUserHeader
261 __AfterMigUserHeader
262 #endif /* __AfterMigUserHeader */
263
264 #endif /* _clock_user_ */
265