1#ifndef	_task_user_
2#define	_task_user_
3
4/* Module task */
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#ifdef AUTOTEST
17#ifndef FUNCTION_PTR_T
18#define FUNCTION_PTR_T
19typedef void (*function_ptr_t)(mach_port_t, char *, mach_msg_type_number_t);
20typedef struct {
21        char            *name;
22        function_ptr_t  function;
23} function_table_entry;
24typedef function_table_entry   *function_table_t;
25#endif /* FUNCTION_PTR_T */
26#endif /* AUTOTEST */
27
28#ifndef	task_MSG_COUNT
29#define	task_MSG_COUNT	35
30#endif	/* task_MSG_COUNT */
31
32#include <mach/std_types.h>
33#include <mach/mig.h>
34#include <mach/mig.h>
35#include <mach/mach_types.h>
36#include <mach_debug/mach_debug_types.h>
37
38#ifdef __BeforeMigUserHeader
39__BeforeMigUserHeader
40#endif /* __BeforeMigUserHeader */
41
42#include <sys/cdefs.h>
43__BEGIN_DECLS
44
45
46/* Routine task_create */
47#ifdef	mig_external
48mig_external
49#else
50extern
51#endif	/* mig_external */
52kern_return_t task_create
53(
54	task_t target_task,
55	ledger_array_t ledgers,
56	mach_msg_type_number_t ledgersCnt,
57	boolean_t inherit_memory,
58	task_t *child_task
59);
60
61/* Routine task_terminate */
62#ifdef	mig_external
63mig_external
64#else
65extern
66#endif	/* mig_external */
67kern_return_t task_terminate
68(
69	task_t target_task
70);
71
72/* Routine task_threads */
73#ifdef	mig_external
74mig_external
75#else
76extern
77#endif	/* mig_external */
78kern_return_t task_threads
79(
80	task_t target_task,
81	thread_act_array_t *act_list,
82	mach_msg_type_number_t *act_listCnt
83);
84
85/* Routine mach_ports_register */
86#ifdef	mig_external
87mig_external
88#else
89extern
90#endif	/* mig_external */
91kern_return_t mach_ports_register
92(
93	task_t target_task,
94	mach_port_array_t init_port_set,
95	mach_msg_type_number_t init_port_setCnt
96);
97
98/* Routine mach_ports_lookup */
99#ifdef	mig_external
100mig_external
101#else
102extern
103#endif	/* mig_external */
104kern_return_t mach_ports_lookup
105(
106	task_t target_task,
107	mach_port_array_t *init_port_set,
108	mach_msg_type_number_t *init_port_setCnt
109);
110
111/* Routine task_info */
112#ifdef	mig_external
113mig_external
114#else
115extern
116#endif	/* mig_external */
117kern_return_t task_info
118(
119	task_name_t target_task,
120	task_flavor_t flavor,
121	task_info_t task_info_out,
122	mach_msg_type_number_t *task_info_outCnt
123);
124
125/* Routine task_set_info */
126#ifdef	mig_external
127mig_external
128#else
129extern
130#endif	/* mig_external */
131kern_return_t task_set_info
132(
133	task_t target_task,
134	task_flavor_t flavor,
135	task_info_t task_info_in,
136	mach_msg_type_number_t task_info_inCnt
137);
138
139/* Routine task_suspend */
140#ifdef	mig_external
141mig_external
142#else
143extern
144#endif	/* mig_external */
145kern_return_t task_suspend
146(
147	task_t target_task
148);
149
150/* Routine task_resume */
151#ifdef	mig_external
152mig_external
153#else
154extern
155#endif	/* mig_external */
156kern_return_t task_resume
157(
158	task_t target_task
159);
160
161/* Routine task_get_special_port */
162#ifdef	mig_external
163mig_external
164#else
165extern
166#endif	/* mig_external */
167kern_return_t task_get_special_port
168(
169	task_t task,
170	int which_port,
171	mach_port_t *special_port
172);
173
174/* Routine task_set_special_port */
175#ifdef	mig_external
176mig_external
177#else
178extern
179#endif	/* mig_external */
180kern_return_t task_set_special_port
181(
182	task_t task,
183	int which_port,
184	mach_port_t special_port
185);
186
187/* Routine thread_create */
188#ifdef	mig_external
189mig_external
190#else
191extern
192#endif	/* mig_external */
193kern_return_t thread_create
194(
195	task_t parent_task,
196	thread_act_t *child_act
197);
198
199/* Routine thread_create_running */
200#ifdef	mig_external
201mig_external
202#else
203extern
204#endif	/* mig_external */
205kern_return_t thread_create_running
206(
207	task_t parent_task,
208	thread_state_flavor_t flavor,
209	thread_state_t new_state,
210	mach_msg_type_number_t new_stateCnt,
211	thread_act_t *child_act
212);
213
214/* Routine task_set_exception_ports */
215#ifdef	mig_external
216mig_external
217#else
218extern
219#endif	/* mig_external */
220kern_return_t task_set_exception_ports
221(
222	task_t task,
223	exception_mask_t exception_mask,
224	mach_port_t new_port,
225	exception_behavior_t behavior,
226	thread_state_flavor_t new_flavor
227);
228
229/* Routine task_get_exception_ports */
230#ifdef	mig_external
231mig_external
232#else
233extern
234#endif	/* mig_external */
235kern_return_t task_get_exception_ports
236(
237	task_t task,
238	exception_mask_t exception_mask,
239	exception_mask_array_t masks,
240	mach_msg_type_number_t *masksCnt,
241	exception_handler_array_t old_handlers,
242	exception_behavior_array_t old_behaviors,
243	exception_flavor_array_t old_flavors
244);
245
246/* Routine task_swap_exception_ports */
247#ifdef	mig_external
248mig_external
249#else
250extern
251#endif	/* mig_external */
252kern_return_t task_swap_exception_ports
253(
254	task_t task,
255	exception_mask_t exception_mask,
256	mach_port_t new_port,
257	exception_behavior_t behavior,
258	thread_state_flavor_t new_flavor,
259	exception_mask_array_t masks,
260	mach_msg_type_number_t *masksCnt,
261	exception_handler_array_t old_handlerss,
262	exception_behavior_array_t old_behaviors,
263	exception_flavor_array_t old_flavors
264);
265
266/* Routine lock_set_create */
267#ifdef	mig_external
268mig_external
269#else
270extern
271#endif	/* mig_external */
272kern_return_t lock_set_create
273(
274	task_t task,
275	lock_set_t *new_lock_set,
276	int n_ulocks,
277	int policy
278);
279
280/* Routine lock_set_destroy */
281#ifdef	mig_external
282mig_external
283#else
284extern
285#endif	/* mig_external */
286kern_return_t lock_set_destroy
287(
288	task_t task,
289	lock_set_t lock_set
290);
291
292/* Routine semaphore_create */
293#ifdef	mig_external
294mig_external
295#else
296extern
297#endif	/* mig_external */
298kern_return_t semaphore_create
299(
300	task_t task,
301	semaphore_t *semaphore,
302	int policy,
303	int value
304);
305
306/* Routine semaphore_destroy */
307#ifdef	mig_external
308mig_external
309#else
310extern
311#endif	/* mig_external */
312kern_return_t semaphore_destroy
313(
314	task_t task,
315	semaphore_t semaphore
316);
317
318/* Routine task_policy_set */
319#ifdef	mig_external
320mig_external
321#else
322extern
323#endif	/* mig_external */
324kern_return_t task_policy_set
325(
326	task_t task,
327	task_policy_flavor_t flavor,
328	task_policy_t policy_info,
329	mach_msg_type_number_t policy_infoCnt
330);
331
332/* Routine task_policy_get */
333#ifdef	mig_external
334mig_external
335#else
336extern
337#endif	/* mig_external */
338kern_return_t task_policy_get
339(
340	task_t task,
341	task_policy_flavor_t flavor,
342	task_policy_t policy_info,
343	mach_msg_type_number_t *policy_infoCnt,
344	boolean_t *get_default
345);
346
347/* Routine task_sample */
348#ifdef	mig_external
349mig_external
350#else
351extern
352#endif	/* mig_external */
353kern_return_t task_sample
354(
355	task_t task,
356	mach_port_t reply
357);
358
359/* Routine task_policy */
360#ifdef	mig_external
361mig_external
362#else
363extern
364#endif	/* mig_external */
365kern_return_t task_policy
366(
367	task_t task,
368	policy_t policy,
369	policy_base_t base,
370	mach_msg_type_number_t baseCnt,
371	boolean_t set_limit,
372	boolean_t change
373);
374
375/* Routine task_set_emulation */
376#ifdef	mig_external
377mig_external
378#else
379extern
380#endif	/* mig_external */
381kern_return_t task_set_emulation
382(
383	task_t target_port,
384	vm_address_t routine_entry_pt,
385	int routine_number
386);
387
388/* Routine task_get_emulation_vector */
389#ifdef	mig_external
390mig_external
391#else
392extern
393#endif	/* mig_external */
394kern_return_t task_get_emulation_vector
395(
396	task_t task,
397	int *vector_start,
398	emulation_vector_t *emulation_vector,
399	mach_msg_type_number_t *emulation_vectorCnt
400);
401
402/* Routine task_set_emulation_vector */
403#ifdef	mig_external
404mig_external
405#else
406extern
407#endif	/* mig_external */
408kern_return_t task_set_emulation_vector
409(
410	task_t task,
411	int vector_start,
412	emulation_vector_t emulation_vector,
413	mach_msg_type_number_t emulation_vectorCnt
414);
415
416/* Routine task_set_ras_pc */
417#ifdef	mig_external
418mig_external
419#else
420extern
421#endif	/* mig_external */
422kern_return_t task_set_ras_pc
423(
424	task_t target_task,
425	vm_address_t basepc,
426	vm_address_t boundspc
427);
428
429/* Routine task_zone_info */
430#ifdef	mig_external
431mig_external
432#else
433extern
434#endif	/* mig_external */
435kern_return_t task_zone_info
436(
437	task_t target_task,
438	mach_zone_name_array_t *names,
439	mach_msg_type_number_t *namesCnt,
440	task_zone_info_array_t *info,
441	mach_msg_type_number_t *infoCnt
442);
443
444/* Routine task_assign */
445#ifdef	mig_external
446mig_external
447#else
448extern
449#endif	/* mig_external */
450kern_return_t task_assign
451(
452	task_t task,
453	processor_set_t new_set,
454	boolean_t assign_threads
455);
456
457/* Routine task_assign_default */
458#ifdef	mig_external
459mig_external
460#else
461extern
462#endif	/* mig_external */
463kern_return_t task_assign_default
464(
465	task_t task,
466	boolean_t assign_threads
467);
468
469/* Routine task_get_assignment */
470#ifdef	mig_external
471mig_external
472#else
473extern
474#endif	/* mig_external */
475kern_return_t task_get_assignment
476(
477	task_t task,
478	processor_set_name_t *assigned_set
479);
480
481/* Routine task_set_policy */
482#ifdef	mig_external
483mig_external
484#else
485extern
486#endif	/* mig_external */
487kern_return_t task_set_policy
488(
489	task_t task,
490	processor_set_t pset,
491	policy_t policy,
492	policy_base_t base,
493	mach_msg_type_number_t baseCnt,
494	policy_limit_t limit,
495	mach_msg_type_number_t limitCnt,
496	boolean_t change
497);
498
499/* Routine task_get_state */
500#ifdef	mig_external
501mig_external
502#else
503extern
504#endif	/* mig_external */
505kern_return_t task_get_state
506(
507	task_t task,
508	thread_state_flavor_t flavor,
509	thread_state_t old_state,
510	mach_msg_type_number_t *old_stateCnt
511);
512
513/* Routine task_set_state */
514#ifdef	mig_external
515mig_external
516#else
517extern
518#endif	/* mig_external */
519kern_return_t task_set_state
520(
521	task_t task,
522	thread_state_flavor_t flavor,
523	thread_state_t new_state,
524	mach_msg_type_number_t new_stateCnt
525);
526
527__END_DECLS
528
529/********************** Caution **************************/
530/* The following data types should be used to calculate  */
531/* maximum message sizes only. The actual message may be */
532/* smaller, and the position of the arguments within the */
533/* message layout may vary from what is presented here.  */
534/* For example, if any of the arguments are variable-    */
535/* sized, and less than the maximum is sent, the data    */
536/* will be packed tight in the actual message to reduce  */
537/* the presence of holes.                                */
538/********************** Caution **************************/
539
540/* typedefs for all requests */
541
542#ifndef __Request__task_subsystem__defined
543#define __Request__task_subsystem__defined
544
545#ifdef  __MigPackStructs
546#pragma pack(4)
547#endif
548	typedef struct {
549		mach_msg_header_t Head;
550		/* start of the kernel processed data */
551		mach_msg_body_t msgh_body;
552		mach_msg_ool_ports_descriptor_t ledgers;
553		/* end of the kernel processed data */
554		NDR_record_t NDR;
555		mach_msg_type_number_t ledgersCnt;
556		boolean_t inherit_memory;
557	} __Request__task_create_t;
558#ifdef  __MigPackStructs
559#pragma pack()
560#endif
561
562#ifdef  __MigPackStructs
563#pragma pack(4)
564#endif
565	typedef struct {
566		mach_msg_header_t Head;
567	} __Request__task_terminate_t;
568#ifdef  __MigPackStructs
569#pragma pack()
570#endif
571
572#ifdef  __MigPackStructs
573#pragma pack(4)
574#endif
575	typedef struct {
576		mach_msg_header_t Head;
577	} __Request__task_threads_t;
578#ifdef  __MigPackStructs
579#pragma pack()
580#endif
581
582#ifdef  __MigPackStructs
583#pragma pack(4)
584#endif
585	typedef struct {
586		mach_msg_header_t Head;
587		/* start of the kernel processed data */
588		mach_msg_body_t msgh_body;
589		mach_msg_ool_ports_descriptor_t init_port_set;
590		/* end of the kernel processed data */
591		NDR_record_t NDR;
592		mach_msg_type_number_t init_port_setCnt;
593	} __Request__mach_ports_register_t;
594#ifdef  __MigPackStructs
595#pragma pack()
596#endif
597
598#ifdef  __MigPackStructs
599#pragma pack(4)
600#endif
601	typedef struct {
602		mach_msg_header_t Head;
603	} __Request__mach_ports_lookup_t;
604#ifdef  __MigPackStructs
605#pragma pack()
606#endif
607
608#ifdef  __MigPackStructs
609#pragma pack(4)
610#endif
611	typedef struct {
612		mach_msg_header_t Head;
613		NDR_record_t NDR;
614		task_flavor_t flavor;
615		mach_msg_type_number_t task_info_outCnt;
616	} __Request__task_info_t;
617#ifdef  __MigPackStructs
618#pragma pack()
619#endif
620
621#ifdef  __MigPackStructs
622#pragma pack(4)
623#endif
624	typedef struct {
625		mach_msg_header_t Head;
626		NDR_record_t NDR;
627		task_flavor_t flavor;
628		mach_msg_type_number_t task_info_inCnt;
629		integer_t task_info_in[32];
630	} __Request__task_set_info_t;
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	} __Request__task_suspend_t;
641#ifdef  __MigPackStructs
642#pragma pack()
643#endif
644
645#ifdef  __MigPackStructs
646#pragma pack(4)
647#endif
648	typedef struct {
649		mach_msg_header_t Head;
650	} __Request__task_resume_t;
651#ifdef  __MigPackStructs
652#pragma pack()
653#endif
654
655#ifdef  __MigPackStructs
656#pragma pack(4)
657#endif
658	typedef struct {
659		mach_msg_header_t Head;
660		NDR_record_t NDR;
661		int which_port;
662	} __Request__task_get_special_port_t;
663#ifdef  __MigPackStructs
664#pragma pack()
665#endif
666
667#ifdef  __MigPackStructs
668#pragma pack(4)
669#endif
670	typedef struct {
671		mach_msg_header_t Head;
672		/* start of the kernel processed data */
673		mach_msg_body_t msgh_body;
674		mach_msg_port_descriptor_t special_port;
675		/* end of the kernel processed data */
676		NDR_record_t NDR;
677		int which_port;
678	} __Request__task_set_special_port_t;
679#ifdef  __MigPackStructs
680#pragma pack()
681#endif
682
683#ifdef  __MigPackStructs
684#pragma pack(4)
685#endif
686	typedef struct {
687		mach_msg_header_t Head;
688	} __Request__thread_create_t;
689#ifdef  __MigPackStructs
690#pragma pack()
691#endif
692
693#ifdef  __MigPackStructs
694#pragma pack(4)
695#endif
696	typedef struct {
697		mach_msg_header_t Head;
698		NDR_record_t NDR;
699		thread_state_flavor_t flavor;
700		mach_msg_type_number_t new_stateCnt;
701		natural_t new_state[144];
702	} __Request__thread_create_running_t;
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		/* start of the kernel processed data */
713		mach_msg_body_t msgh_body;
714		mach_msg_port_descriptor_t new_port;
715		/* end of the kernel processed data */
716		NDR_record_t NDR;
717		exception_mask_t exception_mask;
718		exception_behavior_t behavior;
719		thread_state_flavor_t new_flavor;
720	} __Request__task_set_exception_ports_t;
721#ifdef  __MigPackStructs
722#pragma pack()
723#endif
724
725#ifdef  __MigPackStructs
726#pragma pack(4)
727#endif
728	typedef struct {
729		mach_msg_header_t Head;
730		NDR_record_t NDR;
731		exception_mask_t exception_mask;
732	} __Request__task_get_exception_ports_t;
733#ifdef  __MigPackStructs
734#pragma pack()
735#endif
736
737#ifdef  __MigPackStructs
738#pragma pack(4)
739#endif
740	typedef struct {
741		mach_msg_header_t Head;
742		/* start of the kernel processed data */
743		mach_msg_body_t msgh_body;
744		mach_msg_port_descriptor_t new_port;
745		/* end of the kernel processed data */
746		NDR_record_t NDR;
747		exception_mask_t exception_mask;
748		exception_behavior_t behavior;
749		thread_state_flavor_t new_flavor;
750	} __Request__task_swap_exception_ports_t;
751#ifdef  __MigPackStructs
752#pragma pack()
753#endif
754
755#ifdef  __MigPackStructs
756#pragma pack(4)
757#endif
758	typedef struct {
759		mach_msg_header_t Head;
760		NDR_record_t NDR;
761		int n_ulocks;
762		int policy;
763	} __Request__lock_set_create_t;
764#ifdef  __MigPackStructs
765#pragma pack()
766#endif
767
768#ifdef  __MigPackStructs
769#pragma pack(4)
770#endif
771	typedef struct {
772		mach_msg_header_t Head;
773		/* start of the kernel processed data */
774		mach_msg_body_t msgh_body;
775		mach_msg_port_descriptor_t lock_set;
776		/* end of the kernel processed data */
777	} __Request__lock_set_destroy_t;
778#ifdef  __MigPackStructs
779#pragma pack()
780#endif
781
782#ifdef  __MigPackStructs
783#pragma pack(4)
784#endif
785	typedef struct {
786		mach_msg_header_t Head;
787		NDR_record_t NDR;
788		int policy;
789		int value;
790	} __Request__semaphore_create_t;
791#ifdef  __MigPackStructs
792#pragma pack()
793#endif
794
795#ifdef  __MigPackStructs
796#pragma pack(4)
797#endif
798	typedef struct {
799		mach_msg_header_t Head;
800		/* start of the kernel processed data */
801		mach_msg_body_t msgh_body;
802		mach_msg_port_descriptor_t semaphore;
803		/* end of the kernel processed data */
804	} __Request__semaphore_destroy_t;
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		NDR_record_t NDR;
815		task_policy_flavor_t flavor;
816		mach_msg_type_number_t policy_infoCnt;
817		integer_t policy_info[16];
818	} __Request__task_policy_set_t;
819#ifdef  __MigPackStructs
820#pragma pack()
821#endif
822
823#ifdef  __MigPackStructs
824#pragma pack(4)
825#endif
826	typedef struct {
827		mach_msg_header_t Head;
828		NDR_record_t NDR;
829		task_policy_flavor_t flavor;
830		mach_msg_type_number_t policy_infoCnt;
831		boolean_t get_default;
832	} __Request__task_policy_get_t;
833#ifdef  __MigPackStructs
834#pragma pack()
835#endif
836
837#ifdef  __MigPackStructs
838#pragma pack(4)
839#endif
840	typedef struct {
841		mach_msg_header_t Head;
842		/* start of the kernel processed data */
843		mach_msg_body_t msgh_body;
844		mach_msg_port_descriptor_t reply;
845		/* end of the kernel processed data */
846	} __Request__task_sample_t;
847#ifdef  __MigPackStructs
848#pragma pack()
849#endif
850
851#ifdef  __MigPackStructs
852#pragma pack(4)
853#endif
854	typedef struct {
855		mach_msg_header_t Head;
856		NDR_record_t NDR;
857		policy_t policy;
858		mach_msg_type_number_t baseCnt;
859		integer_t base[5];
860		boolean_t set_limit;
861		boolean_t change;
862	} __Request__task_policy_t;
863#ifdef  __MigPackStructs
864#pragma pack()
865#endif
866
867#ifdef  __MigPackStructs
868#pragma pack(4)
869#endif
870	typedef struct {
871		mach_msg_header_t Head;
872		NDR_record_t NDR;
873		vm_address_t routine_entry_pt;
874		int routine_number;
875	} __Request__task_set_emulation_t;
876#ifdef  __MigPackStructs
877#pragma pack()
878#endif
879
880#ifdef  __MigPackStructs
881#pragma pack(4)
882#endif
883	typedef struct {
884		mach_msg_header_t Head;
885	} __Request__task_get_emulation_vector_t;
886#ifdef  __MigPackStructs
887#pragma pack()
888#endif
889
890#ifdef  __MigPackStructs
891#pragma pack(4)
892#endif
893	typedef struct {
894		mach_msg_header_t Head;
895		/* start of the kernel processed data */
896		mach_msg_body_t msgh_body;
897		mach_msg_ool_descriptor_t emulation_vector;
898		/* end of the kernel processed data */
899		NDR_record_t NDR;
900		int vector_start;
901		mach_msg_type_number_t emulation_vectorCnt;
902	} __Request__task_set_emulation_vector_t;
903#ifdef  __MigPackStructs
904#pragma pack()
905#endif
906
907#ifdef  __MigPackStructs
908#pragma pack(4)
909#endif
910	typedef struct {
911		mach_msg_header_t Head;
912		NDR_record_t NDR;
913		vm_address_t basepc;
914		vm_address_t boundspc;
915	} __Request__task_set_ras_pc_t;
916#ifdef  __MigPackStructs
917#pragma pack()
918#endif
919
920#ifdef  __MigPackStructs
921#pragma pack(4)
922#endif
923	typedef struct {
924		mach_msg_header_t Head;
925	} __Request__task_zone_info_t;
926#ifdef  __MigPackStructs
927#pragma pack()
928#endif
929
930#ifdef  __MigPackStructs
931#pragma pack(4)
932#endif
933	typedef struct {
934		mach_msg_header_t Head;
935		/* start of the kernel processed data */
936		mach_msg_body_t msgh_body;
937		mach_msg_port_descriptor_t new_set;
938		/* end of the kernel processed data */
939		NDR_record_t NDR;
940		boolean_t assign_threads;
941	} __Request__task_assign_t;
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		NDR_record_t NDR;
952		boolean_t assign_threads;
953	} __Request__task_assign_default_t;
954#ifdef  __MigPackStructs
955#pragma pack()
956#endif
957
958#ifdef  __MigPackStructs
959#pragma pack(4)
960#endif
961	typedef struct {
962		mach_msg_header_t Head;
963	} __Request__task_get_assignment_t;
964#ifdef  __MigPackStructs
965#pragma pack()
966#endif
967
968#ifdef  __MigPackStructs
969#pragma pack(4)
970#endif
971	typedef struct {
972		mach_msg_header_t Head;
973		/* start of the kernel processed data */
974		mach_msg_body_t msgh_body;
975		mach_msg_port_descriptor_t pset;
976		/* end of the kernel processed data */
977		NDR_record_t NDR;
978		policy_t policy;
979		mach_msg_type_number_t baseCnt;
980		integer_t base[5];
981		mach_msg_type_number_t limitCnt;
982		integer_t limit[1];
983		boolean_t change;
984	} __Request__task_set_policy_t;
985#ifdef  __MigPackStructs
986#pragma pack()
987#endif
988
989#ifdef  __MigPackStructs
990#pragma pack(4)
991#endif
992	typedef struct {
993		mach_msg_header_t Head;
994		NDR_record_t NDR;
995		thread_state_flavor_t flavor;
996		mach_msg_type_number_t old_stateCnt;
997	} __Request__task_get_state_t;
998#ifdef  __MigPackStructs
999#pragma pack()
1000#endif
1001
1002#ifdef  __MigPackStructs
1003#pragma pack(4)
1004#endif
1005	typedef struct {
1006		mach_msg_header_t Head;
1007		NDR_record_t NDR;
1008		thread_state_flavor_t flavor;
1009		mach_msg_type_number_t new_stateCnt;
1010		natural_t new_state[144];
1011	} __Request__task_set_state_t;
1012#ifdef  __MigPackStructs
1013#pragma pack()
1014#endif
1015#endif /* !__Request__task_subsystem__defined */
1016
1017/* union of all requests */
1018
1019#ifndef __RequestUnion__task_subsystem__defined
1020#define __RequestUnion__task_subsystem__defined
1021union __RequestUnion__task_subsystem {
1022	__Request__task_create_t Request_task_create;
1023	__Request__task_terminate_t Request_task_terminate;
1024	__Request__task_threads_t Request_task_threads;
1025	__Request__mach_ports_register_t Request_mach_ports_register;
1026	__Request__mach_ports_lookup_t Request_mach_ports_lookup;
1027	__Request__task_info_t Request_task_info;
1028	__Request__task_set_info_t Request_task_set_info;
1029	__Request__task_suspend_t Request_task_suspend;
1030	__Request__task_resume_t Request_task_resume;
1031	__Request__task_get_special_port_t Request_task_get_special_port;
1032	__Request__task_set_special_port_t Request_task_set_special_port;
1033	__Request__thread_create_t Request_thread_create;
1034	__Request__thread_create_running_t Request_thread_create_running;
1035	__Request__task_set_exception_ports_t Request_task_set_exception_ports;
1036	__Request__task_get_exception_ports_t Request_task_get_exception_ports;
1037	__Request__task_swap_exception_ports_t Request_task_swap_exception_ports;
1038	__Request__lock_set_create_t Request_lock_set_create;
1039	__Request__lock_set_destroy_t Request_lock_set_destroy;
1040	__Request__semaphore_create_t Request_semaphore_create;
1041	__Request__semaphore_destroy_t Request_semaphore_destroy;
1042	__Request__task_policy_set_t Request_task_policy_set;
1043	__Request__task_policy_get_t Request_task_policy_get;
1044	__Request__task_sample_t Request_task_sample;
1045	__Request__task_policy_t Request_task_policy;
1046	__Request__task_set_emulation_t Request_task_set_emulation;
1047	__Request__task_get_emulation_vector_t Request_task_get_emulation_vector;
1048	__Request__task_set_emulation_vector_t Request_task_set_emulation_vector;
1049	__Request__task_set_ras_pc_t Request_task_set_ras_pc;
1050	__Request__task_zone_info_t Request_task_zone_info;
1051	__Request__task_assign_t Request_task_assign;
1052	__Request__task_assign_default_t Request_task_assign_default;
1053	__Request__task_get_assignment_t Request_task_get_assignment;
1054	__Request__task_set_policy_t Request_task_set_policy;
1055	__Request__task_get_state_t Request_task_get_state;
1056	__Request__task_set_state_t Request_task_set_state;
1057};
1058#endif /* !__RequestUnion__task_subsystem__defined */
1059/* typedefs for all replies */
1060
1061#ifndef __Reply__task_subsystem__defined
1062#define __Reply__task_subsystem__defined
1063
1064#ifdef  __MigPackStructs
1065#pragma pack(4)
1066#endif
1067	typedef struct {
1068		mach_msg_header_t Head;
1069		/* start of the kernel processed data */
1070		mach_msg_body_t msgh_body;
1071		mach_msg_port_descriptor_t child_task;
1072		/* end of the kernel processed data */
1073	} __Reply__task_create_t;
1074#ifdef  __MigPackStructs
1075#pragma pack()
1076#endif
1077
1078#ifdef  __MigPackStructs
1079#pragma pack(4)
1080#endif
1081	typedef struct {
1082		mach_msg_header_t Head;
1083		NDR_record_t NDR;
1084		kern_return_t RetCode;
1085	} __Reply__task_terminate_t;
1086#ifdef  __MigPackStructs
1087#pragma pack()
1088#endif
1089
1090#ifdef  __MigPackStructs
1091#pragma pack(4)
1092#endif
1093	typedef struct {
1094		mach_msg_header_t Head;
1095		/* start of the kernel processed data */
1096		mach_msg_body_t msgh_body;
1097		mach_msg_ool_ports_descriptor_t act_list;
1098		/* end of the kernel processed data */
1099		NDR_record_t NDR;
1100		mach_msg_type_number_t act_listCnt;
1101	} __Reply__task_threads_t;
1102#ifdef  __MigPackStructs
1103#pragma pack()
1104#endif
1105
1106#ifdef  __MigPackStructs
1107#pragma pack(4)
1108#endif
1109	typedef struct {
1110		mach_msg_header_t Head;
1111		NDR_record_t NDR;
1112		kern_return_t RetCode;
1113	} __Reply__mach_ports_register_t;
1114#ifdef  __MigPackStructs
1115#pragma pack()
1116#endif
1117
1118#ifdef  __MigPackStructs
1119#pragma pack(4)
1120#endif
1121	typedef struct {
1122		mach_msg_header_t Head;
1123		/* start of the kernel processed data */
1124		mach_msg_body_t msgh_body;
1125		mach_msg_ool_ports_descriptor_t init_port_set;
1126		/* end of the kernel processed data */
1127		NDR_record_t NDR;
1128		mach_msg_type_number_t init_port_setCnt;
1129	} __Reply__mach_ports_lookup_t;
1130#ifdef  __MigPackStructs
1131#pragma pack()
1132#endif
1133
1134#ifdef  __MigPackStructs
1135#pragma pack(4)
1136#endif
1137	typedef struct {
1138		mach_msg_header_t Head;
1139		NDR_record_t NDR;
1140		kern_return_t RetCode;
1141		mach_msg_type_number_t task_info_outCnt;
1142		integer_t task_info_out[32];
1143	} __Reply__task_info_t;
1144#ifdef  __MigPackStructs
1145#pragma pack()
1146#endif
1147
1148#ifdef  __MigPackStructs
1149#pragma pack(4)
1150#endif
1151	typedef struct {
1152		mach_msg_header_t Head;
1153		NDR_record_t NDR;
1154		kern_return_t RetCode;
1155	} __Reply__task_set_info_t;
1156#ifdef  __MigPackStructs
1157#pragma pack()
1158#endif
1159
1160#ifdef  __MigPackStructs
1161#pragma pack(4)
1162#endif
1163	typedef struct {
1164		mach_msg_header_t Head;
1165		NDR_record_t NDR;
1166		kern_return_t RetCode;
1167	} __Reply__task_suspend_t;
1168#ifdef  __MigPackStructs
1169#pragma pack()
1170#endif
1171
1172#ifdef  __MigPackStructs
1173#pragma pack(4)
1174#endif
1175	typedef struct {
1176		mach_msg_header_t Head;
1177		NDR_record_t NDR;
1178		kern_return_t RetCode;
1179	} __Reply__task_resume_t;
1180#ifdef  __MigPackStructs
1181#pragma pack()
1182#endif
1183
1184#ifdef  __MigPackStructs
1185#pragma pack(4)
1186#endif
1187	typedef struct {
1188		mach_msg_header_t Head;
1189		/* start of the kernel processed data */
1190		mach_msg_body_t msgh_body;
1191		mach_msg_port_descriptor_t special_port;
1192		/* end of the kernel processed data */
1193	} __Reply__task_get_special_port_t;
1194#ifdef  __MigPackStructs
1195#pragma pack()
1196#endif
1197
1198#ifdef  __MigPackStructs
1199#pragma pack(4)
1200#endif
1201	typedef struct {
1202		mach_msg_header_t Head;
1203		NDR_record_t NDR;
1204		kern_return_t RetCode;
1205	} __Reply__task_set_special_port_t;
1206#ifdef  __MigPackStructs
1207#pragma pack()
1208#endif
1209
1210#ifdef  __MigPackStructs
1211#pragma pack(4)
1212#endif
1213	typedef struct {
1214		mach_msg_header_t Head;
1215		/* start of the kernel processed data */
1216		mach_msg_body_t msgh_body;
1217		mach_msg_port_descriptor_t child_act;
1218		/* end of the kernel processed data */
1219	} __Reply__thread_create_t;
1220#ifdef  __MigPackStructs
1221#pragma pack()
1222#endif
1223
1224#ifdef  __MigPackStructs
1225#pragma pack(4)
1226#endif
1227	typedef struct {
1228		mach_msg_header_t Head;
1229		/* start of the kernel processed data */
1230		mach_msg_body_t msgh_body;
1231		mach_msg_port_descriptor_t child_act;
1232		/* end of the kernel processed data */
1233	} __Reply__thread_create_running_t;
1234#ifdef  __MigPackStructs
1235#pragma pack()
1236#endif
1237
1238#ifdef  __MigPackStructs
1239#pragma pack(4)
1240#endif
1241	typedef struct {
1242		mach_msg_header_t Head;
1243		NDR_record_t NDR;
1244		kern_return_t RetCode;
1245	} __Reply__task_set_exception_ports_t;
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_port_descriptor_t old_handlers[32];
1258		/* end of the kernel processed data */
1259		NDR_record_t NDR;
1260		mach_msg_type_number_t masksCnt;
1261		exception_mask_t masks[32];
1262		exception_behavior_t old_behaviors[32];
1263		thread_state_flavor_t old_flavors[32];
1264	} __Reply__task_get_exception_ports_t;
1265#ifdef  __MigPackStructs
1266#pragma pack()
1267#endif
1268
1269#ifdef  __MigPackStructs
1270#pragma pack(4)
1271#endif
1272	typedef struct {
1273		mach_msg_header_t Head;
1274		/* start of the kernel processed data */
1275		mach_msg_body_t msgh_body;
1276		mach_msg_port_descriptor_t old_handlerss[32];
1277		/* end of the kernel processed data */
1278		NDR_record_t NDR;
1279		mach_msg_type_number_t masksCnt;
1280		exception_mask_t masks[32];
1281		exception_behavior_t old_behaviors[32];
1282		thread_state_flavor_t old_flavors[32];
1283	} __Reply__task_swap_exception_ports_t;
1284#ifdef  __MigPackStructs
1285#pragma pack()
1286#endif
1287
1288#ifdef  __MigPackStructs
1289#pragma pack(4)
1290#endif
1291	typedef struct {
1292		mach_msg_header_t Head;
1293		/* start of the kernel processed data */
1294		mach_msg_body_t msgh_body;
1295		mach_msg_port_descriptor_t new_lock_set;
1296		/* end of the kernel processed data */
1297	} __Reply__lock_set_create_t;
1298#ifdef  __MigPackStructs
1299#pragma pack()
1300#endif
1301
1302#ifdef  __MigPackStructs
1303#pragma pack(4)
1304#endif
1305	typedef struct {
1306		mach_msg_header_t Head;
1307		NDR_record_t NDR;
1308		kern_return_t RetCode;
1309	} __Reply__lock_set_destroy_t;
1310#ifdef  __MigPackStructs
1311#pragma pack()
1312#endif
1313
1314#ifdef  __MigPackStructs
1315#pragma pack(4)
1316#endif
1317	typedef struct {
1318		mach_msg_header_t Head;
1319		/* start of the kernel processed data */
1320		mach_msg_body_t msgh_body;
1321		mach_msg_port_descriptor_t semaphore;
1322		/* end of the kernel processed data */
1323	} __Reply__semaphore_create_t;
1324#ifdef  __MigPackStructs
1325#pragma pack()
1326#endif
1327
1328#ifdef  __MigPackStructs
1329#pragma pack(4)
1330#endif
1331	typedef struct {
1332		mach_msg_header_t Head;
1333		NDR_record_t NDR;
1334		kern_return_t RetCode;
1335	} __Reply__semaphore_destroy_t;
1336#ifdef  __MigPackStructs
1337#pragma pack()
1338#endif
1339
1340#ifdef  __MigPackStructs
1341#pragma pack(4)
1342#endif
1343	typedef struct {
1344		mach_msg_header_t Head;
1345		NDR_record_t NDR;
1346		kern_return_t RetCode;
1347	} __Reply__task_policy_set_t;
1348#ifdef  __MigPackStructs
1349#pragma pack()
1350#endif
1351
1352#ifdef  __MigPackStructs
1353#pragma pack(4)
1354#endif
1355	typedef struct {
1356		mach_msg_header_t Head;
1357		NDR_record_t NDR;
1358		kern_return_t RetCode;
1359		mach_msg_type_number_t policy_infoCnt;
1360		integer_t policy_info[16];
1361		boolean_t get_default;
1362	} __Reply__task_policy_get_t;
1363#ifdef  __MigPackStructs
1364#pragma pack()
1365#endif
1366
1367#ifdef  __MigPackStructs
1368#pragma pack(4)
1369#endif
1370	typedef struct {
1371		mach_msg_header_t Head;
1372		NDR_record_t NDR;
1373		kern_return_t RetCode;
1374	} __Reply__task_sample_t;
1375#ifdef  __MigPackStructs
1376#pragma pack()
1377#endif
1378
1379#ifdef  __MigPackStructs
1380#pragma pack(4)
1381#endif
1382	typedef struct {
1383		mach_msg_header_t Head;
1384		NDR_record_t NDR;
1385		kern_return_t RetCode;
1386	} __Reply__task_policy_t;
1387#ifdef  __MigPackStructs
1388#pragma pack()
1389#endif
1390
1391#ifdef  __MigPackStructs
1392#pragma pack(4)
1393#endif
1394	typedef struct {
1395		mach_msg_header_t Head;
1396		NDR_record_t NDR;
1397		kern_return_t RetCode;
1398	} __Reply__task_set_emulation_t;
1399#ifdef  __MigPackStructs
1400#pragma pack()
1401#endif
1402
1403#ifdef  __MigPackStructs
1404#pragma pack(4)
1405#endif
1406	typedef struct {
1407		mach_msg_header_t Head;
1408		/* start of the kernel processed data */
1409		mach_msg_body_t msgh_body;
1410		mach_msg_ool_descriptor_t emulation_vector;
1411		/* end of the kernel processed data */
1412		NDR_record_t NDR;
1413		int vector_start;
1414		mach_msg_type_number_t emulation_vectorCnt;
1415	} __Reply__task_get_emulation_vector_t;
1416#ifdef  __MigPackStructs
1417#pragma pack()
1418#endif
1419
1420#ifdef  __MigPackStructs
1421#pragma pack(4)
1422#endif
1423	typedef struct {
1424		mach_msg_header_t Head;
1425		NDR_record_t NDR;
1426		kern_return_t RetCode;
1427	} __Reply__task_set_emulation_vector_t;
1428#ifdef  __MigPackStructs
1429#pragma pack()
1430#endif
1431
1432#ifdef  __MigPackStructs
1433#pragma pack(4)
1434#endif
1435	typedef struct {
1436		mach_msg_header_t Head;
1437		NDR_record_t NDR;
1438		kern_return_t RetCode;
1439	} __Reply__task_set_ras_pc_t;
1440#ifdef  __MigPackStructs
1441#pragma pack()
1442#endif
1443
1444#ifdef  __MigPackStructs
1445#pragma pack(4)
1446#endif
1447	typedef struct {
1448		mach_msg_header_t Head;
1449		/* start of the kernel processed data */
1450		mach_msg_body_t msgh_body;
1451		mach_msg_ool_descriptor_t names;
1452		mach_msg_ool_descriptor_t info;
1453		/* end of the kernel processed data */
1454		NDR_record_t NDR;
1455		mach_msg_type_number_t namesCnt;
1456		mach_msg_type_number_t infoCnt;
1457	} __Reply__task_zone_info_t;
1458#ifdef  __MigPackStructs
1459#pragma pack()
1460#endif
1461
1462#ifdef  __MigPackStructs
1463#pragma pack(4)
1464#endif
1465	typedef struct {
1466		mach_msg_header_t Head;
1467		NDR_record_t NDR;
1468		kern_return_t RetCode;
1469	} __Reply__task_assign_t;
1470#ifdef  __MigPackStructs
1471#pragma pack()
1472#endif
1473
1474#ifdef  __MigPackStructs
1475#pragma pack(4)
1476#endif
1477	typedef struct {
1478		mach_msg_header_t Head;
1479		NDR_record_t NDR;
1480		kern_return_t RetCode;
1481	} __Reply__task_assign_default_t;
1482#ifdef  __MigPackStructs
1483#pragma pack()
1484#endif
1485
1486#ifdef  __MigPackStructs
1487#pragma pack(4)
1488#endif
1489	typedef struct {
1490		mach_msg_header_t Head;
1491		/* start of the kernel processed data */
1492		mach_msg_body_t msgh_body;
1493		mach_msg_port_descriptor_t assigned_set;
1494		/* end of the kernel processed data */
1495	} __Reply__task_get_assignment_t;
1496#ifdef  __MigPackStructs
1497#pragma pack()
1498#endif
1499
1500#ifdef  __MigPackStructs
1501#pragma pack(4)
1502#endif
1503	typedef struct {
1504		mach_msg_header_t Head;
1505		NDR_record_t NDR;
1506		kern_return_t RetCode;
1507	} __Reply__task_set_policy_t;
1508#ifdef  __MigPackStructs
1509#pragma pack()
1510#endif
1511
1512#ifdef  __MigPackStructs
1513#pragma pack(4)
1514#endif
1515	typedef struct {
1516		mach_msg_header_t Head;
1517		NDR_record_t NDR;
1518		kern_return_t RetCode;
1519		mach_msg_type_number_t old_stateCnt;
1520		natural_t old_state[144];
1521	} __Reply__task_get_state_t;
1522#ifdef  __MigPackStructs
1523#pragma pack()
1524#endif
1525
1526#ifdef  __MigPackStructs
1527#pragma pack(4)
1528#endif
1529	typedef struct {
1530		mach_msg_header_t Head;
1531		NDR_record_t NDR;
1532		kern_return_t RetCode;
1533	} __Reply__task_set_state_t;
1534#ifdef  __MigPackStructs
1535#pragma pack()
1536#endif
1537#endif /* !__Reply__task_subsystem__defined */
1538
1539/* union of all replies */
1540
1541#ifndef __ReplyUnion__task_subsystem__defined
1542#define __ReplyUnion__task_subsystem__defined
1543union __ReplyUnion__task_subsystem {
1544	__Reply__task_create_t Reply_task_create;
1545	__Reply__task_terminate_t Reply_task_terminate;
1546	__Reply__task_threads_t Reply_task_threads;
1547	__Reply__mach_ports_register_t Reply_mach_ports_register;
1548	__Reply__mach_ports_lookup_t Reply_mach_ports_lookup;
1549	__Reply__task_info_t Reply_task_info;
1550	__Reply__task_set_info_t Reply_task_set_info;
1551	__Reply__task_suspend_t Reply_task_suspend;
1552	__Reply__task_resume_t Reply_task_resume;
1553	__Reply__task_get_special_port_t Reply_task_get_special_port;
1554	__Reply__task_set_special_port_t Reply_task_set_special_port;
1555	__Reply__thread_create_t Reply_thread_create;
1556	__Reply__thread_create_running_t Reply_thread_create_running;
1557	__Reply__task_set_exception_ports_t Reply_task_set_exception_ports;
1558	__Reply__task_get_exception_ports_t Reply_task_get_exception_ports;
1559	__Reply__task_swap_exception_ports_t Reply_task_swap_exception_ports;
1560	__Reply__lock_set_create_t Reply_lock_set_create;
1561	__Reply__lock_set_destroy_t Reply_lock_set_destroy;
1562	__Reply__semaphore_create_t Reply_semaphore_create;
1563	__Reply__semaphore_destroy_t Reply_semaphore_destroy;
1564	__Reply__task_policy_set_t Reply_task_policy_set;
1565	__Reply__task_policy_get_t Reply_task_policy_get;
1566	__Reply__task_sample_t Reply_task_sample;
1567	__Reply__task_policy_t Reply_task_policy;
1568	__Reply__task_set_emulation_t Reply_task_set_emulation;
1569	__Reply__task_get_emulation_vector_t Reply_task_get_emulation_vector;
1570	__Reply__task_set_emulation_vector_t Reply_task_set_emulation_vector;
1571	__Reply__task_set_ras_pc_t Reply_task_set_ras_pc;
1572	__Reply__task_zone_info_t Reply_task_zone_info;
1573	__Reply__task_assign_t Reply_task_assign;
1574	__Reply__task_assign_default_t Reply_task_assign_default;
1575	__Reply__task_get_assignment_t Reply_task_get_assignment;
1576	__Reply__task_set_policy_t Reply_task_set_policy;
1577	__Reply__task_get_state_t Reply_task_get_state;
1578	__Reply__task_set_state_t Reply_task_set_state;
1579};
1580#endif /* !__RequestUnion__task_subsystem__defined */
1581
1582#ifndef subsystem_to_name_map_task
1583#define subsystem_to_name_map_task \
1584    { "task_create", 3400 },\
1585    { "task_terminate", 3401 },\
1586    { "task_threads", 3402 },\
1587    { "mach_ports_register", 3403 },\
1588    { "mach_ports_lookup", 3404 },\
1589    { "task_info", 3405 },\
1590    { "task_set_info", 3406 },\
1591    { "task_suspend", 3407 },\
1592    { "task_resume", 3408 },\
1593    { "task_get_special_port", 3409 },\
1594    { "task_set_special_port", 3410 },\
1595    { "thread_create", 3411 },\
1596    { "thread_create_running", 3412 },\
1597    { "task_set_exception_ports", 3413 },\
1598    { "task_get_exception_ports", 3414 },\
1599    { "task_swap_exception_ports", 3415 },\
1600    { "lock_set_create", 3416 },\
1601    { "lock_set_destroy", 3417 },\
1602    { "semaphore_create", 3418 },\
1603    { "semaphore_destroy", 3419 },\
1604    { "task_policy_set", 3420 },\
1605    { "task_policy_get", 3421 },\
1606    { "task_sample", 3422 },\
1607    { "task_policy", 3423 },\
1608    { "task_set_emulation", 3424 },\
1609    { "task_get_emulation_vector", 3425 },\
1610    { "task_set_emulation_vector", 3426 },\
1611    { "task_set_ras_pc", 3427 },\
1612    { "task_zone_info", 3428 },\
1613    { "task_assign", 3429 },\
1614    { "task_assign_default", 3430 },\
1615    { "task_get_assignment", 3431 },\
1616    { "task_set_policy", 3432 },\
1617    { "task_get_state", 3433 },\
1618    { "task_set_state", 3434 }
1619#endif
1620
1621#ifdef __AfterMigUserHeader
1622__AfterMigUserHeader
1623#endif /* __AfterMigUserHeader */
1624
1625#endif	 /* _task_user_ */
1626