1#ifndef	_thread_act_user_
2#define	_thread_act_user_
3
4/* Module thread_act */
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	thread_act_MSG_COUNT
29#define	thread_act_MSG_COUNT	25
30#endif	/* thread_act_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
37#ifdef __BeforeMigUserHeader
38__BeforeMigUserHeader
39#endif /* __BeforeMigUserHeader */
40
41#include <sys/cdefs.h>
42__BEGIN_DECLS
43
44
45/* Routine thread_terminate */
46#ifdef	mig_external
47mig_external
48#else
49extern
50#endif	/* mig_external */
51kern_return_t thread_terminate
52(
53	thread_act_t target_act
54);
55
56/* Routine act_get_state */
57#ifdef	mig_external
58mig_external
59#else
60extern
61#endif	/* mig_external */
62kern_return_t act_get_state
63(
64	thread_act_t target_act,
65	int flavor,
66	thread_state_t old_state,
67	mach_msg_type_number_t *old_stateCnt
68);
69
70/* Routine act_set_state */
71#ifdef	mig_external
72mig_external
73#else
74extern
75#endif	/* mig_external */
76kern_return_t act_set_state
77(
78	thread_act_t target_act,
79	int flavor,
80	thread_state_t new_state,
81	mach_msg_type_number_t new_stateCnt
82);
83
84/* Routine thread_get_state */
85#ifdef	mig_external
86mig_external
87#else
88extern
89#endif	/* mig_external */
90kern_return_t thread_get_state
91(
92	thread_act_t target_act,
93	thread_state_flavor_t flavor,
94	thread_state_t old_state,
95	mach_msg_type_number_t *old_stateCnt
96);
97
98/* Routine thread_set_state */
99#ifdef	mig_external
100mig_external
101#else
102extern
103#endif	/* mig_external */
104kern_return_t thread_set_state
105(
106	thread_act_t target_act,
107	thread_state_flavor_t flavor,
108	thread_state_t new_state,
109	mach_msg_type_number_t new_stateCnt
110);
111
112/* Routine thread_suspend */
113#ifdef	mig_external
114mig_external
115#else
116extern
117#endif	/* mig_external */
118kern_return_t thread_suspend
119(
120	thread_act_t target_act
121);
122
123/* Routine thread_resume */
124#ifdef	mig_external
125mig_external
126#else
127extern
128#endif	/* mig_external */
129kern_return_t thread_resume
130(
131	thread_act_t target_act
132);
133
134/* Routine thread_abort */
135#ifdef	mig_external
136mig_external
137#else
138extern
139#endif	/* mig_external */
140kern_return_t thread_abort
141(
142	thread_act_t target_act
143);
144
145/* Routine thread_abort_safely */
146#ifdef	mig_external
147mig_external
148#else
149extern
150#endif	/* mig_external */
151kern_return_t thread_abort_safely
152(
153	thread_act_t target_act
154);
155
156/* Routine thread_depress_abort */
157#ifdef	mig_external
158mig_external
159#else
160extern
161#endif	/* mig_external */
162kern_return_t thread_depress_abort
163(
164	thread_act_t thread
165);
166
167/* Routine thread_get_special_port */
168#ifdef	mig_external
169mig_external
170#else
171extern
172#endif	/* mig_external */
173kern_return_t thread_get_special_port
174(
175	thread_act_t thr_act,
176	int which_port,
177	mach_port_t *special_port
178);
179
180/* Routine thread_set_special_port */
181#ifdef	mig_external
182mig_external
183#else
184extern
185#endif	/* mig_external */
186kern_return_t thread_set_special_port
187(
188	thread_act_t thr_act,
189	int which_port,
190	mach_port_t special_port
191);
192
193/* Routine thread_info */
194#ifdef	mig_external
195mig_external
196#else
197extern
198#endif	/* mig_external */
199kern_return_t thread_info
200(
201	thread_act_t target_act,
202	thread_flavor_t flavor,
203	thread_info_t thread_info_out,
204	mach_msg_type_number_t *thread_info_outCnt
205);
206
207/* Routine thread_set_exception_ports */
208#ifdef	mig_external
209mig_external
210#else
211extern
212#endif	/* mig_external */
213kern_return_t thread_set_exception_ports
214(
215	thread_act_t thread,
216	exception_mask_t exception_mask,
217	mach_port_t new_port,
218	exception_behavior_t behavior,
219	thread_state_flavor_t new_flavor
220);
221
222/* Routine thread_get_exception_ports */
223#ifdef	mig_external
224mig_external
225#else
226extern
227#endif	/* mig_external */
228kern_return_t thread_get_exception_ports
229(
230	thread_act_t thread,
231	exception_mask_t exception_mask,
232	exception_mask_array_t masks,
233	mach_msg_type_number_t *masksCnt,
234	exception_handler_array_t old_handlers,
235	exception_behavior_array_t old_behaviors,
236	exception_flavor_array_t old_flavors
237);
238
239/* Routine thread_swap_exception_ports */
240#ifdef	mig_external
241mig_external
242#else
243extern
244#endif	/* mig_external */
245kern_return_t thread_swap_exception_ports
246(
247	thread_act_t thread,
248	exception_mask_t exception_mask,
249	mach_port_t new_port,
250	exception_behavior_t behavior,
251	thread_state_flavor_t new_flavor,
252	exception_mask_array_t masks,
253	mach_msg_type_number_t *masksCnt,
254	exception_handler_array_t old_handlers,
255	exception_behavior_array_t old_behaviors,
256	exception_flavor_array_t old_flavors
257);
258
259/* Routine thread_policy */
260#ifdef	mig_external
261mig_external
262#else
263extern
264#endif	/* mig_external */
265kern_return_t thread_policy
266(
267	thread_act_t thr_act,
268	policy_t policy,
269	policy_base_t base,
270	mach_msg_type_number_t baseCnt,
271	boolean_t set_limit
272);
273
274/* Routine thread_policy_set */
275#ifdef	mig_external
276mig_external
277#else
278extern
279#endif	/* mig_external */
280kern_return_t thread_policy_set
281(
282	thread_act_t thread,
283	thread_policy_flavor_t flavor,
284	thread_policy_t policy_info,
285	mach_msg_type_number_t policy_infoCnt
286);
287
288/* Routine thread_policy_get */
289#ifdef	mig_external
290mig_external
291#else
292extern
293#endif	/* mig_external */
294kern_return_t thread_policy_get
295(
296	thread_act_t thread,
297	thread_policy_flavor_t flavor,
298	thread_policy_t policy_info,
299	mach_msg_type_number_t *policy_infoCnt,
300	boolean_t *get_default
301);
302
303/* Routine thread_sample */
304#ifdef	mig_external
305mig_external
306#else
307extern
308#endif	/* mig_external */
309kern_return_t thread_sample
310(
311	thread_act_t thread,
312	mach_port_t reply
313);
314
315/* Routine etap_trace_thread */
316#ifdef	mig_external
317mig_external
318#else
319extern
320#endif	/* mig_external */
321kern_return_t etap_trace_thread
322(
323	thread_act_t target_act,
324	boolean_t trace_status
325);
326
327/* Routine thread_assign */
328#ifdef	mig_external
329mig_external
330#else
331extern
332#endif	/* mig_external */
333kern_return_t thread_assign
334(
335	thread_act_t thread,
336	processor_set_t new_set
337);
338
339/* Routine thread_assign_default */
340#ifdef	mig_external
341mig_external
342#else
343extern
344#endif	/* mig_external */
345kern_return_t thread_assign_default
346(
347	thread_act_t thread
348);
349
350/* Routine thread_get_assignment */
351#ifdef	mig_external
352mig_external
353#else
354extern
355#endif	/* mig_external */
356kern_return_t thread_get_assignment
357(
358	thread_act_t thread,
359	processor_set_name_t *assigned_set
360);
361
362/* Routine thread_set_policy */
363#ifdef	mig_external
364mig_external
365#else
366extern
367#endif	/* mig_external */
368kern_return_t thread_set_policy
369(
370	thread_act_t thr_act,
371	processor_set_t pset,
372	policy_t policy,
373	policy_base_t base,
374	mach_msg_type_number_t baseCnt,
375	policy_limit_t limit,
376	mach_msg_type_number_t limitCnt
377);
378
379__END_DECLS
380
381/********************** Caution **************************/
382/* The following data types should be used to calculate  */
383/* maximum message sizes only. The actual message may be */
384/* smaller, and the position of the arguments within the */
385/* message layout may vary from what is presented here.  */
386/* For example, if any of the arguments are variable-    */
387/* sized, and less than the maximum is sent, the data    */
388/* will be packed tight in the actual message to reduce  */
389/* the presence of holes.                                */
390/********************** Caution **************************/
391
392/* typedefs for all requests */
393
394#ifndef __Request__thread_act_subsystem__defined
395#define __Request__thread_act_subsystem__defined
396
397#ifdef  __MigPackStructs
398#pragma pack(4)
399#endif
400	typedef struct {
401		mach_msg_header_t Head;
402	} __Request__thread_terminate_t;
403#ifdef  __MigPackStructs
404#pragma pack()
405#endif
406
407#ifdef  __MigPackStructs
408#pragma pack(4)
409#endif
410	typedef struct {
411		mach_msg_header_t Head;
412		NDR_record_t NDR;
413		int flavor;
414		mach_msg_type_number_t old_stateCnt;
415	} __Request__act_get_state_t;
416#ifdef  __MigPackStructs
417#pragma pack()
418#endif
419
420#ifdef  __MigPackStructs
421#pragma pack(4)
422#endif
423	typedef struct {
424		mach_msg_header_t Head;
425		NDR_record_t NDR;
426		int flavor;
427		mach_msg_type_number_t new_stateCnt;
428		natural_t new_state[144];
429	} __Request__act_set_state_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		NDR_record_t NDR;
440		thread_state_flavor_t flavor;
441		mach_msg_type_number_t old_stateCnt;
442	} __Request__thread_get_state_t;
443#ifdef  __MigPackStructs
444#pragma pack()
445#endif
446
447#ifdef  __MigPackStructs
448#pragma pack(4)
449#endif
450	typedef struct {
451		mach_msg_header_t Head;
452		NDR_record_t NDR;
453		thread_state_flavor_t flavor;
454		mach_msg_type_number_t new_stateCnt;
455		natural_t new_state[144];
456	} __Request__thread_set_state_t;
457#ifdef  __MigPackStructs
458#pragma pack()
459#endif
460
461#ifdef  __MigPackStructs
462#pragma pack(4)
463#endif
464	typedef struct {
465		mach_msg_header_t Head;
466	} __Request__thread_suspend_t;
467#ifdef  __MigPackStructs
468#pragma pack()
469#endif
470
471#ifdef  __MigPackStructs
472#pragma pack(4)
473#endif
474	typedef struct {
475		mach_msg_header_t Head;
476	} __Request__thread_resume_t;
477#ifdef  __MigPackStructs
478#pragma pack()
479#endif
480
481#ifdef  __MigPackStructs
482#pragma pack(4)
483#endif
484	typedef struct {
485		mach_msg_header_t Head;
486	} __Request__thread_abort_t;
487#ifdef  __MigPackStructs
488#pragma pack()
489#endif
490
491#ifdef  __MigPackStructs
492#pragma pack(4)
493#endif
494	typedef struct {
495		mach_msg_header_t Head;
496	} __Request__thread_abort_safely_t;
497#ifdef  __MigPackStructs
498#pragma pack()
499#endif
500
501#ifdef  __MigPackStructs
502#pragma pack(4)
503#endif
504	typedef struct {
505		mach_msg_header_t Head;
506	} __Request__thread_depress_abort_t;
507#ifdef  __MigPackStructs
508#pragma pack()
509#endif
510
511#ifdef  __MigPackStructs
512#pragma pack(4)
513#endif
514	typedef struct {
515		mach_msg_header_t Head;
516		NDR_record_t NDR;
517		int which_port;
518	} __Request__thread_get_special_port_t;
519#ifdef  __MigPackStructs
520#pragma pack()
521#endif
522
523#ifdef  __MigPackStructs
524#pragma pack(4)
525#endif
526	typedef struct {
527		mach_msg_header_t Head;
528		/* start of the kernel processed data */
529		mach_msg_body_t msgh_body;
530		mach_msg_port_descriptor_t special_port;
531		/* end of the kernel processed data */
532		NDR_record_t NDR;
533		int which_port;
534	} __Request__thread_set_special_port_t;
535#ifdef  __MigPackStructs
536#pragma pack()
537#endif
538
539#ifdef  __MigPackStructs
540#pragma pack(4)
541#endif
542	typedef struct {
543		mach_msg_header_t Head;
544		NDR_record_t NDR;
545		thread_flavor_t flavor;
546		mach_msg_type_number_t thread_info_outCnt;
547	} __Request__thread_info_t;
548#ifdef  __MigPackStructs
549#pragma pack()
550#endif
551
552#ifdef  __MigPackStructs
553#pragma pack(4)
554#endif
555	typedef struct {
556		mach_msg_header_t Head;
557		/* start of the kernel processed data */
558		mach_msg_body_t msgh_body;
559		mach_msg_port_descriptor_t new_port;
560		/* end of the kernel processed data */
561		NDR_record_t NDR;
562		exception_mask_t exception_mask;
563		exception_behavior_t behavior;
564		thread_state_flavor_t new_flavor;
565	} __Request__thread_set_exception_ports_t;
566#ifdef  __MigPackStructs
567#pragma pack()
568#endif
569
570#ifdef  __MigPackStructs
571#pragma pack(4)
572#endif
573	typedef struct {
574		mach_msg_header_t Head;
575		NDR_record_t NDR;
576		exception_mask_t exception_mask;
577	} __Request__thread_get_exception_ports_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_port_descriptor_t new_port;
590		/* end of the kernel processed data */
591		NDR_record_t NDR;
592		exception_mask_t exception_mask;
593		exception_behavior_t behavior;
594		thread_state_flavor_t new_flavor;
595	} __Request__thread_swap_exception_ports_t;
596#ifdef  __MigPackStructs
597#pragma pack()
598#endif
599
600#ifdef  __MigPackStructs
601#pragma pack(4)
602#endif
603	typedef struct {
604		mach_msg_header_t Head;
605		NDR_record_t NDR;
606		policy_t policy;
607		mach_msg_type_number_t baseCnt;
608		integer_t base[5];
609		boolean_t set_limit;
610	} __Request__thread_policy_t;
611#ifdef  __MigPackStructs
612#pragma pack()
613#endif
614
615#ifdef  __MigPackStructs
616#pragma pack(4)
617#endif
618	typedef struct {
619		mach_msg_header_t Head;
620		NDR_record_t NDR;
621		thread_policy_flavor_t flavor;
622		mach_msg_type_number_t policy_infoCnt;
623		integer_t policy_info[16];
624	} __Request__thread_policy_set_t;
625#ifdef  __MigPackStructs
626#pragma pack()
627#endif
628
629#ifdef  __MigPackStructs
630#pragma pack(4)
631#endif
632	typedef struct {
633		mach_msg_header_t Head;
634		NDR_record_t NDR;
635		thread_policy_flavor_t flavor;
636		mach_msg_type_number_t policy_infoCnt;
637		boolean_t get_default;
638	} __Request__thread_policy_get_t;
639#ifdef  __MigPackStructs
640#pragma pack()
641#endif
642
643#ifdef  __MigPackStructs
644#pragma pack(4)
645#endif
646	typedef struct {
647		mach_msg_header_t Head;
648		/* start of the kernel processed data */
649		mach_msg_body_t msgh_body;
650		mach_msg_port_descriptor_t reply;
651		/* end of the kernel processed data */
652	} __Request__thread_sample_t;
653#ifdef  __MigPackStructs
654#pragma pack()
655#endif
656
657#ifdef  __MigPackStructs
658#pragma pack(4)
659#endif
660	typedef struct {
661		mach_msg_header_t Head;
662		NDR_record_t NDR;
663		boolean_t trace_status;
664	} __Request__etap_trace_thread_t;
665#ifdef  __MigPackStructs
666#pragma pack()
667#endif
668
669#ifdef  __MigPackStructs
670#pragma pack(4)
671#endif
672	typedef struct {
673		mach_msg_header_t Head;
674		/* start of the kernel processed data */
675		mach_msg_body_t msgh_body;
676		mach_msg_port_descriptor_t new_set;
677		/* end of the kernel processed data */
678	} __Request__thread_assign_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_assign_default_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	} __Request__thread_get_assignment_t;
699#ifdef  __MigPackStructs
700#pragma pack()
701#endif
702
703#ifdef  __MigPackStructs
704#pragma pack(4)
705#endif
706	typedef struct {
707		mach_msg_header_t Head;
708		/* start of the kernel processed data */
709		mach_msg_body_t msgh_body;
710		mach_msg_port_descriptor_t pset;
711		/* end of the kernel processed data */
712		NDR_record_t NDR;
713		policy_t policy;
714		mach_msg_type_number_t baseCnt;
715		integer_t base[5];
716		mach_msg_type_number_t limitCnt;
717		integer_t limit[1];
718	} __Request__thread_set_policy_t;
719#ifdef  __MigPackStructs
720#pragma pack()
721#endif
722#endif /* !__Request__thread_act_subsystem__defined */
723
724/* union of all requests */
725
726#ifndef __RequestUnion__thread_act_subsystem__defined
727#define __RequestUnion__thread_act_subsystem__defined
728union __RequestUnion__thread_act_subsystem {
729	__Request__thread_terminate_t Request_thread_terminate;
730	__Request__act_get_state_t Request_act_get_state;
731	__Request__act_set_state_t Request_act_set_state;
732	__Request__thread_get_state_t Request_thread_get_state;
733	__Request__thread_set_state_t Request_thread_set_state;
734	__Request__thread_suspend_t Request_thread_suspend;
735	__Request__thread_resume_t Request_thread_resume;
736	__Request__thread_abort_t Request_thread_abort;
737	__Request__thread_abort_safely_t Request_thread_abort_safely;
738	__Request__thread_depress_abort_t Request_thread_depress_abort;
739	__Request__thread_get_special_port_t Request_thread_get_special_port;
740	__Request__thread_set_special_port_t Request_thread_set_special_port;
741	__Request__thread_info_t Request_thread_info;
742	__Request__thread_set_exception_ports_t Request_thread_set_exception_ports;
743	__Request__thread_get_exception_ports_t Request_thread_get_exception_ports;
744	__Request__thread_swap_exception_ports_t Request_thread_swap_exception_ports;
745	__Request__thread_policy_t Request_thread_policy;
746	__Request__thread_policy_set_t Request_thread_policy_set;
747	__Request__thread_policy_get_t Request_thread_policy_get;
748	__Request__thread_sample_t Request_thread_sample;
749	__Request__etap_trace_thread_t Request_etap_trace_thread;
750	__Request__thread_assign_t Request_thread_assign;
751	__Request__thread_assign_default_t Request_thread_assign_default;
752	__Request__thread_get_assignment_t Request_thread_get_assignment;
753	__Request__thread_set_policy_t Request_thread_set_policy;
754};
755#endif /* !__RequestUnion__thread_act_subsystem__defined */
756/* typedefs for all replies */
757
758#ifndef __Reply__thread_act_subsystem__defined
759#define __Reply__thread_act_subsystem__defined
760
761#ifdef  __MigPackStructs
762#pragma pack(4)
763#endif
764	typedef struct {
765		mach_msg_header_t Head;
766		NDR_record_t NDR;
767		kern_return_t RetCode;
768	} __Reply__thread_terminate_t;
769#ifdef  __MigPackStructs
770#pragma pack()
771#endif
772
773#ifdef  __MigPackStructs
774#pragma pack(4)
775#endif
776	typedef struct {
777		mach_msg_header_t Head;
778		NDR_record_t NDR;
779		kern_return_t RetCode;
780		mach_msg_type_number_t old_stateCnt;
781		natural_t old_state[144];
782	} __Reply__act_get_state_t;
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		kern_return_t RetCode;
794	} __Reply__act_set_state_t;
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		NDR_record_t NDR;
805		kern_return_t RetCode;
806		mach_msg_type_number_t old_stateCnt;
807		natural_t old_state[144];
808	} __Reply__thread_get_state_t;
809#ifdef  __MigPackStructs
810#pragma pack()
811#endif
812
813#ifdef  __MigPackStructs
814#pragma pack(4)
815#endif
816	typedef struct {
817		mach_msg_header_t Head;
818		NDR_record_t NDR;
819		kern_return_t RetCode;
820	} __Reply__thread_set_state_t;
821#ifdef  __MigPackStructs
822#pragma pack()
823#endif
824
825#ifdef  __MigPackStructs
826#pragma pack(4)
827#endif
828	typedef struct {
829		mach_msg_header_t Head;
830		NDR_record_t NDR;
831		kern_return_t RetCode;
832	} __Reply__thread_suspend_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		NDR_record_t NDR;
843		kern_return_t RetCode;
844	} __Reply__thread_resume_t;
845#ifdef  __MigPackStructs
846#pragma pack()
847#endif
848
849#ifdef  __MigPackStructs
850#pragma pack(4)
851#endif
852	typedef struct {
853		mach_msg_header_t Head;
854		NDR_record_t NDR;
855		kern_return_t RetCode;
856	} __Reply__thread_abort_t;
857#ifdef  __MigPackStructs
858#pragma pack()
859#endif
860
861#ifdef  __MigPackStructs
862#pragma pack(4)
863#endif
864	typedef struct {
865		mach_msg_header_t Head;
866		NDR_record_t NDR;
867		kern_return_t RetCode;
868	} __Reply__thread_abort_safely_t;
869#ifdef  __MigPackStructs
870#pragma pack()
871#endif
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	} __Reply__thread_depress_abort_t;
881#ifdef  __MigPackStructs
882#pragma pack()
883#endif
884
885#ifdef  __MigPackStructs
886#pragma pack(4)
887#endif
888	typedef struct {
889		mach_msg_header_t Head;
890		/* start of the kernel processed data */
891		mach_msg_body_t msgh_body;
892		mach_msg_port_descriptor_t special_port;
893		/* end of the kernel processed data */
894	} __Reply__thread_get_special_port_t;
895#ifdef  __MigPackStructs
896#pragma pack()
897#endif
898
899#ifdef  __MigPackStructs
900#pragma pack(4)
901#endif
902	typedef struct {
903		mach_msg_header_t Head;
904		NDR_record_t NDR;
905		kern_return_t RetCode;
906	} __Reply__thread_set_special_port_t;
907#ifdef  __MigPackStructs
908#pragma pack()
909#endif
910
911#ifdef  __MigPackStructs
912#pragma pack(4)
913#endif
914	typedef struct {
915		mach_msg_header_t Head;
916		NDR_record_t NDR;
917		kern_return_t RetCode;
918		mach_msg_type_number_t thread_info_outCnt;
919		integer_t thread_info_out[12];
920	} __Reply__thread_info_t;
921#ifdef  __MigPackStructs
922#pragma pack()
923#endif
924
925#ifdef  __MigPackStructs
926#pragma pack(4)
927#endif
928	typedef struct {
929		mach_msg_header_t Head;
930		NDR_record_t NDR;
931		kern_return_t RetCode;
932	} __Reply__thread_set_exception_ports_t;
933#ifdef  __MigPackStructs
934#pragma pack()
935#endif
936
937#ifdef  __MigPackStructs
938#pragma pack(4)
939#endif
940	typedef struct {
941		mach_msg_header_t Head;
942		/* start of the kernel processed data */
943		mach_msg_body_t msgh_body;
944		mach_msg_port_descriptor_t old_handlers[32];
945		/* end of the kernel processed data */
946		NDR_record_t NDR;
947		mach_msg_type_number_t masksCnt;
948		exception_mask_t masks[32];
949		exception_behavior_t old_behaviors[32];
950		thread_state_flavor_t old_flavors[32];
951	} __Reply__thread_get_exception_ports_t;
952#ifdef  __MigPackStructs
953#pragma pack()
954#endif
955
956#ifdef  __MigPackStructs
957#pragma pack(4)
958#endif
959	typedef struct {
960		mach_msg_header_t Head;
961		/* start of the kernel processed data */
962		mach_msg_body_t msgh_body;
963		mach_msg_port_descriptor_t old_handlers[32];
964		/* end of the kernel processed data */
965		NDR_record_t NDR;
966		mach_msg_type_number_t masksCnt;
967		exception_mask_t masks[32];
968		exception_behavior_t old_behaviors[32];
969		thread_state_flavor_t old_flavors[32];
970	} __Reply__thread_swap_exception_ports_t;
971#ifdef  __MigPackStructs
972#pragma pack()
973#endif
974
975#ifdef  __MigPackStructs
976#pragma pack(4)
977#endif
978	typedef struct {
979		mach_msg_header_t Head;
980		NDR_record_t NDR;
981		kern_return_t RetCode;
982	} __Reply__thread_policy_t;
983#ifdef  __MigPackStructs
984#pragma pack()
985#endif
986
987#ifdef  __MigPackStructs
988#pragma pack(4)
989#endif
990	typedef struct {
991		mach_msg_header_t Head;
992		NDR_record_t NDR;
993		kern_return_t RetCode;
994	} __Reply__thread_policy_set_t;
995#ifdef  __MigPackStructs
996#pragma pack()
997#endif
998
999#ifdef  __MigPackStructs
1000#pragma pack(4)
1001#endif
1002	typedef struct {
1003		mach_msg_header_t Head;
1004		NDR_record_t NDR;
1005		kern_return_t RetCode;
1006		mach_msg_type_number_t policy_infoCnt;
1007		integer_t policy_info[16];
1008		boolean_t get_default;
1009	} __Reply__thread_policy_get_t;
1010#ifdef  __MigPackStructs
1011#pragma pack()
1012#endif
1013
1014#ifdef  __MigPackStructs
1015#pragma pack(4)
1016#endif
1017	typedef struct {
1018		mach_msg_header_t Head;
1019		NDR_record_t NDR;
1020		kern_return_t RetCode;
1021	} __Reply__thread_sample_t;
1022#ifdef  __MigPackStructs
1023#pragma pack()
1024#endif
1025
1026#ifdef  __MigPackStructs
1027#pragma pack(4)
1028#endif
1029	typedef struct {
1030		mach_msg_header_t Head;
1031		NDR_record_t NDR;
1032		kern_return_t RetCode;
1033	} __Reply__etap_trace_thread_t;
1034#ifdef  __MigPackStructs
1035#pragma pack()
1036#endif
1037
1038#ifdef  __MigPackStructs
1039#pragma pack(4)
1040#endif
1041	typedef struct {
1042		mach_msg_header_t Head;
1043		NDR_record_t NDR;
1044		kern_return_t RetCode;
1045	} __Reply__thread_assign_t;
1046#ifdef  __MigPackStructs
1047#pragma pack()
1048#endif
1049
1050#ifdef  __MigPackStructs
1051#pragma pack(4)
1052#endif
1053	typedef struct {
1054		mach_msg_header_t Head;
1055		NDR_record_t NDR;
1056		kern_return_t RetCode;
1057	} __Reply__thread_assign_default_t;
1058#ifdef  __MigPackStructs
1059#pragma pack()
1060#endif
1061
1062#ifdef  __MigPackStructs
1063#pragma pack(4)
1064#endif
1065	typedef struct {
1066		mach_msg_header_t Head;
1067		/* start of the kernel processed data */
1068		mach_msg_body_t msgh_body;
1069		mach_msg_port_descriptor_t assigned_set;
1070		/* end of the kernel processed data */
1071	} __Reply__thread_get_assignment_t;
1072#ifdef  __MigPackStructs
1073#pragma pack()
1074#endif
1075
1076#ifdef  __MigPackStructs
1077#pragma pack(4)
1078#endif
1079	typedef struct {
1080		mach_msg_header_t Head;
1081		NDR_record_t NDR;
1082		kern_return_t RetCode;
1083	} __Reply__thread_set_policy_t;
1084#ifdef  __MigPackStructs
1085#pragma pack()
1086#endif
1087#endif /* !__Reply__thread_act_subsystem__defined */
1088
1089/* union of all replies */
1090
1091#ifndef __ReplyUnion__thread_act_subsystem__defined
1092#define __ReplyUnion__thread_act_subsystem__defined
1093union __ReplyUnion__thread_act_subsystem {
1094	__Reply__thread_terminate_t Reply_thread_terminate;
1095	__Reply__act_get_state_t Reply_act_get_state;
1096	__Reply__act_set_state_t Reply_act_set_state;
1097	__Reply__thread_get_state_t Reply_thread_get_state;
1098	__Reply__thread_set_state_t Reply_thread_set_state;
1099	__Reply__thread_suspend_t Reply_thread_suspend;
1100	__Reply__thread_resume_t Reply_thread_resume;
1101	__Reply__thread_abort_t Reply_thread_abort;
1102	__Reply__thread_abort_safely_t Reply_thread_abort_safely;
1103	__Reply__thread_depress_abort_t Reply_thread_depress_abort;
1104	__Reply__thread_get_special_port_t Reply_thread_get_special_port;
1105	__Reply__thread_set_special_port_t Reply_thread_set_special_port;
1106	__Reply__thread_info_t Reply_thread_info;
1107	__Reply__thread_set_exception_ports_t Reply_thread_set_exception_ports;
1108	__Reply__thread_get_exception_ports_t Reply_thread_get_exception_ports;
1109	__Reply__thread_swap_exception_ports_t Reply_thread_swap_exception_ports;
1110	__Reply__thread_policy_t Reply_thread_policy;
1111	__Reply__thread_policy_set_t Reply_thread_policy_set;
1112	__Reply__thread_policy_get_t Reply_thread_policy_get;
1113	__Reply__thread_sample_t Reply_thread_sample;
1114	__Reply__etap_trace_thread_t Reply_etap_trace_thread;
1115	__Reply__thread_assign_t Reply_thread_assign;
1116	__Reply__thread_assign_default_t Reply_thread_assign_default;
1117	__Reply__thread_get_assignment_t Reply_thread_get_assignment;
1118	__Reply__thread_set_policy_t Reply_thread_set_policy;
1119};
1120#endif /* !__RequestUnion__thread_act_subsystem__defined */
1121
1122#ifndef subsystem_to_name_map_thread_act
1123#define subsystem_to_name_map_thread_act \
1124    { "thread_terminate", 3600 },\
1125    { "act_get_state", 3601 },\
1126    { "act_set_state", 3602 },\
1127    { "thread_get_state", 3603 },\
1128    { "thread_set_state", 3604 },\
1129    { "thread_suspend", 3605 },\
1130    { "thread_resume", 3606 },\
1131    { "thread_abort", 3607 },\
1132    { "thread_abort_safely", 3608 },\
1133    { "thread_depress_abort", 3609 },\
1134    { "thread_get_special_port", 3610 },\
1135    { "thread_set_special_port", 3611 },\
1136    { "thread_info", 3612 },\
1137    { "thread_set_exception_ports", 3613 },\
1138    { "thread_get_exception_ports", 3614 },\
1139    { "thread_swap_exception_ports", 3615 },\
1140    { "thread_policy", 3616 },\
1141    { "thread_policy_set", 3617 },\
1142    { "thread_policy_get", 3618 },\
1143    { "thread_sample", 3619 },\
1144    { "etap_trace_thread", 3620 },\
1145    { "thread_assign", 3621 },\
1146    { "thread_assign_default", 3622 },\
1147    { "thread_get_assignment", 3623 },\
1148    { "thread_set_policy", 3624 }
1149#endif
1150
1151#ifdef __AfterMigUserHeader
1152__AfterMigUserHeader
1153#endif /* __AfterMigUserHeader */
1154
1155#endif	 /* _thread_act_user_ */
1156