1#ifndef _mach_host_server_
2#define _mach_host_server_
3
4/* Module mach_host */
5
6#include <string.h>
7#include <mach/ndr.h>
8#include <mach/boolean.h>
9#include <mach/kern_return.h>
10#include <mach/notify.h>
11#include <mach/mach_types.h>
12#include <mach/message.h>
13#include <mach/mig_errors.h>
14#include <mach/port.h>
15
16/* BEGIN MIG_STRNCPY_ZEROFILL CODE */
17
18#if defined(__has_include)
19#if __has_include(<mach/mig_strncpy_zerofill_support.h>)
20#ifndef USING_MIG_STRNCPY_ZEROFILL
21#define USING_MIG_STRNCPY_ZEROFILL
22#endif
23#ifndef __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__
24#define __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__
25#ifdef __cplusplus
26extern "C" {
27#endif
28 extern int mig_strncpy_zerofill(char *dest, const char *src, int len) __attribute__((weak_import));
29#ifdef __cplusplus
30}
31#endif
32#endif /* __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__ */
33#endif /* __has_include(<mach/mig_strncpy_zerofill_support.h>) */
34#endif /* __has_include */
35
36/* END MIG_STRNCPY_ZEROFILL CODE */
37
38
39#ifdef AUTOTEST
40#ifndef FUNCTION_PTR_T
41#define FUNCTION_PTR_T
42typedef void (*function_ptr_t)(mach_port_t, char *, mach_msg_type_number_t);
43typedef struct {
44 char *name;
45 function_ptr_t function;
46} function_table_entry;
47typedef function_table_entry *function_table_t;
48#endif /* FUNCTION_PTR_T */
49#endif /* AUTOTEST */
50
51#ifndef mach_host_MSG_COUNT
52#define mach_host_MSG_COUNT 35
53#endif /* mach_host_MSG_COUNT */
54
55#include <mach/std_types.h>
56#include <mach/mig.h>
57#include <ipc/ipc_voucher.h>
58#include <kern/ipc_kobject.h>
59#include <kern/ipc_tt.h>
60#include <kern/ipc_host.h>
61#include <kern/ipc_sync.h>
62#include <kern/ledger.h>
63#include <kern/processor.h>
64#include <kern/sync_lock.h>
65#include <kern/sync_sema.h>
66#include <vm/memory_object.h>
67#include <vm/vm_map.h>
68#include <kern/ipc_mig.h>
69#include <mach/mig.h>
70#include <mach/mach_types.h>
71#include <mach/mach_types.h>
72#include <mach_debug/mach_debug_types.h>
73
74#ifdef __BeforeMigServerHeader
75__BeforeMigServerHeader
76#endif /* __BeforeMigServerHeader */
77
78
79/* Routine host_info */
80#ifdef mig_external
81mig_external
82#else
83extern
84#endif /* mig_external */
85kern_return_t host_info
86(
87 host_t host,
88 host_flavor_t flavor,
89 host_info_t host_info_out,
90 mach_msg_type_number_t *host_info_outCnt
91);
92
93/* Routine host_kernel_version */
94#ifdef mig_external
95mig_external
96#else
97extern
98#endif /* mig_external */
99kern_return_t host_kernel_version
100(
101 host_t host,
102 kernel_version_t kernel_version
103);
104
105/* Routine host_page_size */
106#ifdef mig_external
107mig_external
108#else
109extern
110#endif /* mig_external */
111kern_return_t host_page_size
112(
113 host_t host,
114 vm_size_t *out_page_size
115);
116
117/* Routine mach_memory_object_memory_entry */
118#ifdef mig_external
119mig_external
120#else
121extern
122#endif /* mig_external */
123kern_return_t mach_memory_object_memory_entry
124(
125 host_t host,
126 boolean_t internal,
127 vm_size_t size,
128 vm_prot_t permission,
129 memory_object_t pager,
130 mach_port_t *entry_handle
131);
132
133/* Routine host_processor_info */
134#ifdef mig_external
135mig_external
136#else
137extern
138#endif /* mig_external */
139kern_return_t host_processor_info
140(
141 host_t host,
142 processor_flavor_t flavor,
143 natural_t *out_processor_count,
144 processor_info_array_t *out_processor_info,
145 mach_msg_type_number_t *out_processor_infoCnt
146);
147
148/* Routine host_get_io_master */
149#ifdef mig_external
150mig_external
151#else
152extern
153#endif /* mig_external */
154kern_return_t host_get_io_master
155(
156 host_t host,
157 io_master_t *io_master
158);
159
160/* Routine host_get_clock_service */
161#ifdef mig_external
162mig_external
163#else
164extern
165#endif /* mig_external */
166kern_return_t host_get_clock_service
167(
168 host_t host,
169 clock_id_t clock_id,
170 clock_serv_t *clock_serv
171);
172
173/* Routine kmod_get_info */
174#ifdef mig_external
175mig_external
176#else
177extern
178#endif /* mig_external */
179kern_return_t kmod_get_info
180(
181 host_t host,
182 kmod_args_t *modules,
183 mach_msg_type_number_t *modulesCnt
184);
185
186/* Routine host_virtual_physical_table_info */
187#ifdef mig_external
188mig_external
189#else
190extern
191#endif /* mig_external */
192kern_return_t host_virtual_physical_table_info
193(
194 host_t host,
195 hash_info_bucket_array_t *info,
196 mach_msg_type_number_t *infoCnt
197);
198
199/* Routine processor_set_default */
200#ifdef mig_external
201mig_external
202#else
203extern
204#endif /* mig_external */
205kern_return_t processor_set_default
206(
207 host_t host,
208 processor_set_name_t *default_set
209);
210
211/* Routine processor_set_create */
212#ifdef mig_external
213mig_external
214#else
215extern
216#endif /* mig_external */
217kern_return_t processor_set_create
218(
219 host_t host,
220 processor_set_t *new_set,
221 processor_set_name_t *new_name
222);
223
224/* Routine mach_memory_object_memory_entry_64 */
225#ifdef mig_external
226mig_external
227#else
228extern
229#endif /* mig_external */
230kern_return_t mach_memory_object_memory_entry_64
231(
232 host_t host,
233 boolean_t internal,
234 memory_object_size_t size,
235 vm_prot_t permission,
236 memory_object_t pager,
237 mach_port_t *entry_handle
238);
239
240/* Routine host_statistics_from_user */
241#ifdef mig_external
242mig_external
243#else
244extern
245#endif /* mig_external */
246kern_return_t host_statistics_from_user
247(
248 host_t host_priv,
249 host_flavor_t flavor,
250 host_info_t host_info_out,
251 mach_msg_type_number_t *host_info_outCnt
252);
253
254/* Routine host_request_notification */
255#ifdef mig_external
256mig_external
257#else
258extern
259#endif /* mig_external */
260kern_return_t host_request_notification
261(
262 host_t host,
263 host_flavor_t notify_type,
264 mach_port_t notify_port
265);
266
267/* Routine host_lockgroup_info */
268#ifdef mig_external
269mig_external
270#else
271extern
272#endif /* mig_external */
273kern_return_t host_lockgroup_info
274(
275 host_t host,
276 lockgroup_info_array_t *lockgroup_info,
277 mach_msg_type_number_t *lockgroup_infoCnt
278);
279
280/* Routine host_statistics64_from_user */
281#ifdef mig_external
282mig_external
283#else
284extern
285#endif /* mig_external */
286kern_return_t host_statistics64_from_user
287(
288 host_t host_priv,
289 host_flavor_t flavor,
290 host_info64_t host_info64_out,
291 mach_msg_type_number_t *host_info64_outCnt
292);
293
294/* Routine mach_zone_info */
295#ifdef mig_external
296mig_external
297#else
298extern
299#endif /* mig_external */
300kern_return_t mach_zone_info
301(
302 host_priv_t host,
303 mach_zone_name_array_t *names,
304 mach_msg_type_number_t *namesCnt,
305 mach_zone_info_array_t *info,
306 mach_msg_type_number_t *infoCnt
307);
308
309/* Routine mach_zone_force_gc */
310#ifdef mig_external
311mig_external
312#else
313extern
314#endif /* mig_external */
315kern_return_t mach_zone_force_gc
316(
317 host_t host
318);
319
320/* Routine host_create_mach_voucher */
321#ifdef mig_external
322mig_external
323#else
324extern
325#endif /* mig_external */
326kern_return_t host_create_mach_voucher
327(
328 host_t host,
329 mach_voucher_attr_raw_recipe_array_t recipes,
330 mach_msg_type_number_t recipesCnt,
331 ipc_voucher_t *voucher
332);
333
334/* Routine host_register_mach_voucher_attr_manager */
335#ifdef mig_external
336mig_external
337#else
338extern
339#endif /* mig_external */
340kern_return_t host_register_mach_voucher_attr_manager
341(
342 host_t host,
343 mach_voucher_attr_manager_t attr_manager,
344 mach_voucher_attr_value_handle_t default_value,
345 mach_voucher_attr_key_t *new_key,
346 ipc_voucher_attr_control_t *new_attr_control
347);
348
349/* Routine host_register_well_known_mach_voucher_attr_manager */
350#ifdef mig_external
351mig_external
352#else
353extern
354#endif /* mig_external */
355kern_return_t host_register_well_known_mach_voucher_attr_manager
356(
357 host_t host,
358 mach_voucher_attr_manager_t attr_manager,
359 mach_voucher_attr_value_handle_t default_value,
360 mach_voucher_attr_key_t key,
361 ipc_voucher_attr_control_t *new_attr_control
362);
363
364/* Routine host_set_atm_diagnostic_flag */
365#ifdef mig_external
366mig_external
367#else
368extern
369#endif /* mig_external */
370kern_return_t host_set_atm_diagnostic_flag
371(
372 host_priv_t host_priv,
373 uint32_t diagnostic_flag
374);
375
376/* Routine mach_memory_info */
377#ifdef mig_external
378mig_external
379#else
380extern
381#endif /* mig_external */
382kern_return_t mach_memory_info
383(
384 host_priv_t host,
385 mach_zone_name_array_t *names,
386 mach_msg_type_number_t *namesCnt,
387 mach_zone_info_array_t *info,
388 mach_msg_type_number_t *infoCnt,
389 mach_memory_info_array_t *memory_info,
390 mach_msg_type_number_t *memory_infoCnt
391);
392
393/* Routine host_set_multiuser_config_flags */
394#ifdef mig_external
395mig_external
396#else
397extern
398#endif /* mig_external */
399kern_return_t host_set_multiuser_config_flags
400(
401 host_priv_t host_priv,
402 uint32_t multiuser_flags
403);
404
405/* Routine mach_zone_info_for_zone */
406#ifdef mig_external
407mig_external
408#else
409extern
410#endif /* mig_external */
411kern_return_t mach_zone_info_for_zone
412(
413 host_priv_t host,
414 mach_zone_name_t name,
415 mach_zone_info_t *info
416);
417
418/* Routine mach_zone_info_for_largest_zone */
419#ifdef mig_external
420mig_external
421#else
422extern
423#endif /* mig_external */
424kern_return_t mach_zone_info_for_largest_zone
425(
426 host_priv_t host,
427 mach_zone_name_t *name,
428 mach_zone_info_t *info
429);
430
431/* Routine mach_zone_get_zlog_zones */
432#ifdef mig_external
433mig_external
434#else
435extern
436#endif /* mig_external */
437kern_return_t mach_zone_get_zlog_zones
438(
439 host_priv_t host,
440 mach_zone_name_array_t *names,
441 mach_msg_type_number_t *namesCnt
442);
443
444/* Routine mach_zone_get_btlog_records */
445#ifdef mig_external
446mig_external
447#else
448extern
449#endif /* mig_external */
450kern_return_t mach_zone_get_btlog_records
451(
452 host_priv_t host,
453 mach_zone_name_t name,
454 zone_btrecord_array_t *recs,
455 mach_msg_type_number_t *recsCnt
456);
457
458#ifdef mig_external
459mig_external
460#else
461extern
462#endif /* mig_external */
463boolean_t mach_host_server(
464 mach_msg_header_t *InHeadP,
465 mach_msg_header_t *OutHeadP);
466
467#ifdef mig_external
468mig_external
469#else
470extern
471#endif /* mig_external */
472mig_routine_t mach_host_server_routine(
473 mach_msg_header_t *InHeadP);
474
475
476/* Description of this subsystem, for use in direct RPC */
477extern const struct mach_host_subsystem {
478 mig_server_routine_t server; /* Server routine */
479 mach_msg_id_t start; /* Min routine number */
480 mach_msg_id_t end; /* Max routine number + 1 */
481 unsigned int maxsize; /* Max msg size */
482 vm_address_t reserved; /* Reserved */
483 struct routine_descriptor /*Array of routine descriptors */
484 routine[35];
485} mach_host_subsystem;
486
487/* typedefs for all requests */
488
489#ifndef __Request__mach_host_subsystem__defined
490#define __Request__mach_host_subsystem__defined
491
492#ifdef __MigPackStructs
493#pragma pack(4)
494#endif
495 typedef struct {
496 mach_msg_header_t Head;
497 NDR_record_t NDR;
498 host_flavor_t flavor;
499 mach_msg_type_number_t host_info_outCnt;
500 } __Request__host_info_t __attribute__((unused));
501#ifdef __MigPackStructs
502#pragma pack()
503#endif
504
505#ifdef __MigPackStructs
506#pragma pack(4)
507#endif
508 typedef struct {
509 mach_msg_header_t Head;
510 } __Request__host_kernel_version_t __attribute__((unused));
511#ifdef __MigPackStructs
512#pragma pack()
513#endif
514
515#ifdef __MigPackStructs
516#pragma pack(4)
517#endif
518 typedef struct {
519 mach_msg_header_t Head;
520 } __Request__host_page_size_t __attribute__((unused));
521#ifdef __MigPackStructs
522#pragma pack()
523#endif
524
525#ifdef __MigPackStructs
526#pragma pack(4)
527#endif
528 typedef struct {
529 mach_msg_header_t Head;
530 /* start of the kernel processed data */
531 mach_msg_body_t msgh_body;
532 mach_msg_port_descriptor_t pager;
533 /* end of the kernel processed data */
534 NDR_record_t NDR;
535 boolean_t internal;
536 vm_size_t size;
537 vm_prot_t permission;
538 } __Request__mach_memory_object_memory_entry_t __attribute__((unused));
539#ifdef __MigPackStructs
540#pragma pack()
541#endif
542
543#ifdef __MigPackStructs
544#pragma pack(4)
545#endif
546 typedef struct {
547 mach_msg_header_t Head;
548 NDR_record_t NDR;
549 processor_flavor_t flavor;
550 } __Request__host_processor_info_t __attribute__((unused));
551#ifdef __MigPackStructs
552#pragma pack()
553#endif
554
555#ifdef __MigPackStructs
556#pragma pack(4)
557#endif
558 typedef struct {
559 mach_msg_header_t Head;
560 } __Request__host_get_io_master_t __attribute__((unused));
561#ifdef __MigPackStructs
562#pragma pack()
563#endif
564
565#ifdef __MigPackStructs
566#pragma pack(4)
567#endif
568 typedef struct {
569 mach_msg_header_t Head;
570 NDR_record_t NDR;
571 clock_id_t clock_id;
572 } __Request__host_get_clock_service_t __attribute__((unused));
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 } __Request__kmod_get_info_t __attribute__((unused));
583#ifdef __MigPackStructs
584#pragma pack()
585#endif
586
587#ifdef __MigPackStructs
588#pragma pack(4)
589#endif
590 typedef struct {
591 mach_msg_header_t Head;
592 } __Request__host_virtual_physical_table_info_t __attribute__((unused));
593#ifdef __MigPackStructs
594#pragma pack()
595#endif
596
597#ifdef __MigPackStructs
598#pragma pack(4)
599#endif
600 typedef struct {
601 mach_msg_header_t Head;
602 } __Request__processor_set_default_t __attribute__((unused));
603#ifdef __MigPackStructs
604#pragma pack()
605#endif
606
607#ifdef __MigPackStructs
608#pragma pack(4)
609#endif
610 typedef struct {
611 mach_msg_header_t Head;
612 } __Request__processor_set_create_t __attribute__((unused));
613#ifdef __MigPackStructs
614#pragma pack()
615#endif
616
617#ifdef __MigPackStructs
618#pragma pack(4)
619#endif
620 typedef struct {
621 mach_msg_header_t Head;
622 /* start of the kernel processed data */
623 mach_msg_body_t msgh_body;
624 mach_msg_port_descriptor_t pager;
625 /* end of the kernel processed data */
626 NDR_record_t NDR;
627 boolean_t internal;
628 memory_object_size_t size;
629 vm_prot_t permission;
630 } __Request__mach_memory_object_memory_entry_64_t __attribute__((unused));
631#ifdef __MigPackStructs
632#pragma pack()
633#endif
634
635#ifdef __MigPackStructs
636#pragma pack(4)
637#endif
638 typedef struct {
639 mach_msg_header_t Head;
640 NDR_record_t NDR;
641 host_flavor_t flavor;
642 mach_msg_type_number_t host_info_outCnt;
643 } __Request__host_statistics_from_user_t __attribute__((unused));
644#ifdef __MigPackStructs
645#pragma pack()
646#endif
647
648#ifdef __MigPackStructs
649#pragma pack(4)
650#endif
651 typedef struct {
652 mach_msg_header_t Head;
653 /* start of the kernel processed data */
654 mach_msg_body_t msgh_body;
655 mach_msg_port_descriptor_t notify_port;
656 /* end of the kernel processed data */
657 NDR_record_t NDR;
658 host_flavor_t notify_type;
659 } __Request__host_request_notification_t __attribute__((unused));
660#ifdef __MigPackStructs
661#pragma pack()
662#endif
663
664#ifdef __MigPackStructs
665#pragma pack(4)
666#endif
667 typedef struct {
668 mach_msg_header_t Head;
669 } __Request__host_lockgroup_info_t __attribute__((unused));
670#ifdef __MigPackStructs
671#pragma pack()
672#endif
673
674#ifdef __MigPackStructs
675#pragma pack(4)
676#endif
677 typedef struct {
678 mach_msg_header_t Head;
679 NDR_record_t NDR;
680 host_flavor_t flavor;
681 mach_msg_type_number_t host_info64_outCnt;
682 } __Request__host_statistics64_from_user_t __attribute__((unused));
683#ifdef __MigPackStructs
684#pragma pack()
685#endif
686
687#ifdef __MigPackStructs
688#pragma pack(4)
689#endif
690 typedef struct {
691 mach_msg_header_t Head;
692 } __Request__mach_zone_info_t __attribute__((unused));
693#ifdef __MigPackStructs
694#pragma pack()
695#endif
696
697#ifdef __MigPackStructs
698#pragma pack(4)
699#endif
700 typedef struct {
701 mach_msg_header_t Head;
702 } __Request__mach_zone_force_gc_t __attribute__((unused));
703#ifdef __MigPackStructs
704#pragma pack()
705#endif
706
707#ifdef __MigPackStructs
708#pragma pack(4)
709#endif
710 typedef struct {
711 mach_msg_header_t Head;
712 NDR_record_t NDR;
713 mach_msg_type_number_t recipesCnt;
714 uint8_t recipes[5120];
715 } __Request__host_create_mach_voucher_t __attribute__((unused));
716#ifdef __MigPackStructs
717#pragma pack()
718#endif
719
720#ifdef __MigPackStructs
721#pragma pack(4)
722#endif
723 typedef struct {
724 mach_msg_header_t Head;
725 /* start of the kernel processed data */
726 mach_msg_body_t msgh_body;
727 mach_msg_port_descriptor_t attr_manager;
728 /* end of the kernel processed data */
729 NDR_record_t NDR;
730 mach_voucher_attr_value_handle_t default_value;
731 } __Request__host_register_mach_voucher_attr_manager_t __attribute__((unused));
732#ifdef __MigPackStructs
733#pragma pack()
734#endif
735
736#ifdef __MigPackStructs
737#pragma pack(4)
738#endif
739 typedef struct {
740 mach_msg_header_t Head;
741 /* start of the kernel processed data */
742 mach_msg_body_t msgh_body;
743 mach_msg_port_descriptor_t attr_manager;
744 /* end of the kernel processed data */
745 NDR_record_t NDR;
746 mach_voucher_attr_value_handle_t default_value;
747 mach_voucher_attr_key_t key;
748 } __Request__host_register_well_known_mach_voucher_attr_manager_t __attribute__((unused));
749#ifdef __MigPackStructs
750#pragma pack()
751#endif
752
753#ifdef __MigPackStructs
754#pragma pack(4)
755#endif
756 typedef struct {
757 mach_msg_header_t Head;
758 NDR_record_t NDR;
759 uint32_t diagnostic_flag;
760 } __Request__host_set_atm_diagnostic_flag_t __attribute__((unused));
761#ifdef __MigPackStructs
762#pragma pack()
763#endif
764
765#ifdef __MigPackStructs
766#pragma pack(4)
767#endif
768 typedef struct {
769 mach_msg_header_t Head;
770 } __Request__mach_memory_info_t __attribute__((unused));
771#ifdef __MigPackStructs
772#pragma pack()
773#endif
774
775#ifdef __MigPackStructs
776#pragma pack(4)
777#endif
778 typedef struct {
779 mach_msg_header_t Head;
780 NDR_record_t NDR;
781 uint32_t multiuser_flags;
782 } __Request__host_set_multiuser_config_flags_t __attribute__((unused));
783#ifdef __MigPackStructs
784#pragma pack()
785#endif
786
787#ifdef __MigPackStructs
788#pragma pack(4)
789#endif
790 typedef struct {
791 mach_msg_header_t Head;
792 NDR_record_t NDR;
793 mach_zone_name_t name;
794 } __Request__mach_zone_info_for_zone_t __attribute__((unused));
795#ifdef __MigPackStructs
796#pragma pack()
797#endif
798
799#ifdef __MigPackStructs
800#pragma pack(4)
801#endif
802 typedef struct {
803 mach_msg_header_t Head;
804 } __Request__mach_zone_info_for_largest_zone_t __attribute__((unused));
805#ifdef __MigPackStructs
806#pragma pack()
807#endif
808
809#ifdef __MigPackStructs
810#pragma pack(4)
811#endif
812 typedef struct {
813 mach_msg_header_t Head;
814 } __Request__mach_zone_get_zlog_zones_t __attribute__((unused));
815#ifdef __MigPackStructs
816#pragma pack()
817#endif
818
819#ifdef __MigPackStructs
820#pragma pack(4)
821#endif
822 typedef struct {
823 mach_msg_header_t Head;
824 NDR_record_t NDR;
825 mach_zone_name_t name;
826 } __Request__mach_zone_get_btlog_records_t __attribute__((unused));
827#ifdef __MigPackStructs
828#pragma pack()
829#endif
830#endif /* !__Request__mach_host_subsystem__defined */
831
832
833/* union of all requests */
834
835#ifndef __RequestUnion__mach_host_subsystem__defined
836#define __RequestUnion__mach_host_subsystem__defined
837union __RequestUnion__mach_host_subsystem {
838 __Request__host_info_t Request_host_info;
839 __Request__host_kernel_version_t Request_host_kernel_version;
840 __Request__host_page_size_t Request_host_page_size;
841 __Request__mach_memory_object_memory_entry_t Request_mach_memory_object_memory_entry;
842 __Request__host_processor_info_t Request_host_processor_info;
843 __Request__host_get_io_master_t Request_host_get_io_master;
844 __Request__host_get_clock_service_t Request_host_get_clock_service;
845 __Request__kmod_get_info_t Request_kmod_get_info;
846 __Request__host_virtual_physical_table_info_t Request_host_virtual_physical_table_info;
847 __Request__processor_set_default_t Request_processor_set_default;
848 __Request__processor_set_create_t Request_processor_set_create;
849 __Request__mach_memory_object_memory_entry_64_t Request_mach_memory_object_memory_entry_64;
850 __Request__host_statistics_from_user_t Request_host_statistics_from_user;
851 __Request__host_request_notification_t Request_host_request_notification;
852 __Request__host_lockgroup_info_t Request_host_lockgroup_info;
853 __Request__host_statistics64_from_user_t Request_host_statistics64_from_user;
854 __Request__mach_zone_info_t Request_mach_zone_info;
855 __Request__mach_zone_force_gc_t Request_mach_zone_force_gc;
856 __Request__host_create_mach_voucher_t Request_host_create_mach_voucher;
857 __Request__host_register_mach_voucher_attr_manager_t Request_host_register_mach_voucher_attr_manager;
858 __Request__host_register_well_known_mach_voucher_attr_manager_t Request_host_register_well_known_mach_voucher_attr_manager;
859 __Request__host_set_atm_diagnostic_flag_t Request_host_set_atm_diagnostic_flag;
860 __Request__mach_memory_info_t Request_mach_memory_info;
861 __Request__host_set_multiuser_config_flags_t Request_host_set_multiuser_config_flags;
862 __Request__mach_zone_info_for_zone_t Request_mach_zone_info_for_zone;
863 __Request__mach_zone_info_for_largest_zone_t Request_mach_zone_info_for_largest_zone;
864 __Request__mach_zone_get_zlog_zones_t Request_mach_zone_get_zlog_zones;
865 __Request__mach_zone_get_btlog_records_t Request_mach_zone_get_btlog_records;
866};
867#endif /* __RequestUnion__mach_host_subsystem__defined */
868/* typedefs for all replies */
869
870#ifndef __Reply__mach_host_subsystem__defined
871#define __Reply__mach_host_subsystem__defined
872
873#ifdef __MigPackStructs
874#pragma pack(4)
875#endif
876 typedef struct {
877 mach_msg_header_t Head;
878 NDR_record_t NDR;
879 kern_return_t RetCode;
880 mach_msg_type_number_t host_info_outCnt;
881 integer_t host_info_out[68];
882 } __Reply__host_info_t __attribute__((unused));
883#ifdef __MigPackStructs
884#pragma pack()
885#endif
886
887#ifdef __MigPackStructs
888#pragma pack(4)
889#endif
890 typedef struct {
891 mach_msg_header_t Head;
892 NDR_record_t NDR;
893 kern_return_t RetCode;
894 mach_msg_type_number_t kernel_versionOffset; /* MiG doesn't use it */
895 mach_msg_type_number_t kernel_versionCnt;
896 char kernel_version[512];
897 } __Reply__host_kernel_version_t __attribute__((unused));
898#ifdef __MigPackStructs
899#pragma pack()
900#endif
901
902#ifdef __MigPackStructs
903#pragma pack(4)
904#endif
905 typedef struct {
906 mach_msg_header_t Head;
907 NDR_record_t NDR;
908 kern_return_t RetCode;
909 vm_size_t out_page_size;
910 } __Reply__host_page_size_t __attribute__((unused));
911#ifdef __MigPackStructs
912#pragma pack()
913#endif
914
915#ifdef __MigPackStructs
916#pragma pack(4)
917#endif
918 typedef struct {
919 mach_msg_header_t Head;
920 /* start of the kernel processed data */
921 mach_msg_body_t msgh_body;
922 mach_msg_port_descriptor_t entry_handle;
923 /* end of the kernel processed data */
924 } __Reply__mach_memory_object_memory_entry_t __attribute__((unused));
925#ifdef __MigPackStructs
926#pragma pack()
927#endif
928
929#ifdef __MigPackStructs
930#pragma pack(4)
931#endif
932 typedef struct {
933 mach_msg_header_t Head;
934 /* start of the kernel processed data */
935 mach_msg_body_t msgh_body;
936 mach_msg_ool_descriptor_t out_processor_info;
937 /* end of the kernel processed data */
938 NDR_record_t NDR;
939 natural_t out_processor_count;
940 mach_msg_type_number_t out_processor_infoCnt;
941 } __Reply__host_processor_info_t __attribute__((unused));
942#ifdef __MigPackStructs
943#pragma pack()
944#endif
945
946#ifdef __MigPackStructs
947#pragma pack(4)
948#endif
949 typedef struct {
950 mach_msg_header_t Head;
951 /* start of the kernel processed data */
952 mach_msg_body_t msgh_body;
953 mach_msg_port_descriptor_t io_master;
954 /* end of the kernel processed data */
955 } __Reply__host_get_io_master_t __attribute__((unused));
956#ifdef __MigPackStructs
957#pragma pack()
958#endif
959
960#ifdef __MigPackStructs
961#pragma pack(4)
962#endif
963 typedef struct {
964 mach_msg_header_t Head;
965 /* start of the kernel processed data */
966 mach_msg_body_t msgh_body;
967 mach_msg_port_descriptor_t clock_serv;
968 /* end of the kernel processed data */
969 } __Reply__host_get_clock_service_t __attribute__((unused));
970#ifdef __MigPackStructs
971#pragma pack()
972#endif
973
974#ifdef __MigPackStructs
975#pragma pack(4)
976#endif
977 typedef struct {
978 mach_msg_header_t Head;
979 /* start of the kernel processed data */
980 mach_msg_body_t msgh_body;
981 mach_msg_ool_descriptor_t modules;
982 /* end of the kernel processed data */
983 NDR_record_t NDR;
984 mach_msg_type_number_t modulesCnt;
985 } __Reply__kmod_get_info_t __attribute__((unused));
986#ifdef __MigPackStructs
987#pragma pack()
988#endif
989
990#ifdef __MigPackStructs
991#pragma pack(4)
992#endif
993 typedef struct {
994 mach_msg_header_t Head;
995 /* start of the kernel processed data */
996 mach_msg_body_t msgh_body;
997 mach_msg_ool_descriptor_t info;
998 /* end of the kernel processed data */
999 NDR_record_t NDR;
1000 mach_msg_type_number_t infoCnt;
1001 } __Reply__host_virtual_physical_table_info_t __attribute__((unused));
1002#ifdef __MigPackStructs
1003#pragma pack()
1004#endif
1005
1006#ifdef __MigPackStructs
1007#pragma pack(4)
1008#endif
1009 typedef struct {
1010 mach_msg_header_t Head;
1011 /* start of the kernel processed data */
1012 mach_msg_body_t msgh_body;
1013 mach_msg_port_descriptor_t default_set;
1014 /* end of the kernel processed data */
1015 } __Reply__processor_set_default_t __attribute__((unused));
1016#ifdef __MigPackStructs
1017#pragma pack()
1018#endif
1019
1020#ifdef __MigPackStructs
1021#pragma pack(4)
1022#endif
1023 typedef struct {
1024 mach_msg_header_t Head;
1025 /* start of the kernel processed data */
1026 mach_msg_body_t msgh_body;
1027 mach_msg_port_descriptor_t new_set;
1028 mach_msg_port_descriptor_t new_name;
1029 /* end of the kernel processed data */
1030 } __Reply__processor_set_create_t __attribute__((unused));
1031#ifdef __MigPackStructs
1032#pragma pack()
1033#endif
1034
1035#ifdef __MigPackStructs
1036#pragma pack(4)
1037#endif
1038 typedef struct {
1039 mach_msg_header_t Head;
1040 /* start of the kernel processed data */
1041 mach_msg_body_t msgh_body;
1042 mach_msg_port_descriptor_t entry_handle;
1043 /* end of the kernel processed data */
1044 } __Reply__mach_memory_object_memory_entry_64_t __attribute__((unused));
1045#ifdef __MigPackStructs
1046#pragma pack()
1047#endif
1048
1049#ifdef __MigPackStructs
1050#pragma pack(4)
1051#endif
1052 typedef struct {
1053 mach_msg_header_t Head;
1054 NDR_record_t NDR;
1055 kern_return_t RetCode;
1056 mach_msg_type_number_t host_info_outCnt;
1057 integer_t host_info_out[68];
1058 } __Reply__host_statistics_from_user_t __attribute__((unused));
1059#ifdef __MigPackStructs
1060#pragma pack()
1061#endif
1062
1063#ifdef __MigPackStructs
1064#pragma pack(4)
1065#endif
1066 typedef struct {
1067 mach_msg_header_t Head;
1068 NDR_record_t NDR;
1069 kern_return_t RetCode;
1070 } __Reply__host_request_notification_t __attribute__((unused));
1071#ifdef __MigPackStructs
1072#pragma pack()
1073#endif
1074
1075#ifdef __MigPackStructs
1076#pragma pack(4)
1077#endif
1078 typedef struct {
1079 mach_msg_header_t Head;
1080 /* start of the kernel processed data */
1081 mach_msg_body_t msgh_body;
1082 mach_msg_ool_descriptor_t lockgroup_info;
1083 /* end of the kernel processed data */
1084 NDR_record_t NDR;
1085 mach_msg_type_number_t lockgroup_infoCnt;
1086 } __Reply__host_lockgroup_info_t __attribute__((unused));
1087#ifdef __MigPackStructs
1088#pragma pack()
1089#endif
1090
1091#ifdef __MigPackStructs
1092#pragma pack(4)
1093#endif
1094 typedef struct {
1095 mach_msg_header_t Head;
1096 NDR_record_t NDR;
1097 kern_return_t RetCode;
1098 mach_msg_type_number_t host_info64_outCnt;
1099 integer_t host_info64_out[256];
1100 } __Reply__host_statistics64_from_user_t __attribute__((unused));
1101#ifdef __MigPackStructs
1102#pragma pack()
1103#endif
1104
1105#ifdef __MigPackStructs
1106#pragma pack(4)
1107#endif
1108 typedef struct {
1109 mach_msg_header_t Head;
1110 /* start of the kernel processed data */
1111 mach_msg_body_t msgh_body;
1112 mach_msg_ool_descriptor_t names;
1113 mach_msg_ool_descriptor_t info;
1114 /* end of the kernel processed data */
1115 NDR_record_t NDR;
1116 mach_msg_type_number_t namesCnt;
1117 mach_msg_type_number_t infoCnt;
1118 } __Reply__mach_zone_info_t __attribute__((unused));
1119#ifdef __MigPackStructs
1120#pragma pack()
1121#endif
1122
1123#ifdef __MigPackStructs
1124#pragma pack(4)
1125#endif
1126 typedef struct {
1127 mach_msg_header_t Head;
1128 NDR_record_t NDR;
1129 kern_return_t RetCode;
1130 } __Reply__mach_zone_force_gc_t __attribute__((unused));
1131#ifdef __MigPackStructs
1132#pragma pack()
1133#endif
1134
1135#ifdef __MigPackStructs
1136#pragma pack(4)
1137#endif
1138 typedef struct {
1139 mach_msg_header_t Head;
1140 /* start of the kernel processed data */
1141 mach_msg_body_t msgh_body;
1142 mach_msg_port_descriptor_t voucher;
1143 /* end of the kernel processed data */
1144 } __Reply__host_create_mach_voucher_t __attribute__((unused));
1145#ifdef __MigPackStructs
1146#pragma pack()
1147#endif
1148
1149#ifdef __MigPackStructs
1150#pragma pack(4)
1151#endif
1152 typedef struct {
1153 mach_msg_header_t Head;
1154 /* start of the kernel processed data */
1155 mach_msg_body_t msgh_body;
1156 mach_msg_port_descriptor_t new_attr_control;
1157 /* end of the kernel processed data */
1158 NDR_record_t NDR;
1159 mach_voucher_attr_key_t new_key;
1160 } __Reply__host_register_mach_voucher_attr_manager_t __attribute__((unused));
1161#ifdef __MigPackStructs
1162#pragma pack()
1163#endif
1164
1165#ifdef __MigPackStructs
1166#pragma pack(4)
1167#endif
1168 typedef struct {
1169 mach_msg_header_t Head;
1170 /* start of the kernel processed data */
1171 mach_msg_body_t msgh_body;
1172 mach_msg_port_descriptor_t new_attr_control;
1173 /* end of the kernel processed data */
1174 } __Reply__host_register_well_known_mach_voucher_attr_manager_t __attribute__((unused));
1175#ifdef __MigPackStructs
1176#pragma pack()
1177#endif
1178
1179#ifdef __MigPackStructs
1180#pragma pack(4)
1181#endif
1182 typedef struct {
1183 mach_msg_header_t Head;
1184 NDR_record_t NDR;
1185 kern_return_t RetCode;
1186 } __Reply__host_set_atm_diagnostic_flag_t __attribute__((unused));
1187#ifdef __MigPackStructs
1188#pragma pack()
1189#endif
1190
1191#ifdef __MigPackStructs
1192#pragma pack(4)
1193#endif
1194 typedef struct {
1195 mach_msg_header_t Head;
1196 /* start of the kernel processed data */
1197 mach_msg_body_t msgh_body;
1198 mach_msg_ool_descriptor_t names;
1199 mach_msg_ool_descriptor_t info;
1200 mach_msg_ool_descriptor_t memory_info;
1201 /* end of the kernel processed data */
1202 NDR_record_t NDR;
1203 mach_msg_type_number_t namesCnt;
1204 mach_msg_type_number_t infoCnt;
1205 mach_msg_type_number_t memory_infoCnt;
1206 } __Reply__mach_memory_info_t __attribute__((unused));
1207#ifdef __MigPackStructs
1208#pragma pack()
1209#endif
1210
1211#ifdef __MigPackStructs
1212#pragma pack(4)
1213#endif
1214 typedef struct {
1215 mach_msg_header_t Head;
1216 NDR_record_t NDR;
1217 kern_return_t RetCode;
1218 } __Reply__host_set_multiuser_config_flags_t __attribute__((unused));
1219#ifdef __MigPackStructs
1220#pragma pack()
1221#endif
1222
1223#ifdef __MigPackStructs
1224#pragma pack(4)
1225#endif
1226 typedef struct {
1227 mach_msg_header_t Head;
1228 NDR_record_t NDR;
1229 kern_return_t RetCode;
1230 mach_zone_info_t info;
1231 } __Reply__mach_zone_info_for_zone_t __attribute__((unused));
1232#ifdef __MigPackStructs
1233#pragma pack()
1234#endif
1235
1236#ifdef __MigPackStructs
1237#pragma pack(4)
1238#endif
1239 typedef struct {
1240 mach_msg_header_t Head;
1241 NDR_record_t NDR;
1242 kern_return_t RetCode;
1243 mach_zone_name_t name;
1244 mach_zone_info_t info;
1245 } __Reply__mach_zone_info_for_largest_zone_t __attribute__((unused));
1246#ifdef __MigPackStructs
1247#pragma pack()
1248#endif
1249
1250#ifdef __MigPackStructs
1251#pragma pack(4)
1252#endif
1253 typedef struct {
1254 mach_msg_header_t Head;
1255 /* start of the kernel processed data */
1256 mach_msg_body_t msgh_body;
1257 mach_msg_ool_descriptor_t names;
1258 /* end of the kernel processed data */
1259 NDR_record_t NDR;
1260 mach_msg_type_number_t namesCnt;
1261 } __Reply__mach_zone_get_zlog_zones_t __attribute__((unused));
1262#ifdef __MigPackStructs
1263#pragma pack()
1264#endif
1265
1266#ifdef __MigPackStructs
1267#pragma pack(4)
1268#endif
1269 typedef struct {
1270 mach_msg_header_t Head;
1271 /* start of the kernel processed data */
1272 mach_msg_body_t msgh_body;
1273 mach_msg_ool_descriptor_t recs;
1274 /* end of the kernel processed data */
1275 NDR_record_t NDR;
1276 mach_msg_type_number_t recsCnt;
1277 } __Reply__mach_zone_get_btlog_records_t __attribute__((unused));
1278#ifdef __MigPackStructs
1279#pragma pack()
1280#endif
1281#endif /* !__Reply__mach_host_subsystem__defined */
1282
1283
1284/* union of all replies */
1285
1286#ifndef __ReplyUnion__mach_host_subsystem__defined
1287#define __ReplyUnion__mach_host_subsystem__defined
1288union __ReplyUnion__mach_host_subsystem {
1289 __Reply__host_info_t Reply_host_info;
1290 __Reply__host_kernel_version_t Reply_host_kernel_version;
1291 __Reply__host_page_size_t Reply_host_page_size;
1292 __Reply__mach_memory_object_memory_entry_t Reply_mach_memory_object_memory_entry;
1293 __Reply__host_processor_info_t Reply_host_processor_info;
1294 __Reply__host_get_io_master_t Reply_host_get_io_master;
1295 __Reply__host_get_clock_service_t Reply_host_get_clock_service;
1296 __Reply__kmod_get_info_t Reply_kmod_get_info;
1297 __Reply__host_virtual_physical_table_info_t Reply_host_virtual_physical_table_info;
1298 __Reply__processor_set_default_t Reply_processor_set_default;
1299 __Reply__processor_set_create_t Reply_processor_set_create;
1300 __Reply__mach_memory_object_memory_entry_64_t Reply_mach_memory_object_memory_entry_64;
1301 __Reply__host_statistics_from_user_t Reply_host_statistics_from_user;
1302 __Reply__host_request_notification_t Reply_host_request_notification;
1303 __Reply__host_lockgroup_info_t Reply_host_lockgroup_info;
1304 __Reply__host_statistics64_from_user_t Reply_host_statistics64_from_user;
1305 __Reply__mach_zone_info_t Reply_mach_zone_info;
1306 __Reply__mach_zone_force_gc_t Reply_mach_zone_force_gc;
1307 __Reply__host_create_mach_voucher_t Reply_host_create_mach_voucher;
1308 __Reply__host_register_mach_voucher_attr_manager_t Reply_host_register_mach_voucher_attr_manager;
1309 __Reply__host_register_well_known_mach_voucher_attr_manager_t Reply_host_register_well_known_mach_voucher_attr_manager;
1310 __Reply__host_set_atm_diagnostic_flag_t Reply_host_set_atm_diagnostic_flag;
1311 __Reply__mach_memory_info_t Reply_mach_memory_info;
1312 __Reply__host_set_multiuser_config_flags_t Reply_host_set_multiuser_config_flags;
1313 __Reply__mach_zone_info_for_zone_t Reply_mach_zone_info_for_zone;
1314 __Reply__mach_zone_info_for_largest_zone_t Reply_mach_zone_info_for_largest_zone;
1315 __Reply__mach_zone_get_zlog_zones_t Reply_mach_zone_get_zlog_zones;
1316 __Reply__mach_zone_get_btlog_records_t Reply_mach_zone_get_btlog_records;
1317};
1318#endif /* __RequestUnion__mach_host_subsystem__defined */
1319
1320#ifndef subsystem_to_name_map_mach_host
1321#define subsystem_to_name_map_mach_host \
1322 { "host_info", 200 },\
1323 { "host_kernel_version", 201 },\
1324 { "host_page_size", 202 },\
1325 { "mach_memory_object_memory_entry", 203 },\
1326 { "host_processor_info", 204 },\
1327 { "host_get_io_master", 205 },\
1328 { "host_get_clock_service", 206 },\
1329 { "kmod_get_info", 207 },\
1330 { "host_virtual_physical_table_info", 209 },\
1331 { "processor_set_default", 213 },\
1332 { "processor_set_create", 214 },\
1333 { "mach_memory_object_memory_entry_64", 215 },\
1334 { "host_statistics_from_user", 216 },\
1335 { "host_request_notification", 217 },\
1336 { "host_lockgroup_info", 218 },\
1337 { "host_statistics64_from_user", 219 },\
1338 { "mach_zone_info", 220 },\
1339 { "mach_zone_force_gc", 221 },\
1340 { "host_create_mach_voucher", 222 },\
1341 { "host_register_mach_voucher_attr_manager", 223 },\
1342 { "host_register_well_known_mach_voucher_attr_manager", 224 },\
1343 { "host_set_atm_diagnostic_flag", 225 },\
1344 { "mach_memory_info", 227 },\
1345 { "host_set_multiuser_config_flags", 228 },\
1346 { "mach_zone_info_for_zone", 231 },\
1347 { "mach_zone_info_for_largest_zone", 232 },\
1348 { "mach_zone_get_zlog_zones", 233 },\
1349 { "mach_zone_get_btlog_records", 234 }
1350#endif
1351
1352#ifdef __AfterMigServerHeader
1353__AfterMigServerHeader
1354#endif /* __AfterMigServerHeader */
1355
1356#endif /* _mach_host_server_ */
1357