xref: /NextBSD/usr.sbin/asl/asl_ipc.h (revision 33da5adc555b3bc29986eeadca03829e4ad06b1e)
1 #ifndef	_asl_ipc_user_
2 #define	_asl_ipc_user_
3 
4 /* Module asl_ipc */
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	asl_ipc_MSG_COUNT
39 #define	asl_ipc_MSG_COUNT	9
40 #endif	/* asl_ipc_MSG_COUNT */
41 
42 #include <sys/mach/std_types.h>
43 #include <sys/mach/mig.h>
44 #include <sys/mach/mig.h>
45 #include <sys/mach/mach_types.h>
46 #include <sys/types.h>
47 
48 #ifdef __BeforeMigUserHeader
49 __BeforeMigUserHeader
50 #endif /* __BeforeMigUserHeader */
51 
52 #include <sys/cdefs.h>
53 __BEGIN_DECLS
54 
55 
56 /* Routine _asl_server_query */
57 #ifdef	mig_external
58 mig_external
59 #else
60 extern
61 #endif	/* mig_external */
_asl_server_query(server,request,requestCnt,startid,count,flags,reply,replyCnt,lastid,status,token)62 kern_return_t _asl_server_query
63 #if	defined(LINTLIBRARY)
64     (server, request, requestCnt, startid, count, flags, reply, replyCnt, lastid, status, token)
65 	mach_port_t server;
66 	caddr_t request;
67 	mach_msg_type_number_t requestCnt;
68 	uint64_t startid;
69 	int count;
70 	int flags;
71 	caddr_t *reply;
72 	mach_msg_type_number_t *replyCnt;
73 	uint64_t *lastid;
74 	int *status;
75 	security_token_t *token;
76 { return _asl_server_query(server, request, requestCnt, startid, count, flags, reply, replyCnt, lastid, status, token); }
77 #else
78 (
79 	mach_port_t server,
80 	caddr_t request,
81 	mach_msg_type_number_t requestCnt,
82 	uint64_t startid,
83 	int count,
84 	int flags,
85 	caddr_t *reply,
86 	mach_msg_type_number_t *replyCnt,
87 	uint64_t *lastid,
88 	int *status,
89 	security_token_t *token
90 );
91 #endif	/* defined(LINTLIBRARY) */
92 
93 /* Routine _asl_server_query_timeout */
94 #ifdef	mig_external
95 mig_external
96 #else
97 extern
98 #endif	/* mig_external */
_asl_server_query_timeout(server,request,requestCnt,startid,count,timeout,flags,reply,replyCnt,lastid,status)99 kern_return_t _asl_server_query_timeout
100 #if	defined(LINTLIBRARY)
101     (server, request, requestCnt, startid, count, timeout, flags, reply, replyCnt, lastid, status)
102 	mach_port_t server;
103 	caddr_t request;
104 	mach_msg_type_number_t requestCnt;
105 	uint64_t startid;
106 	int count;
107 	natural_t timeout;
108 	int flags;
109 	caddr_t *reply;
110 	mach_msg_type_number_t *replyCnt;
111 	uint64_t *lastid;
112 	int *status;
113 { return _asl_server_query_timeout(server, request, requestCnt, startid, count, timeout, flags, reply, replyCnt, lastid, status); }
114 #else
115 (
116 	mach_port_t server,
117 	caddr_t request,
118 	mach_msg_type_number_t requestCnt,
119 	uint64_t startid,
120 	int count,
121 	natural_t timeout,
122 	int flags,
123 	caddr_t *reply,
124 	mach_msg_type_number_t *replyCnt,
125 	uint64_t *lastid,
126 	int *status
127 );
128 #endif	/* defined(LINTLIBRARY) */
129 
130 /* Routine _asl_server_prune */
131 #ifdef	mig_external
132 mig_external
133 #else
134 extern
135 #endif	/* mig_external */
_asl_server_prune(server,request,requestCnt,status,token)136 kern_return_t _asl_server_prune
137 #if	defined(LINTLIBRARY)
138     (server, request, requestCnt, status, token)
139 	mach_port_t server;
140 	caddr_t request;
141 	mach_msg_type_number_t requestCnt;
142 	int *status;
143 	security_token_t *token;
144 { return _asl_server_prune(server, request, requestCnt, status, token); }
145 #else
146 (
147 	mach_port_t server,
148 	caddr_t request,
149 	mach_msg_type_number_t requestCnt,
150 	int *status,
151 	security_token_t *token
152 );
153 #endif	/* defined(LINTLIBRARY) */
154 
155 /* Routine _asl_server_create_aux_link */
156 #ifdef	mig_external
157 mig_external
158 #else
159 extern
160 #endif	/* mig_external */
_asl_server_create_aux_link(server,message,messageCnt,fileport,url,urlCnt,status)161 kern_return_t _asl_server_create_aux_link
162 #if	defined(LINTLIBRARY)
163     (server, message, messageCnt, fileport, url, urlCnt, status)
164 	mach_port_t server;
165 	caddr_t message;
166 	mach_msg_type_number_t messageCnt;
167 	mach_port_t *fileport;
168 	caddr_t *url;
169 	mach_msg_type_number_t *urlCnt;
170 	int *status;
171 { return _asl_server_create_aux_link(server, message, messageCnt, fileport, url, urlCnt, status); }
172 #else
173 (
174 	mach_port_t server,
175 	caddr_t message,
176 	mach_msg_type_number_t messageCnt,
177 	mach_port_t *fileport,
178 	caddr_t *url,
179 	mach_msg_type_number_t *urlCnt,
180 	int *status
181 );
182 #endif	/* defined(LINTLIBRARY) */
183 
184 /* SimpleRoutine _asl_server_message */
185 #ifdef	mig_external
186 mig_external
187 #else
188 extern
189 #endif	/* mig_external */
_asl_server_message(server,message,messageCnt)190 kern_return_t _asl_server_message
191 #if	defined(LINTLIBRARY)
192     (server, message, messageCnt)
193 	mach_port_t server;
194 	caddr_t message;
195 	mach_msg_type_number_t messageCnt;
196 { return _asl_server_message(server, message, messageCnt); }
197 #else
198 (
199 	mach_port_t server,
200 	caddr_t message,
201 	mach_msg_type_number_t messageCnt
202 );
203 #endif	/* defined(LINTLIBRARY) */
204 
205 /* SimpleRoutine _asl_server_register_direct_watch */
206 #ifdef	mig_external
207 mig_external
208 #else
209 extern
210 #endif	/* mig_external */
_asl_server_register_direct_watch(server,port)211 kern_return_t _asl_server_register_direct_watch
212 #if	defined(LINTLIBRARY)
213     (server, port)
214 	mach_port_t server;
215 	int port;
216 { return _asl_server_register_direct_watch(server, port); }
217 #else
218 (
219 	mach_port_t server,
220 	int port
221 );
222 #endif	/* defined(LINTLIBRARY) */
223 
224 /* SimpleRoutine _asl_server_cancel_direct_watch */
225 #ifdef	mig_external
226 mig_external
227 #else
228 extern
229 #endif	/* mig_external */
_asl_server_cancel_direct_watch(server,port)230 kern_return_t _asl_server_cancel_direct_watch
231 #if	defined(LINTLIBRARY)
232     (server, port)
233 	mach_port_t server;
234 	int port;
235 { return _asl_server_cancel_direct_watch(server, port); }
236 #else
237 (
238 	mach_port_t server,
239 	int port
240 );
241 #endif	/* defined(LINTLIBRARY) */
242 
243 /* Routine _asl_server_query_2 */
244 #ifdef	mig_external
245 mig_external
246 #else
247 extern
248 #endif	/* mig_external */
_asl_server_query_2(server,request,requestCnt,startid,count,flags,reply,replyCnt,lastid,status)249 kern_return_t _asl_server_query_2
250 #if	defined(LINTLIBRARY)
251     (server, request, requestCnt, startid, count, flags, reply, replyCnt, lastid, status)
252 	mach_port_t server;
253 	caddr_t request;
254 	mach_msg_type_number_t requestCnt;
255 	uint64_t startid;
256 	int count;
257 	int flags;
258 	caddr_t *reply;
259 	mach_msg_type_number_t *replyCnt;
260 	uint64_t *lastid;
261 	int *status;
262 { return _asl_server_query_2(server, request, requestCnt, startid, count, flags, reply, replyCnt, lastid, status); }
263 #else
264 (
265 	mach_port_t server,
266 	caddr_t request,
267 	mach_msg_type_number_t requestCnt,
268 	uint64_t startid,
269 	int count,
270 	int flags,
271 	caddr_t *reply,
272 	mach_msg_type_number_t *replyCnt,
273 	uint64_t *lastid,
274 	int *status
275 );
276 #endif	/* defined(LINTLIBRARY) */
277 
278 /* Routine _asl_server_match */
279 #ifdef	mig_external
280 mig_external
281 #else
282 extern
283 #endif	/* mig_external */
_asl_server_match(server,request,requestCnt,startid,count,duration,direction,reply,replyCnt,lastid,status)284 kern_return_t _asl_server_match
285 #if	defined(LINTLIBRARY)
286     (server, request, requestCnt, startid, count, duration, direction, reply, replyCnt, lastid, status)
287 	mach_port_t server;
288 	caddr_t request;
289 	mach_msg_type_number_t requestCnt;
290 	uint64_t startid;
291 	uint64_t count;
292 	uint32_t duration;
293 	int direction;
294 	caddr_t *reply;
295 	mach_msg_type_number_t *replyCnt;
296 	uint64_t *lastid;
297 	int *status;
298 { return _asl_server_match(server, request, requestCnt, startid, count, duration, direction, reply, replyCnt, lastid, status); }
299 #else
300 (
301 	mach_port_t server,
302 	caddr_t request,
303 	mach_msg_type_number_t requestCnt,
304 	uint64_t startid,
305 	uint64_t count,
306 	uint32_t duration,
307 	int direction,
308 	caddr_t *reply,
309 	mach_msg_type_number_t *replyCnt,
310 	uint64_t *lastid,
311 	int *status
312 );
313 #endif	/* defined(LINTLIBRARY) */
314 
315 __END_DECLS
316 
317 /********************** Caution **************************/
318 /* The following data types should be used to calculate  */
319 /* maximum message sizes only. The actual message may be */
320 /* smaller, and the position of the arguments within the */
321 /* message layout may vary from what is presented here.  */
322 /* For example, if any of the arguments are variable-    */
323 /* sized, and less than the maximum is sent, the data    */
324 /* will be packed tight in the actual message to reduce  */
325 /* the presence of holes.                                */
326 /********************** Caution **************************/
327 
328 /* typedefs for all requests */
329 
330 #ifndef __Request__asl_ipc_subsystem__defined
331 #define __Request__asl_ipc_subsystem__defined
332 
333 #ifdef  __MigPackStructs
334 #pragma pack(4)
335 #endif
336 	typedef struct {
337 		mach_msg_header_t Head;
338 		/* start of the kernel processed data */
339 		mach_msg_body_t msgh_body;
340 		mach_msg_ool_descriptor_t request;
341 		/* end of the kernel processed data */
342 		NDR_record_t NDR;
343 		mach_msg_type_number_t requestCnt;
344 		uint64_t startid;
345 		int count;
346 		int flags;
347 	} __Request___asl_server_query_t;
348 #ifdef  __MigPackStructs
349 #pragma pack()
350 #endif
351 
352 #ifdef  __MigPackStructs
353 #pragma pack(4)
354 #endif
355 	typedef struct {
356 		mach_msg_header_t Head;
357 		/* start of the kernel processed data */
358 		mach_msg_body_t msgh_body;
359 		mach_msg_ool_descriptor_t request;
360 		/* end of the kernel processed data */
361 		NDR_record_t NDR;
362 		mach_msg_type_number_t requestCnt;
363 		uint64_t startid;
364 		int count;
365 		int flags;
366 	} __Request___asl_server_query_timeout_t;
367 #ifdef  __MigPackStructs
368 #pragma pack()
369 #endif
370 
371 #ifdef  __MigPackStructs
372 #pragma pack(4)
373 #endif
374 	typedef struct {
375 		mach_msg_header_t Head;
376 		/* start of the kernel processed data */
377 		mach_msg_body_t msgh_body;
378 		mach_msg_ool_descriptor_t request;
379 		/* end of the kernel processed data */
380 		NDR_record_t NDR;
381 		mach_msg_type_number_t requestCnt;
382 	} __Request___asl_server_prune_t;
383 #ifdef  __MigPackStructs
384 #pragma pack()
385 #endif
386 
387 #ifdef  __MigPackStructs
388 #pragma pack(4)
389 #endif
390 	typedef struct {
391 		mach_msg_header_t Head;
392 		/* start of the kernel processed data */
393 		mach_msg_body_t msgh_body;
394 		mach_msg_ool_descriptor_t message;
395 		/* end of the kernel processed data */
396 		NDR_record_t NDR;
397 		mach_msg_type_number_t messageCnt;
398 	} __Request___asl_server_create_aux_link_t;
399 #ifdef  __MigPackStructs
400 #pragma pack()
401 #endif
402 
403 #ifdef  __MigPackStructs
404 #pragma pack(4)
405 #endif
406 	typedef struct {
407 		mach_msg_header_t Head;
408 		/* start of the kernel processed data */
409 		mach_msg_body_t msgh_body;
410 		mach_msg_ool_descriptor_t message;
411 		/* end of the kernel processed data */
412 		NDR_record_t NDR;
413 		mach_msg_type_number_t messageCnt;
414 	} __Request___asl_server_message_t;
415 #ifdef  __MigPackStructs
416 #pragma pack()
417 #endif
418 
419 #ifdef  __MigPackStructs
420 #pragma pack(4)
421 #endif
422 	typedef struct {
423 		mach_msg_header_t Head;
424 		/* start of the kernel processed data */
425 		mach_msg_body_t msgh_body;
426 		/* end of the kernel processed data */
427 		NDR_record_t NDR;
428 		int port;
429 	} __Request___asl_server_register_direct_watch_t;
430 #ifdef  __MigPackStructs
431 #pragma pack()
432 #endif
433 
434 #ifdef  __MigPackStructs
435 #pragma pack(4)
436 #endif
437 	typedef struct {
438 		mach_msg_header_t Head;
439 		/* start of the kernel processed data */
440 		mach_msg_body_t msgh_body;
441 		/* end of the kernel processed data */
442 		NDR_record_t NDR;
443 		int port;
444 	} __Request___asl_server_cancel_direct_watch_t;
445 #ifdef  __MigPackStructs
446 #pragma pack()
447 #endif
448 
449 #ifdef  __MigPackStructs
450 #pragma pack(4)
451 #endif
452 	typedef struct {
453 		mach_msg_header_t Head;
454 		/* start of the kernel processed data */
455 		mach_msg_body_t msgh_body;
456 		mach_msg_ool_descriptor_t request;
457 		/* end of the kernel processed data */
458 		NDR_record_t NDR;
459 		mach_msg_type_number_t requestCnt;
460 		uint64_t startid;
461 		int count;
462 		int flags;
463 	} __Request___asl_server_query_2_t;
464 #ifdef  __MigPackStructs
465 #pragma pack()
466 #endif
467 
468 #ifdef  __MigPackStructs
469 #pragma pack(4)
470 #endif
471 	typedef struct {
472 		mach_msg_header_t Head;
473 		/* start of the kernel processed data */
474 		mach_msg_body_t msgh_body;
475 		mach_msg_ool_descriptor_t request;
476 		/* end of the kernel processed data */
477 		NDR_record_t NDR;
478 		mach_msg_type_number_t requestCnt;
479 		uint64_t startid;
480 		uint64_t count;
481 		uint32_t duration;
482 		int direction;
483 	} __Request___asl_server_match_t;
484 #ifdef  __MigPackStructs
485 #pragma pack()
486 #endif
487 #endif /* !__Request__asl_ipc_subsystem__defined */
488 
489 /* union of all requests */
490 
491 #ifndef __RequestUnion__asl_ipc_subsystem__defined
492 #define __RequestUnion__asl_ipc_subsystem__defined
493 union __RequestUnion__asl_ipc_subsystem {
494 	__Request___asl_server_query_t Request__asl_server_query;
495 	__Request___asl_server_query_timeout_t Request__asl_server_query_timeout;
496 	__Request___asl_server_prune_t Request__asl_server_prune;
497 	__Request___asl_server_create_aux_link_t Request__asl_server_create_aux_link;
498 	__Request___asl_server_message_t Request__asl_server_message;
499 	__Request___asl_server_register_direct_watch_t Request__asl_server_register_direct_watch;
500 	__Request___asl_server_cancel_direct_watch_t Request__asl_server_cancel_direct_watch;
501 	__Request___asl_server_query_2_t Request__asl_server_query_2;
502 	__Request___asl_server_match_t Request__asl_server_match;
503 };
504 #endif /* !__RequestUnion__asl_ipc_subsystem__defined */
505 /* typedefs for all replies */
506 
507 #ifndef __Reply__asl_ipc_subsystem__defined
508 #define __Reply__asl_ipc_subsystem__defined
509 
510 #ifdef  __MigPackStructs
511 #pragma pack(4)
512 #endif
513 	typedef struct {
514 		mach_msg_header_t Head;
515 		/* start of the kernel processed data */
516 		mach_msg_body_t msgh_body;
517 		mach_msg_ool_descriptor_t reply;
518 		/* end of the kernel processed data */
519 		NDR_record_t NDR;
520 		mach_msg_type_number_t replyCnt;
521 		uint64_t lastid;
522 		int status;
523 	} __Reply___asl_server_query_t;
524 #ifdef  __MigPackStructs
525 #pragma pack()
526 #endif
527 
528 #ifdef  __MigPackStructs
529 #pragma pack(4)
530 #endif
531 	typedef struct {
532 		mach_msg_header_t Head;
533 		/* start of the kernel processed data */
534 		mach_msg_body_t msgh_body;
535 		mach_msg_ool_descriptor_t reply;
536 		/* end of the kernel processed data */
537 		NDR_record_t NDR;
538 		mach_msg_type_number_t replyCnt;
539 		uint64_t lastid;
540 		int status;
541 	} __Reply___asl_server_query_timeout_t;
542 #ifdef  __MigPackStructs
543 #pragma pack()
544 #endif
545 
546 #ifdef  __MigPackStructs
547 #pragma pack(4)
548 #endif
549 	typedef struct {
550 		mach_msg_header_t Head;
551 		NDR_record_t NDR;
552 		kern_return_t RetCode;
553 		int status;
554 	} __Reply___asl_server_prune_t;
555 #ifdef  __MigPackStructs
556 #pragma pack()
557 #endif
558 
559 #ifdef  __MigPackStructs
560 #pragma pack(4)
561 #endif
562 	typedef struct {
563 		mach_msg_header_t Head;
564 		/* start of the kernel processed data */
565 		mach_msg_body_t msgh_body;
566 		mach_msg_port_descriptor_t fileport;
567 		mach_msg_ool_descriptor_t url;
568 		/* end of the kernel processed data */
569 		NDR_record_t NDR;
570 		mach_msg_type_number_t urlCnt;
571 		int status;
572 	} __Reply___asl_server_create_aux_link_t;
573 #ifdef  __MigPackStructs
574 #pragma pack()
575 #endif
576 
577 #ifdef  __MigPackStructs
578 #pragma pack(4)
579 #endif
580 	typedef struct {
581 		mach_msg_header_t Head;
582 		NDR_record_t NDR;
583 		kern_return_t RetCode;
584 	} __Reply___asl_server_message_t;
585 #ifdef  __MigPackStructs
586 #pragma pack()
587 #endif
588 
589 #ifdef  __MigPackStructs
590 #pragma pack(4)
591 #endif
592 	typedef struct {
593 		mach_msg_header_t Head;
594 		NDR_record_t NDR;
595 		kern_return_t RetCode;
596 	} __Reply___asl_server_register_direct_watch_t;
597 #ifdef  __MigPackStructs
598 #pragma pack()
599 #endif
600 
601 #ifdef  __MigPackStructs
602 #pragma pack(4)
603 #endif
604 	typedef struct {
605 		mach_msg_header_t Head;
606 		NDR_record_t NDR;
607 		kern_return_t RetCode;
608 	} __Reply___asl_server_cancel_direct_watch_t;
609 #ifdef  __MigPackStructs
610 #pragma pack()
611 #endif
612 
613 #ifdef  __MigPackStructs
614 #pragma pack(4)
615 #endif
616 	typedef struct {
617 		mach_msg_header_t Head;
618 		/* start of the kernel processed data */
619 		mach_msg_body_t msgh_body;
620 		mach_msg_ool_descriptor_t reply;
621 		/* end of the kernel processed data */
622 		NDR_record_t NDR;
623 		mach_msg_type_number_t replyCnt;
624 		uint64_t lastid;
625 		int status;
626 	} __Reply___asl_server_query_2_t;
627 #ifdef  __MigPackStructs
628 #pragma pack()
629 #endif
630 
631 #ifdef  __MigPackStructs
632 #pragma pack(4)
633 #endif
634 	typedef struct {
635 		mach_msg_header_t Head;
636 		/* start of the kernel processed data */
637 		mach_msg_body_t msgh_body;
638 		mach_msg_ool_descriptor_t reply;
639 		/* end of the kernel processed data */
640 		NDR_record_t NDR;
641 		mach_msg_type_number_t replyCnt;
642 		uint64_t lastid;
643 		int status;
644 	} __Reply___asl_server_match_t;
645 #ifdef  __MigPackStructs
646 #pragma pack()
647 #endif
648 #endif /* !__Reply__asl_ipc_subsystem__defined */
649 
650 /* union of all replies */
651 
652 #ifndef __ReplyUnion__asl_ipc_subsystem__defined
653 #define __ReplyUnion__asl_ipc_subsystem__defined
654 union __ReplyUnion__asl_ipc_subsystem {
655 	__Reply___asl_server_query_t Reply__asl_server_query;
656 	__Reply___asl_server_query_timeout_t Reply__asl_server_query_timeout;
657 	__Reply___asl_server_prune_t Reply__asl_server_prune;
658 	__Reply___asl_server_create_aux_link_t Reply__asl_server_create_aux_link;
659 	__Reply___asl_server_message_t Reply__asl_server_message;
660 	__Reply___asl_server_register_direct_watch_t Reply__asl_server_register_direct_watch;
661 	__Reply___asl_server_cancel_direct_watch_t Reply__asl_server_cancel_direct_watch;
662 	__Reply___asl_server_query_2_t Reply__asl_server_query_2;
663 	__Reply___asl_server_match_t Reply__asl_server_match;
664 };
665 #endif /* !__RequestUnion__asl_ipc_subsystem__defined */
666 
667 #ifndef subsystem_to_name_map_asl_ipc
668 #define subsystem_to_name_map_asl_ipc \
669     { "_asl_server_query", 114 },\
670     { "_asl_server_query_timeout", 115 },\
671     { "_asl_server_prune", 116 },\
672     { "_asl_server_create_aux_link", 117 },\
673     { "_asl_server_message", 118 },\
674     { "_asl_server_register_direct_watch", 119 },\
675     { "_asl_server_cancel_direct_watch", 120 },\
676     { "_asl_server_query_2", 121 },\
677     { "_asl_server_match", 122 }
678 #endif
679 
680 #ifdef __AfterMigUserHeader
681 __AfterMigUserHeader
682 #endif /* __AfterMigUserHeader */
683 
684 #endif	 /* _asl_ipc_user_ */
685