Chameleon

Chameleon Svn Source Tree

Root/tags/2.0/i386/include/mach/policy.h

Source at commit 1808 created 12 years 4 months ago.
By blackosx, Revise layout of package installer 'Welcome' file so it looks cleaner. Change the copyright notice to begin from 2009 as seen in the Chameleon 2.0 r431 installer. Should this date be set earlier?
1/*
2 * Copyright (c) 2000-2005 Apple Computer, Inc. All rights reserved.
3 *
4 * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
5 *
6 * This file contains Original Code and/or Modifications of Original Code
7 * as defined in and that are subject to the Apple Public Source License
8 * Version 2.0 (the 'License'). You may not use this file except in
9 * compliance with the License. The rights granted to you under the License
10 * may not be used to create, or enable the creation or redistribution of,
11 * unlawful or unlicensed copies of an Apple operating system, or to
12 * circumvent, violate, or enable the circumvention or violation of, any
13 * terms of an Apple operating system software license agreement.
14 *
15 * Please obtain a copy of the License at
16 * http://www.opensource.apple.com/apsl/ and read it before using this file.
17 *
18 * The Original Code and all software distributed under the License are
19 * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
20 * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
21 * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
22 * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
23 * Please see the License for the specific language governing rights and
24 * limitations under the License.
25 *
26 * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
27 */
28/*
29 * @OSF_COPYRIGHT@
30 */
31/*
32 * Mach Operating System
33 * Copyright (c) 1991,1990,1989,1988 Carnegie Mellon University
34 * All Rights Reserved.
35 *
36 * Permission to use, copy, modify and distribute this software and its
37 * documentation is hereby granted, provided that both the copyright
38 * notice and this permission notice appear in all copies of the
39 * software, derivative works or modified versions, and any portions
40 * thereof, and that both notices appear in supporting documentation.
41 *
42 * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
43 * CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
44 * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
45 *
46 * Carnegie Mellon requests users of this software to return to
47 *
48 * Software Distribution Coordinator or Software.Distribution@CS.CMU.EDU
49 * School of Computer Science
50 * Carnegie Mellon University
51 * Pittsburgh PA 15213-3890
52 *
53 * any improvements or extensions that they make and grant Carnegie Mellon
54 * the rights to redistribute these changes.
55 */
56/*
57 */
58
59#ifndef_MACH_POLICY_H_
60#define _MACH_POLICY_H_
61
62/*
63 *mach/policy.h
64 *
65 *Definitions for scheduing policy.
66 */
67
68/*
69 * All interfaces defined here are obsolete.
70 */
71
72#include <mach/boolean.h>
73#include <mach/message.h>
74#include <mach/vm_types.h>
75
76/*
77 *Old scheduling control interface
78 */
79typedef int policy_t;
80typedef integer_t*policy_info_t;
81typedef integer_t*policy_base_t;
82typedef integer_t*policy_limit_t;
83
84/*
85 *Policy definitions. Policies should be powers of 2,
86 *but cannot be or'd together other than to test for a
87 *policy 'class'.
88 */
89#definePOLICY_NULL0/* none*/
90#definePOLICY_TIMESHARE1/* timesharing*/
91#definePOLICY_RR2/* fixed round robin*/
92#define POLICY_FIFO4/* fixed fifo*/
93
94#define __NEW_SCHEDULING_FRAMEWORK__
95
96/*
97 *Check if policy is of 'class' fixed-priority.
98 */
99#definePOLICYCLASS_FIXEDPRI(POLICY_RR | POLICY_FIFO)
100
101/*
102 *Check if policy is valid.
103 */
104#define invalid_policy(policy)\
105((policy) != POLICY_TIMESHARE &&\
106 (policy) != POLICY_RR &&\
107 (policy) != POLICY_FIFO)
108
109
110/*
111 * Types for TIMESHARE policy
112 */
113struct policy_timeshare_base {
114integer_tbase_priority;
115};
116struct policy_timeshare_limit {
117integer_tmax_priority;
118};
119struct policy_timeshare_info {
120integer_tmax_priority;
121integer_tbase_priority;
122integer_tcur_priority;
123boolean_tdepressed;
124integer_tdepress_priority;
125};
126
127typedef struct policy_timeshare_base*policy_timeshare_base_t;
128typedef struct policy_timeshare_limit*policy_timeshare_limit_t;
129typedef struct policy_timeshare_info*policy_timeshare_info_t;
130
131typedef struct policy_timeshare_basepolicy_timeshare_base_data_t;
132typedef struct policy_timeshare_limitpolicy_timeshare_limit_data_t;
133typedef struct policy_timeshare_infopolicy_timeshare_info_data_t;
134
135
136#define POLICY_TIMESHARE_BASE_COUNT((mach_msg_type_number_t) \
137(sizeof(struct policy_timeshare_base)/sizeof(integer_t)))
138#define POLICY_TIMESHARE_LIMIT_COUNT((mach_msg_type_number_t) \
139(sizeof(struct policy_timeshare_limit)/sizeof(integer_t)))
140#define POLICY_TIMESHARE_INFO_COUNT((mach_msg_type_number_t) \
141(sizeof(struct policy_timeshare_info)/sizeof(integer_t)))
142
143
144/*
145 *Types for the ROUND ROBIN (RR) policy
146 */
147struct policy_rr_base {
148integer_tbase_priority;
149integer_tquantum;
150};
151struct policy_rr_limit {
152integer_tmax_priority;
153};
154struct policy_rr_info {
155integer_tmax_priority;
156integer_tbase_priority;
157integer_tquantum;
158boolean_tdepressed;
159integer_tdepress_priority;
160};
161
162typedef struct policy_rr_base*policy_rr_base_t;
163typedef struct policy_rr_limit*policy_rr_limit_t;
164typedef struct policy_rr_info*policy_rr_info_t;
165
166typedef struct policy_rr_basepolicy_rr_base_data_t;
167typedef struct policy_rr_limitpolicy_rr_limit_data_t;
168typedef struct policy_rr_infopolicy_rr_info_data_t;
169
170#define POLICY_RR_BASE_COUNT((mach_msg_type_number_t)\
171(sizeof(struct policy_rr_base)/sizeof(integer_t)))
172#define POLICY_RR_LIMIT_COUNT((mach_msg_type_number_t)\
173(sizeof(struct policy_rr_limit)/sizeof(integer_t)))
174#define POLICY_RR_INFO_COUNT((mach_msg_type_number_t)\
175(sizeof(struct policy_rr_info)/sizeof(integer_t)))
176
177
178/*
179 * Types for the FIRST-IN-FIRST-OUT (FIFO) policy
180 */
181struct policy_fifo_base {
182integer_tbase_priority;
183};
184struct policy_fifo_limit {
185integer_tmax_priority;
186};
187struct policy_fifo_info {
188integer_tmax_priority;
189integer_tbase_priority;
190boolean_tdepressed;
191integer_tdepress_priority;
192};
193
194typedef struct policy_fifo_base*policy_fifo_base_t;
195typedef struct policy_fifo_limit*policy_fifo_limit_t;
196typedef struct policy_fifo_info*policy_fifo_info_t;
197
198typedef struct policy_fifo_basepolicy_fifo_base_data_t;
199typedef struct policy_fifo_limitpolicy_fifo_limit_data_t;
200typedef struct policy_fifo_infopolicy_fifo_info_data_t;
201
202#define POLICY_FIFO_BASE_COUNT((mach_msg_type_number_t)\
203(sizeof(struct policy_fifo_base)/sizeof(integer_t)))
204#define POLICY_FIFO_LIMIT_COUNT((mach_msg_type_number_t)\
205(sizeof(struct policy_fifo_limit)/sizeof(integer_t)))
206#define POLICY_FIFO_INFO_COUNT((mach_msg_type_number_t)\
207(sizeof(struct policy_fifo_info)/sizeof(integer_t)))
208
209/*
210 * Aggregate policy types
211 */
212
213struct policy_bases {
214policy_timeshare_base_data_tts;
215policy_rr_base_data_trr;
216policy_fifo_base_data_tfifo;
217};
218
219struct policy_limits {
220policy_timeshare_limit_data_tts;
221policy_rr_limit_data_trr;
222policy_fifo_limit_data_tfifo;
223};
224
225struct policy_infos {
226policy_timeshare_info_data_tts;
227policy_rr_info_data_trr;
228policy_fifo_info_data_tfifo;
229};
230
231typedef struct policy_basespolicy_base_data_t;
232typedef struct policy_limitspolicy_limit_data_t;
233typedef struct policy_infospolicy_info_data_t;
234
235#endif/* _MACH_POLICY_H_ */
236

Archive Download this file

Revision: 1808