master
  1#ifndef	_processor_set_user_
  2#define	_processor_set_user_
  3
  4/* Module processor_set */
  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#ifndef __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS_CSTRING_ATTR
 29#define __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS_CSTRING_COUNTEDBY_ATTR(C) __unsafe_indexable
 30#endif
 31	extern int mig_strncpy_zerofill(char * dest, const char * src, int len) __attribute__((weak_import));
 32#ifdef __cplusplus
 33}
 34#endif
 35#endif /* __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__ */
 36#endif /* __has_include(<mach/mig_strncpy_zerofill_support.h>) */
 37#endif /* __has_include */
 38	
 39/* END MIG_STRNCPY_ZEROFILL CODE */
 40
 41
 42#ifdef AUTOTEST
 43#ifndef FUNCTION_PTR_T
 44#define FUNCTION_PTR_T
 45typedef void (*function_ptr_t)(mach_port_t, char *, mach_msg_type_number_t);
 46typedef struct {
 47        char            * name;
 48        function_ptr_t  function;
 49} function_table_entry;
 50typedef function_table_entry   *function_table_t;
 51#endif /* FUNCTION_PTR_T */
 52#endif /* AUTOTEST */
 53
 54#ifndef	processor_set_MSG_COUNT
 55#define	processor_set_MSG_COUNT	11
 56#endif	/* processor_set_MSG_COUNT */
 57
 58#include <Availability.h>
 59#include <mach/std_types.h>
 60#include <mach/mig.h>
 61#include <mach/mig.h>
 62#include <mach/mach_types.h>
 63
 64#ifdef __BeforeMigUserHeader
 65__BeforeMigUserHeader
 66#endif /* __BeforeMigUserHeader */
 67
 68#include <sys/cdefs.h>
 69__BEGIN_DECLS
 70
 71
 72/* Routine processor_set_statistics */
 73#ifdef	mig_external
 74mig_external
 75#else
 76extern
 77#endif	/* mig_external */
 78kern_return_t processor_set_statistics
 79(
 80	processor_set_name_t pset,
 81	processor_set_flavor_t flavor,
 82	processor_set_info_t info_out,
 83	mach_msg_type_number_t *info_outCnt
 84);
 85
 86/* Routine processor_set_destroy */
 87#ifdef	mig_external
 88mig_external
 89#else
 90extern
 91#endif	/* mig_external */
 92kern_return_t processor_set_destroy
 93(
 94	processor_set_t set
 95);
 96
 97/* Routine processor_set_max_priority */
 98#ifdef	mig_external
 99mig_external
100#else
101extern
102#endif	/* mig_external */
103kern_return_t processor_set_max_priority
104(
105	processor_set_t processor_set,
106	int max_priority,
107	boolean_t change_threads
108);
109
110/* Routine processor_set_policy_enable */
111#ifdef	mig_external
112mig_external
113#else
114extern
115#endif	/* mig_external */
116kern_return_t processor_set_policy_enable
117(
118	processor_set_t processor_set,
119	int policy
120);
121
122/* Routine processor_set_policy_disable */
123#ifdef	mig_external
124mig_external
125#else
126extern
127#endif	/* mig_external */
128kern_return_t processor_set_policy_disable
129(
130	processor_set_t processor_set,
131	int policy,
132	boolean_t change_threads
133);
134
135/* Routine processor_set_tasks */
136#ifdef	mig_external
137mig_external
138#else
139extern
140#endif	/* mig_external */
141kern_return_t processor_set_tasks
142(
143	processor_set_t processor_set,
144	task_array_t *task_list,
145	mach_msg_type_number_t *task_listCnt
146);
147
148/* Routine processor_set_threads */
149#ifdef	mig_external
150mig_external
151#else
152extern
153#endif	/* mig_external */
154kern_return_t processor_set_threads
155(
156	processor_set_t processor_set,
157	thread_act_array_t *thread_list,
158	mach_msg_type_number_t *thread_listCnt
159);
160
161/* Routine processor_set_policy_control */
162#ifdef	mig_external
163mig_external
164#else
165extern
166#endif	/* mig_external */
167kern_return_t processor_set_policy_control
168(
169	processor_set_t pset,
170	processor_set_flavor_t flavor,
171	processor_set_info_t policy_info,
172	mach_msg_type_number_t policy_infoCnt,
173	boolean_t change
174);
175
176/* Routine processor_set_stack_usage */
177#ifdef	mig_external
178mig_external
179#else
180extern
181#endif	/* mig_external */
182kern_return_t processor_set_stack_usage
183(
184	processor_set_t pset,
185	unsigned *ltotal,
186	vm_size_t *space,
187	vm_size_t *resident,
188	vm_size_t *maxusage,
189	vm_offset_t *maxstack
190);
191
192/* Routine processor_set_info */
193#ifdef	mig_external
194mig_external
195#else
196extern
197#endif	/* mig_external */
198kern_return_t processor_set_info
199(
200	processor_set_name_t set_name,
201	int flavor,
202	host_t *host,
203	processor_set_info_t info_out,
204	mach_msg_type_number_t *info_outCnt
205);
206
207/* Routine processor_set_tasks_with_flavor */
208#ifdef	mig_external
209mig_external
210#else
211extern
212#endif	/* mig_external */
213kern_return_t processor_set_tasks_with_flavor
214(
215	processor_set_t processor_set,
216	mach_task_flavor_t flavor,
217	task_array_t *task_list,
218	mach_msg_type_number_t *task_listCnt
219);
220
221__END_DECLS
222
223/********************** Caution **************************/
224/* The following data types should be used to calculate  */
225/* maximum message sizes only. The actual message may be */
226/* smaller, and the position of the arguments within the */
227/* message layout may vary from what is presented here.  */
228/* For example, if any of the arguments are variable-    */
229/* sized, and less than the maximum is sent, the data    */
230/* will be packed tight in the actual message to reduce  */
231/* the presence of holes.                                */
232/********************** Caution **************************/
233
234/* typedefs for all requests */
235
236#ifndef __Request__processor_set_subsystem__defined
237#define __Request__processor_set_subsystem__defined
238
239#ifdef  __MigPackStructs
240#pragma pack(push, 4)
241#endif
242	typedef struct {
243		mach_msg_header_t Head;
244		NDR_record_t NDR;
245		processor_set_flavor_t flavor;
246		mach_msg_type_number_t info_outCnt;
247	} __Request__processor_set_statistics_t __attribute__((unused));
248#ifdef  __MigPackStructs
249#pragma pack(pop)
250#endif
251
252#ifdef  __MigPackStructs
253#pragma pack(push, 4)
254#endif
255	typedef struct {
256		mach_msg_header_t Head;
257	} __Request__processor_set_destroy_t __attribute__((unused));
258#ifdef  __MigPackStructs
259#pragma pack(pop)
260#endif
261
262#ifdef  __MigPackStructs
263#pragma pack(push, 4)
264#endif
265	typedef struct {
266		mach_msg_header_t Head;
267		NDR_record_t NDR;
268		int max_priority;
269		boolean_t change_threads;
270	} __Request__processor_set_max_priority_t __attribute__((unused));
271#ifdef  __MigPackStructs
272#pragma pack(pop)
273#endif
274
275#ifdef  __MigPackStructs
276#pragma pack(push, 4)
277#endif
278	typedef struct {
279		mach_msg_header_t Head;
280		NDR_record_t NDR;
281		int policy;
282	} __Request__processor_set_policy_enable_t __attribute__((unused));
283#ifdef  __MigPackStructs
284#pragma pack(pop)
285#endif
286
287#ifdef  __MigPackStructs
288#pragma pack(push, 4)
289#endif
290	typedef struct {
291		mach_msg_header_t Head;
292		NDR_record_t NDR;
293		int policy;
294		boolean_t change_threads;
295	} __Request__processor_set_policy_disable_t __attribute__((unused));
296#ifdef  __MigPackStructs
297#pragma pack(pop)
298#endif
299
300#ifdef  __MigPackStructs
301#pragma pack(push, 4)
302#endif
303	typedef struct {
304		mach_msg_header_t Head;
305	} __Request__processor_set_tasks_t __attribute__((unused));
306#ifdef  __MigPackStructs
307#pragma pack(pop)
308#endif
309
310#ifdef  __MigPackStructs
311#pragma pack(push, 4)
312#endif
313	typedef struct {
314		mach_msg_header_t Head;
315	} __Request__processor_set_threads_t __attribute__((unused));
316#ifdef  __MigPackStructs
317#pragma pack(pop)
318#endif
319
320#ifdef  __MigPackStructs
321#pragma pack(push, 4)
322#endif
323	typedef struct {
324		mach_msg_header_t Head;
325		NDR_record_t NDR;
326		processor_set_flavor_t flavor;
327		mach_msg_type_number_t policy_infoCnt;
328		integer_t policy_info[5];
329		boolean_t change;
330	} __Request__processor_set_policy_control_t __attribute__((unused));
331#ifdef  __MigPackStructs
332#pragma pack(pop)
333#endif
334
335#ifdef  __MigPackStructs
336#pragma pack(push, 4)
337#endif
338	typedef struct {
339		mach_msg_header_t Head;
340	} __Request__processor_set_stack_usage_t __attribute__((unused));
341#ifdef  __MigPackStructs
342#pragma pack(pop)
343#endif
344
345#ifdef  __MigPackStructs
346#pragma pack(push, 4)
347#endif
348	typedef struct {
349		mach_msg_header_t Head;
350		NDR_record_t NDR;
351		int flavor;
352		mach_msg_type_number_t info_outCnt;
353	} __Request__processor_set_info_t __attribute__((unused));
354#ifdef  __MigPackStructs
355#pragma pack(pop)
356#endif
357
358#ifdef  __MigPackStructs
359#pragma pack(push, 4)
360#endif
361	typedef struct {
362		mach_msg_header_t Head;
363		NDR_record_t NDR;
364		mach_task_flavor_t flavor;
365	} __Request__processor_set_tasks_with_flavor_t __attribute__((unused));
366#ifdef  __MigPackStructs
367#pragma pack(pop)
368#endif
369#endif /* !__Request__processor_set_subsystem__defined */
370
371/* union of all requests */
372
373#ifndef __RequestUnion__processor_set_subsystem__defined
374#define __RequestUnion__processor_set_subsystem__defined
375union __RequestUnion__processor_set_subsystem {
376	__Request__processor_set_statistics_t Request_processor_set_statistics;
377	__Request__processor_set_destroy_t Request_processor_set_destroy;
378	__Request__processor_set_max_priority_t Request_processor_set_max_priority;
379	__Request__processor_set_policy_enable_t Request_processor_set_policy_enable;
380	__Request__processor_set_policy_disable_t Request_processor_set_policy_disable;
381	__Request__processor_set_tasks_t Request_processor_set_tasks;
382	__Request__processor_set_threads_t Request_processor_set_threads;
383	__Request__processor_set_policy_control_t Request_processor_set_policy_control;
384	__Request__processor_set_stack_usage_t Request_processor_set_stack_usage;
385	__Request__processor_set_info_t Request_processor_set_info;
386	__Request__processor_set_tasks_with_flavor_t Request_processor_set_tasks_with_flavor;
387};
388#endif /* !__RequestUnion__processor_set_subsystem__defined */
389/* typedefs for all replies */
390
391#ifndef __Reply__processor_set_subsystem__defined
392#define __Reply__processor_set_subsystem__defined
393
394#ifdef  __MigPackStructs
395#pragma pack(push, 4)
396#endif
397	typedef struct {
398		mach_msg_header_t Head;
399		NDR_record_t NDR;
400		kern_return_t RetCode;
401		mach_msg_type_number_t info_outCnt;
402		integer_t info_out[5];
403	} __Reply__processor_set_statistics_t __attribute__((unused));
404#ifdef  __MigPackStructs
405#pragma pack(pop)
406#endif
407
408#ifdef  __MigPackStructs
409#pragma pack(push, 4)
410#endif
411	typedef struct {
412		mach_msg_header_t Head;
413		NDR_record_t NDR;
414		kern_return_t RetCode;
415	} __Reply__processor_set_destroy_t __attribute__((unused));
416#ifdef  __MigPackStructs
417#pragma pack(pop)
418#endif
419
420#ifdef  __MigPackStructs
421#pragma pack(push, 4)
422#endif
423	typedef struct {
424		mach_msg_header_t Head;
425		NDR_record_t NDR;
426		kern_return_t RetCode;
427	} __Reply__processor_set_max_priority_t __attribute__((unused));
428#ifdef  __MigPackStructs
429#pragma pack(pop)
430#endif
431
432#ifdef  __MigPackStructs
433#pragma pack(push, 4)
434#endif
435	typedef struct {
436		mach_msg_header_t Head;
437		NDR_record_t NDR;
438		kern_return_t RetCode;
439	} __Reply__processor_set_policy_enable_t __attribute__((unused));
440#ifdef  __MigPackStructs
441#pragma pack(pop)
442#endif
443
444#ifdef  __MigPackStructs
445#pragma pack(push, 4)
446#endif
447	typedef struct {
448		mach_msg_header_t Head;
449		NDR_record_t NDR;
450		kern_return_t RetCode;
451	} __Reply__processor_set_policy_disable_t __attribute__((unused));
452#ifdef  __MigPackStructs
453#pragma pack(pop)
454#endif
455
456#ifdef  __MigPackStructs
457#pragma pack(push, 4)
458#endif
459	typedef struct {
460		mach_msg_header_t Head;
461		/* start of the kernel processed data */
462		mach_msg_body_t msgh_body;
463		mach_msg_ool_ports_descriptor_t task_list;
464		/* end of the kernel processed data */
465		NDR_record_t NDR;
466		mach_msg_type_number_t task_listCnt;
467	} __Reply__processor_set_tasks_t __attribute__((unused));
468#ifdef  __MigPackStructs
469#pragma pack(pop)
470#endif
471
472#ifdef  __MigPackStructs
473#pragma pack(push, 4)
474#endif
475	typedef struct {
476		mach_msg_header_t Head;
477		/* start of the kernel processed data */
478		mach_msg_body_t msgh_body;
479		mach_msg_ool_ports_descriptor_t thread_list;
480		/* end of the kernel processed data */
481		NDR_record_t NDR;
482		mach_msg_type_number_t thread_listCnt;
483	} __Reply__processor_set_threads_t __attribute__((unused));
484#ifdef  __MigPackStructs
485#pragma pack(pop)
486#endif
487
488#ifdef  __MigPackStructs
489#pragma pack(push, 4)
490#endif
491	typedef struct {
492		mach_msg_header_t Head;
493		NDR_record_t NDR;
494		kern_return_t RetCode;
495	} __Reply__processor_set_policy_control_t __attribute__((unused));
496#ifdef  __MigPackStructs
497#pragma pack(pop)
498#endif
499
500#ifdef  __MigPackStructs
501#pragma pack(push, 4)
502#endif
503	typedef struct {
504		mach_msg_header_t Head;
505		NDR_record_t NDR;
506		kern_return_t RetCode;
507		unsigned ltotal;
508		vm_size_t space;
509		vm_size_t resident;
510		vm_size_t maxusage;
511		vm_offset_t maxstack;
512	} __Reply__processor_set_stack_usage_t __attribute__((unused));
513#ifdef  __MigPackStructs
514#pragma pack(pop)
515#endif
516
517#ifdef  __MigPackStructs
518#pragma pack(push, 4)
519#endif
520	typedef struct {
521		mach_msg_header_t Head;
522		/* start of the kernel processed data */
523		mach_msg_body_t msgh_body;
524		mach_msg_port_descriptor_t host;
525		/* end of the kernel processed data */
526		NDR_record_t NDR;
527		mach_msg_type_number_t info_outCnt;
528		integer_t info_out[5];
529	} __Reply__processor_set_info_t __attribute__((unused));
530#ifdef  __MigPackStructs
531#pragma pack(pop)
532#endif
533
534#ifdef  __MigPackStructs
535#pragma pack(push, 4)
536#endif
537	typedef struct {
538		mach_msg_header_t Head;
539		/* start of the kernel processed data */
540		mach_msg_body_t msgh_body;
541		mach_msg_ool_ports_descriptor_t task_list;
542		/* end of the kernel processed data */
543		NDR_record_t NDR;
544		mach_msg_type_number_t task_listCnt;
545	} __Reply__processor_set_tasks_with_flavor_t __attribute__((unused));
546#ifdef  __MigPackStructs
547#pragma pack(pop)
548#endif
549#endif /* !__Reply__processor_set_subsystem__defined */
550
551/* union of all replies */
552
553#ifndef __ReplyUnion__processor_set_subsystem__defined
554#define __ReplyUnion__processor_set_subsystem__defined
555union __ReplyUnion__processor_set_subsystem {
556	__Reply__processor_set_statistics_t Reply_processor_set_statistics;
557	__Reply__processor_set_destroy_t Reply_processor_set_destroy;
558	__Reply__processor_set_max_priority_t Reply_processor_set_max_priority;
559	__Reply__processor_set_policy_enable_t Reply_processor_set_policy_enable;
560	__Reply__processor_set_policy_disable_t Reply_processor_set_policy_disable;
561	__Reply__processor_set_tasks_t Reply_processor_set_tasks;
562	__Reply__processor_set_threads_t Reply_processor_set_threads;
563	__Reply__processor_set_policy_control_t Reply_processor_set_policy_control;
564	__Reply__processor_set_stack_usage_t Reply_processor_set_stack_usage;
565	__Reply__processor_set_info_t Reply_processor_set_info;
566	__Reply__processor_set_tasks_with_flavor_t Reply_processor_set_tasks_with_flavor;
567};
568#endif /* !__RequestUnion__processor_set_subsystem__defined */
569
570#ifndef subsystem_to_name_map_processor_set
571#define subsystem_to_name_map_processor_set \
572    { "processor_set_statistics", 4000 },\
573    { "processor_set_destroy", 4001 },\
574    { "processor_set_max_priority", 4002 },\
575    { "processor_set_policy_enable", 4003 },\
576    { "processor_set_policy_disable", 4004 },\
577    { "processor_set_tasks", 4005 },\
578    { "processor_set_threads", 4006 },\
579    { "processor_set_policy_control", 4007 },\
580    { "processor_set_stack_usage", 4008 },\
581    { "processor_set_info", 4009 },\
582    { "processor_set_tasks_with_flavor", 4010 }
583#endif
584
585#ifdef __AfterMigUserHeader
586__AfterMigUserHeader
587#endif /* __AfterMigUserHeader */
588
589#endif	 /* _processor_set_user_ */