#include <mach/task_policy.h> also included by <mach/mach.h>

mach/task_policy.h

These are the calls for accessing the policy parameters of a particular task. The extra 'get_default' parameter to the second call is IN/OUT as follows: 1) if asserted on the way in it indicates that the default values should be returned, not the ones currently set, in this case 'get_default' will always be asserted on return; 2) if unasserted on the way in, the current settings are desired and if still unasserted on return, then the info returned reflects the current settings, otherwise if 'get_default' returns asserted, it means that there are no current settings due to other parameters taking precedence, and the default ones are being returned instead.
21 macros · 8 typedefs · 3 enums · 2 structs

typedeftask_policy_flavor_t

typedef natural_t task_policy_flavor_t

typedeftask_policy_t

typedef integer_t *task_policy_t

macroTASK_CATEGORY_POLICY

#define TASK_CATEGORY_POLICY 1

macroTASK_SUPPRESSION_POLICY

#define TASK_SUPPRESSION_POLICY 3

macroTASK_POLICY_STATE

#define TASK_POLICY_STATE 4

macroTASK_BASE_QOS_POLICY

#define TASK_BASE_QOS_POLICY 8

macroTASK_OVERRIDE_QOS_POLICY

#define TASK_OVERRIDE_QOS_POLICY 9

macroTASK_BASE_LATENCY_QOS_POLICY

#define TASK_BASE_LATENCY_QOS_POLICY 10

macroTASK_BASE_THROUGHPUT_QOS_POLICY

#define TASK_BASE_THROUGHPUT_QOS_POLICY 11

enumtask_role

underlying type int
TASK_RENICED-1
TASK_UNSPECIFIED0
TASK_FOREGROUND_APPLICATION1
TASK_BACKGROUND_APPLICATION2
TASK_CONTROL_APPLICATION3
TASK_GRAPHICS_SERVER4
TASK_THROTTLE_APPLICATION5
TASK_NONUI_APPLICATION6
TASK_DEFAULT_APPLICATION7
TASK_DARWINBG_APPLICATION8
TASK_USER_INIT_APPLICATION9

typedeftask_role_t

typedef enum task_role task_role_t;

structtask_category_policy

size 4, align 4
task_role_trole

typedeftask_category_policy_data_t

typedef struct task_category_policy task_category_policy_data_t

typedeftask_category_policy_t

typedef struct task_category_policy *task_category_policy_t

macroTASK_CATEGORY_POLICY_COUNT

#define TASK_CATEGORY_POLICY_COUNT ((mach_msg_type_number_t)
	(sizeof (task_category_policy_data_t) / sizeof (integer_t)))

enumtask_latency_qos

underlying type unsigned int
LATENCY_QOS_TIER_UNSPECIFIED0
LATENCY_QOS_TIER_016711681
LATENCY_QOS_TIER_116711682
LATENCY_QOS_TIER_216711683
LATENCY_QOS_TIER_316711684
LATENCY_QOS_TIER_416711685
LATENCY_QOS_TIER_516711686

typedeftask_latency_qos_t

typedef integer_t task_latency_qos_t

enumtask_throughput_qos

underlying type unsigned int
THROUGHPUT_QOS_TIER_UNSPECIFIED0
THROUGHPUT_QOS_TIER_016646145
THROUGHPUT_QOS_TIER_116646146
THROUGHPUT_QOS_TIER_216646147
THROUGHPUT_QOS_TIER_316646148
THROUGHPUT_QOS_TIER_416646149
THROUGHPUT_QOS_TIER_516646150

macroLATENCY_QOS_LAUNCH_DEFAULT_TIER

#define LATENCY_QOS_LAUNCH_DEFAULT_TIER LATENCY_QOS_TIER_3

macroTHROUGHPUT_QOS_LAUNCH_DEFAULT_TIER

#define THROUGHPUT_QOS_LAUNCH_DEFAULT_TIER THROUGHPUT_QOS_TIER_3

typedeftask_throughput_qos_t

typedef integer_t task_throughput_qos_t

structtask_qos_policy

size 8, align 4
task_latency_qos_ttask_latency_qos_tier
task_throughput_qos_ttask_throughput_qos_tier

typedeftask_qos_policy_t

typedef struct task_qos_policy *task_qos_policy_t

macroTASK_QOS_POLICY_COUNT

#define TASK_QOS_POLICY_COUNT ((mach_msg_type_number_t)
	(sizeof (struct task_qos_policy) / sizeof (integer_t)))

macroPROC_FLAG_DARWINBG

These should be removed - they belong in proc_info.h
#define PROC_FLAG_DARWINBG 0x8000
process in darwin background

macroPROC_FLAG_EXT_DARWINBG

#define PROC_FLAG_EXT_DARWINBG 0x10000
process in darwin background - external enforcement

macroPROC_FLAG_IOS_APPLEDAEMON

#define PROC_FLAG_IOS_APPLEDAEMON 0x20000
process is apple ios daemon

macroPROC_FLAG_IOS_IMPPROMOTION

#define PROC_FLAG_IOS_IMPPROMOTION 0x80000
process is able to receive an importance donation

macroPROC_FLAG_ADAPTIVE

#define PROC_FLAG_ADAPTIVE 0x100000
Process is adaptive

macroPROC_FLAG_ADAPTIVE_IMPORTANT

#define PROC_FLAG_ADAPTIVE_IMPORTANT 0x200000
Process is adaptive, and is currently important

macroPROC_FLAG_IMPORTANCE_DONOR

#define PROC_FLAG_IMPORTANCE_DONOR 0x400000
Process is marked as an importance donor

macroPROC_FLAG_SUPPRESSED

#define PROC_FLAG_SUPPRESSED 0x800000
Process is suppressed

macroPROC_FLAG_APPLICATION

#define PROC_FLAG_APPLICATION 0x1000000
Process is an application

macroPROC_FLAG_IOS_APPLICATION

#define PROC_FLAG_IOS_APPLICATION PROC_FLAG_APPLICATION
Process is an application