X-Git-Url: https://git.saurik.com/apple/xnu.git/blobdiff_plain/1c79356b52d46aa6b508fb032f5ae709b1f2897b..13fec9890cf095cc781fdf7b8917cb03bf32dd4c:/osfmk/mach/thread_policy.h diff --git a/osfmk/mach/thread_policy.h b/osfmk/mach/thread_policy.h index 3f2e29cad..057d26831 100644 --- a/osfmk/mach/thread_policy.h +++ b/osfmk/mach/thread_policy.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000 Apple Computer, Inc. All rights reserved. + * Copyright (c) 2000-2005 Apple Computer, Inc. All rights reserved. * * @APPLE_LICENSE_HEADER_START@ * @@ -19,17 +19,6 @@ * * @APPLE_LICENSE_HEADER_END@ */ -/* - * Copyright (c) 2000 Apple Computer, Inc. All rights reserved. - * - * HISTORY - * - * 10 October 2000 (debo) - * Created. - * - * 30 November 2000 (debo) - * Final resolution of review feedback. - */ #ifndef _MACH_THREAD_POLICY_H_ #define _MACH_THREAD_POLICY_H_ @@ -58,13 +47,13 @@ typedef integer_t *thread_policy_t; /* kern_return_t thread_policy_set( - thread_act_t thread, + thread_t thread, thread_policy_flavor_t flavor, thread_policy_t policy_info, mach_msg_type_number_t count); kern_return_t thread_policy_get( - thread_act_t thread, + thread_t thread, thread_policy_flavor_t flavor, thread_policy_t policy_info, mach_msg_type_number_t *count, @@ -77,9 +66,10 @@ kern_return_t thread_policy_get( /* * THREAD_STANDARD_POLICY: * - * This is the standard [fair] scheduling mode, assigned to new - * threads. Specifying it explicitly is not typically required, - * but may be used to return a thread to the default mode setting. + * This is the standard (fair) scheduling mode, assigned to new + * threads. The thread will be given processor time in a manner + * which apportions approximately equal share to long running + * computations. * * Parameters: * [none] @@ -88,14 +78,37 @@ kern_return_t thread_policy_get( #define THREAD_STANDARD_POLICY 1 struct thread_standard_policy { - /* no data */ + natural_t no_data; }; typedef struct thread_standard_policy thread_standard_policy_data_t; typedef struct thread_standard_policy *thread_standard_policy_t; -#define THREAD_STANDARD_POLICY_COUNT \ - (sizeof (thread_standard_policy_data_t) / sizeof (integer_t)) +#define THREAD_STANDARD_POLICY_COUNT 0 + +/* + * THREAD_EXTENDED_POLICY: + * + * Extended form of THREAD_STANDARD_POLICY, which supplies a + * hint indicating whether this is a long running computation. + * + * Parameters: + * + * timeshare: TRUE (the default) results in identical scheduling + * behavior as THREAD_STANDARD_POLICY. + */ + +#define THREAD_EXTENDED_POLICY 1 + +struct thread_extended_policy { + boolean_t timeshare; +}; + +typedef struct thread_extended_policy thread_extended_policy_data_t; +typedef struct thread_extended_policy *thread_extended_policy_t; + +#define THREAD_EXTENDED_POLICY_COUNT ((mach_msg_type_number_t) \ + (sizeof (thread_extended_policy_data_t) / sizeof (integer_t))) /* * THREAD_TIME_CONSTRAINT_POLICY: @@ -127,9 +140,9 @@ typedef struct thread_standard_policy *thread_standard_policy_t; #define THREAD_TIME_CONSTRAINT_POLICY 2 struct thread_time_constraint_policy { - natural_t period; - natural_t computation; - natural_t constraint; + uint32_t period; + uint32_t computation; + uint32_t constraint; boolean_t preemptible; }; @@ -138,8 +151,8 @@ typedef struct thread_time_constraint_policy \ typedef struct thread_time_constraint_policy \ *thread_time_constraint_policy_t; -#define THREAD_TIME_CONSTRAINT_POLICY_COUNT \ - (sizeof (thread_time_constraint_policy_data_t) / sizeof (integer_t)) +#define THREAD_TIME_CONSTRAINT_POLICY_COUNT ((mach_msg_type_number_t) \ + (sizeof (thread_time_constraint_policy_data_t) / sizeof (integer_t))) /* * THREAD_PRECEDENCE_POLICY: @@ -161,7 +174,7 @@ struct thread_precedence_policy { typedef struct thread_precedence_policy thread_precedence_policy_data_t; typedef struct thread_precedence_policy *thread_precedence_policy_t; -#define THREAD_PRECEDENCE_POLICY_COUNT \ - (sizeof (thread_precedence_policy_data_t) / sizeof (integer_t)) +#define THREAD_PRECEDENCE_POLICY_COUNT ((mach_msg_type_number_t) \ + (sizeof (thread_precedence_policy_data_t) / sizeof (integer_t))) #endif /* _MACH_THREAD_POLICY_H_ */