1/*
2 * IDENTIFICATION:
3 * stub generated Tue Apr 9 11:33:40 2019
4 * with a MiG generated by bootstrap_cmds-96.20.2.200.4
5 * OPTIONS:
6 * KernelUser
7 */
8#define __MIG_check__Reply__resource_notify_subsystem__ 1
9
10#include "resource_notify.h"
11
12
13#ifndef mig_internal
14#define mig_internal static __inline__
15#endif /* mig_internal */
16
17#ifndef mig_external
18#define mig_external
19#endif /* mig_external */
20
21#if !defined(__MigTypeCheck) && defined(TypeCheck)
22#define __MigTypeCheck TypeCheck /* Legacy setting */
23#endif /* !defined(__MigTypeCheck) */
24
25#if !defined(__MigKernelSpecificCode) && defined(_MIG_KERNEL_SPECIFIC_CODE_)
26#define __MigKernelSpecificCode _MIG_KERNEL_SPECIFIC_CODE_ /* Legacy setting */
27#endif /* !defined(__MigKernelSpecificCode) */
28
29#ifndef LimitCheck
30#define LimitCheck 0
31#endif /* LimitCheck */
32
33#ifndef min
34#define min(a,b) ( ((a) < (b))? (a): (b) )
35#endif /* min */
36
37#if !defined(_WALIGN_)
38#define _WALIGN_(x) (((x) + 3) & ~3)
39#endif /* !defined(_WALIGN_) */
40
41#if !defined(_WALIGNSZ_)
42#define _WALIGNSZ_(x) _WALIGN_(sizeof(x))
43#endif /* !defined(_WALIGNSZ_) */
44
45#ifndef UseStaticTemplates
46#define UseStaticTemplates 0
47#endif /* UseStaticTemplates */
48
49#ifndef __MachMsgErrorWithTimeout
50#define __MachMsgErrorWithTimeout(_R_) { \
51 switch (_R_) { \
52 case MACH_SEND_INVALID_DATA: \
53 case MACH_SEND_INVALID_DEST: \
54 case MACH_SEND_INVALID_HEADER: \
55 mig_put_reply_port(InP->Head.msgh_reply_port); \
56 break; \
57 case MACH_SEND_TIMED_OUT: \
58 case MACH_RCV_TIMED_OUT: \
59 default: \
60 mig_dealloc_reply_port(InP->Head.msgh_reply_port); \
61 } \
62}
63#endif /* __MachMsgErrorWithTimeout */
64
65#ifndef __MachMsgErrorWithoutTimeout
66#define __MachMsgErrorWithoutTimeout(_R_) { \
67 switch (_R_) { \
68 case MACH_SEND_INVALID_DATA: \
69 case MACH_SEND_INVALID_DEST: \
70 case MACH_SEND_INVALID_HEADER: \
71 mig_put_reply_port(InP->Head.msgh_reply_port); \
72 break; \
73 default: \
74 mig_dealloc_reply_port(InP->Head.msgh_reply_port); \
75 } \
76}
77#endif /* __MachMsgErrorWithoutTimeout */
78
79#ifndef __DeclareSendRpc
80#define __DeclareSendRpc(_NUM_, _NAME_)
81#endif /* __DeclareSendRpc */
82
83#ifndef __BeforeSendRpc
84#define __BeforeSendRpc(_NUM_, _NAME_)
85#endif /* __BeforeSendRpc */
86
87#ifndef __AfterSendRpc
88#define __AfterSendRpc(_NUM_, _NAME_)
89#endif /* __AfterSendRpc */
90
91#ifndef __DeclareSendSimple
92#define __DeclareSendSimple(_NUM_, _NAME_)
93#endif /* __DeclareSendSimple */
94
95#ifndef __BeforeSendSimple
96#define __BeforeSendSimple(_NUM_, _NAME_)
97#endif /* __BeforeSendSimple */
98
99#ifndef __AfterSendSimple
100#define __AfterSendSimple(_NUM_, _NAME_)
101#endif /* __AfterSendSimple */
102
103#define msgh_request_port msgh_remote_port
104#define msgh_reply_port msgh_local_port
105
106
107
108/* SimpleRoutine cpu_usage_violation */
109mig_external kern_return_t send_cpu_usage_violation
110(
111 mach_port_t receiver,
112 proc_name_t procname,
113 int pid,
114 posix_path_t killed_proc_path,
115 mach_timespec_t timestamp,
116 int64_t observed_cpu_nsecs,
117 int64_t observation_nsecs,
118 int64_t cpu_nsecs_allowed,
119 int64_t limit_window_nsecs,
120 resource_notify_flags_t flags
121)
122{
123
124#ifdef __MigPackStructs
125#pragma pack(4)
126#endif
127 typedef struct {
128 mach_msg_header_t Head;
129 NDR_record_t NDR;
130 proc_name_t procname;
131 char procnamePad[3];
132 int pid;
133 posix_path_t killed_proc_path;
134 mach_timespec_t timestamp;
135 int64_t observed_cpu_nsecs;
136 int64_t observation_nsecs;
137 int64_t cpu_nsecs_allowed;
138 int64_t limit_window_nsecs;
139 resource_notify_flags_t flags;
140 } Request __attribute__((unused));
141#ifdef __MigPackStructs
142#pragma pack()
143#endif
144 /*
145 * typedef struct {
146 * mach_msg_header_t Head;
147 * NDR_record_t NDR;
148 * kern_return_t RetCode;
149 * } mig_reply_error_t;
150 */
151
152 union {
153 Request In;
154 } Mess;
155
156 Request *InP = &Mess.In;
157
158 mach_msg_return_t msg_result;
159
160#ifdef __MIG_check__Reply__cpu_usage_violation_t__defined
161 kern_return_t check_result;
162#endif /* __MIG_check__Reply__cpu_usage_violation_t__defined */
163
164 __DeclareSendSimple(827800, "cpu_usage_violation")
165
166 InP->NDR = NDR_record;
167
168 { typedef struct { char data[33]; } *sp;
169 * (sp) InP->procname = * (sp) procname;
170 }
171
172 InP->pid = pid;
173
174 { typedef struct { char data[512]; } *sp;
175 * (sp) InP->killed_proc_path = * (sp) killed_proc_path;
176 }
177
178 InP->timestamp = timestamp;
179
180 InP->observed_cpu_nsecs = observed_cpu_nsecs;
181
182 InP->observation_nsecs = observation_nsecs;
183
184 InP->cpu_nsecs_allowed = cpu_nsecs_allowed;
185
186 InP->limit_window_nsecs = limit_window_nsecs;
187
188 InP->flags = flags;
189
190 InP->Head.msgh_bits =
191 MACH_MSGH_BITS(19, 0);
192 /* msgh_size passed as argument */
193 InP->Head.msgh_request_port = receiver;
194 InP->Head.msgh_reply_port = MACH_PORT_NULL;
195 InP->Head.msgh_id = 827800;
196 InP->Head.msgh_reserved = 0;
197
198 __BeforeSendSimple(827800, "cpu_usage_violation")
199#if __MigKernelSpecificCode
200 msg_result = mach_msg_send_from_kernel(&InP->Head, (mach_msg_size_t)sizeof(Request));
201#else
202 msg_result = mach_msg(&InP->Head, MACH_SEND_MSG|MACH_MSG_OPTION_NONE, (mach_msg_size_t)sizeof(Request), 0, MACH_PORT_NULL, MACH_MSG_TIMEOUT_NONE, MACH_PORT_NULL);
203#endif /* __MigKernelSpecificCode */
204 __AfterSendSimple(827800, "cpu_usage_violation")
205 return msg_result;
206}
207
208/* SimpleRoutine cpu_wakes_violation */
209mig_external kern_return_t send_cpu_wakes_violation
210(
211 mach_port_t receiver,
212 proc_name_t procname,
213 int pid,
214 posix_path_t killed_proc_path,
215 mach_timespec_t timestamp,
216 int64_t observed_cpu_wakes,
217 int64_t observation_nsecs,
218 int64_t cpu_wakes_allowed,
219 int64_t limit_window_nsecs,
220 resource_notify_flags_t flags
221)
222{
223
224#ifdef __MigPackStructs
225#pragma pack(4)
226#endif
227 typedef struct {
228 mach_msg_header_t Head;
229 NDR_record_t NDR;
230 proc_name_t procname;
231 char procnamePad[3];
232 int pid;
233 posix_path_t killed_proc_path;
234 mach_timespec_t timestamp;
235 int64_t observed_cpu_wakes;
236 int64_t observation_nsecs;
237 int64_t cpu_wakes_allowed;
238 int64_t limit_window_nsecs;
239 resource_notify_flags_t flags;
240 } Request __attribute__((unused));
241#ifdef __MigPackStructs
242#pragma pack()
243#endif
244 /*
245 * typedef struct {
246 * mach_msg_header_t Head;
247 * NDR_record_t NDR;
248 * kern_return_t RetCode;
249 * } mig_reply_error_t;
250 */
251
252 union {
253 Request In;
254 } Mess;
255
256 Request *InP = &Mess.In;
257
258 mach_msg_return_t msg_result;
259
260#ifdef __MIG_check__Reply__cpu_wakes_violation_t__defined
261 kern_return_t check_result;
262#endif /* __MIG_check__Reply__cpu_wakes_violation_t__defined */
263
264 __DeclareSendSimple(827801, "cpu_wakes_violation")
265
266 InP->NDR = NDR_record;
267
268 { typedef struct { char data[33]; } *sp;
269 * (sp) InP->procname = * (sp) procname;
270 }
271
272 InP->pid = pid;
273
274 { typedef struct { char data[512]; } *sp;
275 * (sp) InP->killed_proc_path = * (sp) killed_proc_path;
276 }
277
278 InP->timestamp = timestamp;
279
280 InP->observed_cpu_wakes = observed_cpu_wakes;
281
282 InP->observation_nsecs = observation_nsecs;
283
284 InP->cpu_wakes_allowed = cpu_wakes_allowed;
285
286 InP->limit_window_nsecs = limit_window_nsecs;
287
288 InP->flags = flags;
289
290 InP->Head.msgh_bits =
291 MACH_MSGH_BITS(19, 0);
292 /* msgh_size passed as argument */
293 InP->Head.msgh_request_port = receiver;
294 InP->Head.msgh_reply_port = MACH_PORT_NULL;
295 InP->Head.msgh_id = 827801;
296 InP->Head.msgh_reserved = 0;
297
298 __BeforeSendSimple(827801, "cpu_wakes_violation")
299#if __MigKernelSpecificCode
300 msg_result = mach_msg_send_from_kernel(&InP->Head, (mach_msg_size_t)sizeof(Request));
301#else
302 msg_result = mach_msg(&InP->Head, MACH_SEND_MSG|MACH_MSG_OPTION_NONE, (mach_msg_size_t)sizeof(Request), 0, MACH_PORT_NULL, MACH_MSG_TIMEOUT_NONE, MACH_PORT_NULL);
303#endif /* __MigKernelSpecificCode */
304 __AfterSendSimple(827801, "cpu_wakes_violation")
305 return msg_result;
306}
307
308/* SimpleRoutine disk_writes_violation */
309mig_external kern_return_t send_disk_writes_violation
310(
311 mach_port_t receiver,
312 proc_name_t procname,
313 int pid,
314 posix_path_t killed_proc_path,
315 mach_timespec_t timestamp,
316 int64_t observed_bytes_dirtied,
317 int64_t observation_nsecs,
318 int64_t bytes_dirtied_allowed,
319 int64_t limit_window_nsecs,
320 resource_notify_flags_t flags
321)
322{
323
324#ifdef __MigPackStructs
325#pragma pack(4)
326#endif
327 typedef struct {
328 mach_msg_header_t Head;
329 NDR_record_t NDR;
330 proc_name_t procname;
331 char procnamePad[3];
332 int pid;
333 posix_path_t killed_proc_path;
334 mach_timespec_t timestamp;
335 int64_t observed_bytes_dirtied;
336 int64_t observation_nsecs;
337 int64_t bytes_dirtied_allowed;
338 int64_t limit_window_nsecs;
339 resource_notify_flags_t flags;
340 } Request __attribute__((unused));
341#ifdef __MigPackStructs
342#pragma pack()
343#endif
344 /*
345 * typedef struct {
346 * mach_msg_header_t Head;
347 * NDR_record_t NDR;
348 * kern_return_t RetCode;
349 * } mig_reply_error_t;
350 */
351
352 union {
353 Request In;
354 } Mess;
355
356 Request *InP = &Mess.In;
357
358 mach_msg_return_t msg_result;
359
360#ifdef __MIG_check__Reply__disk_writes_violation_t__defined
361 kern_return_t check_result;
362#endif /* __MIG_check__Reply__disk_writes_violation_t__defined */
363
364 __DeclareSendSimple(827802, "disk_writes_violation")
365
366 InP->NDR = NDR_record;
367
368 { typedef struct { char data[33]; } *sp;
369 * (sp) InP->procname = * (sp) procname;
370 }
371
372 InP->pid = pid;
373
374 { typedef struct { char data[512]; } *sp;
375 * (sp) InP->killed_proc_path = * (sp) killed_proc_path;
376 }
377
378 InP->timestamp = timestamp;
379
380 InP->observed_bytes_dirtied = observed_bytes_dirtied;
381
382 InP->observation_nsecs = observation_nsecs;
383
384 InP->bytes_dirtied_allowed = bytes_dirtied_allowed;
385
386 InP->limit_window_nsecs = limit_window_nsecs;
387
388 InP->flags = flags;
389
390 InP->Head.msgh_bits =
391 MACH_MSGH_BITS(19, 0);
392 /* msgh_size passed as argument */
393 InP->Head.msgh_request_port = receiver;
394 InP->Head.msgh_reply_port = MACH_PORT_NULL;
395 InP->Head.msgh_id = 827802;
396 InP->Head.msgh_reserved = 0;
397
398 __BeforeSendSimple(827802, "disk_writes_violation")
399#if __MigKernelSpecificCode
400 msg_result = mach_msg_send_from_kernel(&InP->Head, (mach_msg_size_t)sizeof(Request));
401#else
402 msg_result = mach_msg(&InP->Head, MACH_SEND_MSG|MACH_MSG_OPTION_NONE, (mach_msg_size_t)sizeof(Request), 0, MACH_PORT_NULL, MACH_MSG_TIMEOUT_NONE, MACH_PORT_NULL);
403#endif /* __MigKernelSpecificCode */
404 __AfterSendSimple(827802, "disk_writes_violation")
405 return msg_result;
406}
407