]> git.saurik.com Git - apple/xnu.git/blame - osfmk/mach_debug/zone_info.h
xnu-201.19.tar.gz
[apple/xnu.git] / osfmk / mach_debug / zone_info.h
CommitLineData
1c79356b
A
1/*
2 * Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
3 *
4 * @APPLE_LICENSE_HEADER_START@
5 *
6 * The contents of this file constitute Original Code as defined in and
7 * are subject to the Apple Public Source License Version 1.1 (the
8 * "License"). You may not use this file except in compliance with the
9 * License. Please obtain a copy of the License at
10 * http://www.apple.com/publicsource and read it before using this file.
11 *
12 * This Original Code and all software distributed under the License are
13 * distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER
14 * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
15 * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
16 * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT. Please see the
17 * License for the specific language governing rights and limitations
18 * under the License.
19 *
20 * @APPLE_LICENSE_HEADER_END@
21 */
22/*
23 * @OSF_COPYRIGHT@
24 */
25/*
26 * HISTORY
27 *
28 * Revision 1.1.1.1 1998/09/22 21:05:45 wsanchez
29 * Import of Mac OS X kernel (~semeria)
30 *
31 * Revision 1.1.1.1 1998/03/07 02:26:17 wsanchez
32 * Import of OSF Mach kernel (~mburg)
33 *
34 * Revision 1.2.12.2 1995/01/06 19:52:51 devrcs
35 * mk6 CR668 - 1.3b26 merge
36 * 64bit cleanup
37 * [1994/10/14 03:43:40 dwm]
38 *
39 * Revision 1.2.12.1 1994/09/23 02:46:19 ezf
40 * change marker to not FREE
41 * [1994/09/22 21:44:33 ezf]
42 *
43 * Revision 1.2.2.2 1993/06/09 02:45:03 gm
44 * Added to OSF/1 R1.3 from NMK15.0.
45 * [1993/06/02 21:19:19 jeffc]
46 *
47 * Revision 1.2 1993/04/19 16:41:52 devrcs
48 * ansi C conformance changes
49 * [1993/02/02 18:57:07 david]
50 *
51 * Revision 1.1 1992/09/30 02:32:41 robert
52 * Initial revision
53 *
54 * $EndLog$
55 */
56/* CMU_HIST */
57/*
58 * Revision 2.5 91/05/14 17:04:15 mrt
59 * Correcting copyright
60 *
61 * Revision 2.4 91/02/05 17:38:17 mrt
62 * Changed to new Mach copyright
63 * [91/02/01 17:29:40 mrt]
64 *
65 * Revision 2.3 90/06/19 23:00:29 rpd
66 * Added zi_ prefix to zone_info field names.
67 * Added zi_collectable field to zone_info.
68 * Added zn_ prefix to zone_name field names.
69 * [90/06/05 rpd]
70 *
71 * Revision 2.2 90/06/02 15:00:54 rpd
72 * Created.
73 * [90/03/26 23:53:57 rpd]
74 *
75 * Revision 2.2 89/05/06 12:36:08 rpd
76 * Created.
77 * [89/05/06 12:35:19 rpd]
78 *
79 */
80/* CMU_ENDHIST */
81/*
82 * Mach Operating System
83 * Copyright (c) 1991,1990,1989 Carnegie Mellon University
84 * All Rights Reserved.
85 *
86 * Permission to use, copy, modify and distribute this software and its
87 * documentation is hereby granted, provided that both the copyright
88 * notice and this permission notice appear in all copies of the
89 * software, derivative works or modified versions, and any portions
90 * thereof, and that both notices appear in supporting documentation.
91 *
92 * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
93 * CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
94 * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
95 *
96 * Carnegie Mellon requests users of this software to return to
97 *
98 * Software Distribution Coordinator or Software.Distribution@CS.CMU.EDU
99 * School of Computer Science
100 * Carnegie Mellon University
101 * Pittsburgh PA 15213-3890
102 *
103 * any improvements or extensions that they make and grant Carnegie Mellon
104 * the rights to redistribute these changes.
105 */
106/*
107 */
108
109#ifndef _MACH_DEBUG_ZONE_INFO_H_
110#define _MACH_DEBUG_ZONE_INFO_H_
111
112#include <mach/boolean.h>
113#include <mach/machine/vm_types.h>
114
115/*
116 * Remember to update the mig type definitions
117 * in mach_debug_types.defs when adding/removing fields.
118 */
119
120#define ZONE_NAME_MAX_LEN 80
121
122typedef struct zone_name {
123 char zn_name[ZONE_NAME_MAX_LEN];
124} zone_name_t;
125
126typedef zone_name_t *zone_name_array_t;
127
128
129typedef struct zone_info {
130 integer_t zi_count; /* Number of elements used now */
131 vm_size_t zi_cur_size; /* current memory utilization */
132 vm_size_t zi_max_size; /* how large can this zone grow */
133 vm_size_t zi_elem_size; /* size of an element */
134 vm_size_t zi_alloc_size; /* size used for more memory */
135 integer_t zi_pageable; /* zone pageable? */
136 integer_t zi_sleepable; /* sleep if empty? */
137 integer_t zi_exhaustible; /* merely return if empty? */
138 integer_t zi_collectable; /* garbage collect elements? */
139} zone_info_t;
140
141typedef zone_info_t *zone_info_array_t;
142
143#endif /* _MACH_DEBUG_ZONE_INFO_H_ */