Chameleon

Chameleon Svn Source Tree

Root/tags/2.0/i386/include/mach/task_info.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-2007 Apple 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,1987 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 *Machine-independent task information structures and definitions.
58 *
59 *The definitions in this file are exported to the user. The kernel
60 *will translate its internal data structures to these structures
61 *as appropriate.
62 *
63 */
64
65#ifndef_MACH_TASK_INFO_H_
66#define_MACH_TASK_INFO_H_
67
68#include <mach/message.h>
69#include <mach/machine/vm_types.h>
70#include <mach/time_value.h>
71#include <mach/policy.h>
72
73#include <sys/cdefs.h>
74
75/*
76 *Generic information structure to allow for expansion.
77 */
78typedefnatural_ttask_flavor_t;
79typedefinteger_t*task_info_t;/* varying array of int */
80
81#defineTASK_INFO_MAX(1024)/* maximum array size */
82typedefinteger_ttask_info_data_t[TASK_INFO_MAX];
83
84/*
85 *Currently defined information structures.
86 */
87
88#pragma pack(4)
89
90#define TASK_BASIC_INFO_32 4 /* basic information */
91#define TASK_BASIC2_INFO_32 6
92
93struct task_basic_info_32 {
94 integer_t suspend_count; /* suspend count for task */
95 natural_t virtual_size; /* virtual memory size (bytes) */
96 natural_t resident_size; /* resident memory size (bytes) */
97 time_value_t user_time; /* total user run time for
98 terminated threads */
99 time_value_t system_time; /* total system run time for
100 terminated threads */
101policy_tpolicy;/* default policy for new threads */
102};
103typedef struct task_basic_info_32 task_basic_info_32_data_t;
104typedef struct task_basic_info_32 *task_basic_info_32_t;
105#define TASK_BASIC_INFO_32_COUNT \
106 (sizeof(task_basic_info_32_data_t) / sizeof(natural_t))
107
108
109#define TASK_BASIC_INFO_64 5 /* 64-bit capable basic info */
110
111struct task_basic_info_64 {
112 integer_t suspend_count; /* suspend count for task */
113 mach_vm_size_t virtual_size; /* virtual memory size (bytes) */
114 mach_vm_size_t resident_size; /* resident memory size (bytes) */
115 time_value_t user_time; /* total user run time for
116 terminated threads */
117 time_value_t system_time; /* total system run time for
118 terminated threads */
119policy_tpolicy;/* default policy for new threads */
120};
121typedef struct task_basic_info_64 task_basic_info_64_data_t;
122typedef struct task_basic_info_64 *task_basic_info_64_t;
123#define TASK_BASIC_INFO_64_COUNT \
124 (sizeof(task_basic_info_64_data_t) / sizeof(natural_t))
125
126
127/* localized structure - cannot be safely passed between tasks of differing sizes */
128
129struct task_basic_info {
130 integer_t suspend_count; /* suspend count for task */
131 vm_size_t virtual_size; /* virtual memory size (bytes) */
132 vm_size_t resident_size; /* resident memory size (bytes) */
133 time_value_t user_time; /* total user run time for
134 terminated threads */
135 time_value_t system_time; /* total system run time for
136 terminated threads */
137policy_tpolicy;/* default policy for new threads */
138};
139
140typedef struct task_basic_info task_basic_info_data_t;
141typedef struct task_basic_info *task_basic_info_t;
142#define TASK_BASIC_INFO_COUNT \
143 (sizeof(task_basic_info_data_t) / sizeof(natural_t))
144#if !defined(__LP64__)
145#define TASK_BASIC_INFO TASK_BASIC_INFO_32
146#else
147#define TASK_BASIC_INFO TASK_BASIC_INFO_64
148#endif
149
150
151
152#defineTASK_EVENTS_INFO2/* various event counts */
153
154struct task_events_info {
155integer_tfaults;/* number of page faults */
156integer_t pageins;/* number of actual pageins */
157integer_t cow_faults;/* number of copy-on-write faults */
158integer_t messages_sent;/* number of messages sent */
159integer_t messages_received; /* number of messages received */
160 integer_t syscalls_mach; /* number of mach system calls */
161integer_t syscalls_unix; /* number of unix system calls */
162integer_t csw; /* number of context switches */
163};
164typedef struct task_events_infotask_events_info_data_t;
165typedef struct task_events_info*task_events_info_t;
166#defineTASK_EVENTS_INFO_COUNT((mach_msg_type_number_t) \
167(sizeof(task_events_info_data_t) / sizeof(natural_t)))
168
169#defineTASK_THREAD_TIMES_INFO3/* total times for live threads -
170 only accurate if suspended */
171
172struct task_thread_times_info {
173time_value_tuser_time;/* total user run time for
174 live threads */
175time_value_tsystem_time;/* total system run time for
176 live threads */
177};
178
179typedef struct task_thread_times_infotask_thread_times_info_data_t;
180typedef struct task_thread_times_info*task_thread_times_info_t;
181#defineTASK_THREAD_TIMES_INFO_COUNT((mach_msg_type_number_t) \
182(sizeof(task_thread_times_info_data_t) / sizeof(natural_t)))
183
184#define TASK_ABSOLUTETIME_INFO1
185
186struct task_absolutetime_info {
187uint64_ttotal_user;/* total time */
188uint64_ttotal_system;
189uint64_tthreads_user;/* existing threads only */
190uint64_tthreads_system;
191};
192
193typedef struct task_absolutetime_infotask_absolutetime_info_data_t;
194typedef struct task_absolutetime_info*task_absolutetime_info_t;
195#define TASK_ABSOLUTETIME_INFO_COUNT((mach_msg_type_number_t) \
196(sizeof (task_absolutetime_info_data_t) / sizeof (natural_t)))
197
198#define TASK_SECURITY_TOKEN13
199#define TASK_SECURITY_TOKEN_COUNT((mach_msg_type_number_t) \
200(sizeof(security_token_t) / sizeof(natural_t)))
201
202#define TASK_AUDIT_TOKEN15
203#define TASK_AUDIT_TOKEN_COUNT\
204(sizeof(audit_token_t) / sizeof(natural_t))
205
206
207#define TASK_AFFINITY_TAG_INFO16 /* This is experimental. */
208
209struct task_affinity_tag_info {
210integer_tset_count;
211integer_tmin;
212integer_tmax;
213integer_ttask_count;
214};
215typedef struct task_affinity_tag_infotask_affinity_tag_info_data_t;
216typedef struct task_affinity_tag_info*task_affinity_tag_info_t;
217#define TASK_AFFINITY_TAG_INFO_COUNT\
218(sizeof(task_affinity_tag_info_data_t) / sizeof(natural_t))
219
220#define TASK_DYLD_INFO17/* This is experimental. */
221
222struct task_dyld_info {
223mach_vm_address_tall_image_info_addr;
224mach_vm_size_tall_image_info_size;
225};
226typedef struct task_dyld_infotask_dyld_info_data_t;
227typedef struct task_dyld_info*task_dyld_info_t;
228#define TASK_DYLD_INFO_COUNT\
229 (sizeof(task_dyld_info_data_t) / sizeof(natural_t))
230
231#pragma pack()
232
233
234/*
235 * Obsolete interfaces.
236 */
237
238#define TASK_SCHED_TIMESHARE_INFO10
239#define TASK_SCHED_RR_INFO11
240#define TASK_SCHED_FIFO_INFO12
241
242#define TASK_SCHED_INFO14
243
244#endif/* _MACH_TASK_INFO_H_ */
245

Archive Download this file

Revision: 1808