X-Git-Url: https://git.saurik.com/apple/xnu.git/blobdiff_plain/1c79356b52d46aa6b508fb032f5ae709b1f2897b..6d2010ae8f7a6078e10b361c6962983bab233e0f:/osfmk/mach_debug/zone_info.h diff --git a/osfmk/mach_debug/zone_info.h b/osfmk/mach_debug/zone_info.h index 60b56d694..277801d5d 100644 --- a/osfmk/mach_debug/zone_info.h +++ b/osfmk/mach_debug/zone_info.h @@ -1,83 +1,33 @@ /* - * Copyright (c) 2000 Apple Computer, Inc. All rights reserved. + * Copyright (c) 2000-2005 Apple Computer, Inc. All rights reserved. * - * @APPLE_LICENSE_HEADER_START@ - * - * The contents of this file constitute Original Code as defined in and - * are subject to the Apple Public Source License Version 1.1 (the - * "License"). You may not use this file except in compliance with the - * License. Please obtain a copy of the License at - * http://www.apple.com/publicsource and read it before using this file. - * - * This Original Code and all software distributed under the License are - * distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER + * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ + * + * This file contains Original Code and/or Modifications of Original Code + * as defined in and that are subject to the Apple Public Source License + * Version 2.0 (the 'License'). You may not use this file except in + * compliance with the License. The rights granted to you under the License + * may not be used to create, or enable the creation or redistribution of, + * unlawful or unlicensed copies of an Apple operating system, or to + * circumvent, violate, or enable the circumvention or violation of, any + * terms of an Apple operating system software license agreement. + * + * Please obtain a copy of the License at + * http://www.opensource.apple.com/apsl/ and read it before using this file. + * + * The Original Code and all software distributed under the License are + * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT. Please see the - * License for the specific language governing rights and limitations - * under the License. + * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. + * Please see the License for the specific language governing rights and + * limitations under the License. * - * @APPLE_LICENSE_HEADER_END@ + * @APPLE_OSREFERENCE_LICENSE_HEADER_END@ */ /* * @OSF_COPYRIGHT@ */ -/* - * HISTORY - * - * Revision 1.1.1.1 1998/09/22 21:05:45 wsanchez - * Import of Mac OS X kernel (~semeria) - * - * Revision 1.1.1.1 1998/03/07 02:26:17 wsanchez - * Import of OSF Mach kernel (~mburg) - * - * Revision 1.2.12.2 1995/01/06 19:52:51 devrcs - * mk6 CR668 - 1.3b26 merge - * 64bit cleanup - * [1994/10/14 03:43:40 dwm] - * - * Revision 1.2.12.1 1994/09/23 02:46:19 ezf - * change marker to not FREE - * [1994/09/22 21:44:33 ezf] - * - * Revision 1.2.2.2 1993/06/09 02:45:03 gm - * Added to OSF/1 R1.3 from NMK15.0. - * [1993/06/02 21:19:19 jeffc] - * - * Revision 1.2 1993/04/19 16:41:52 devrcs - * ansi C conformance changes - * [1993/02/02 18:57:07 david] - * - * Revision 1.1 1992/09/30 02:32:41 robert - * Initial revision - * - * $EndLog$ - */ -/* CMU_HIST */ -/* - * Revision 2.5 91/05/14 17:04:15 mrt - * Correcting copyright - * - * Revision 2.4 91/02/05 17:38:17 mrt - * Changed to new Mach copyright - * [91/02/01 17:29:40 mrt] - * - * Revision 2.3 90/06/19 23:00:29 rpd - * Added zi_ prefix to zone_info field names. - * Added zi_collectable field to zone_info. - * Added zn_ prefix to zone_name field names. - * [90/06/05 rpd] - * - * Revision 2.2 90/06/02 15:00:54 rpd - * Created. - * [90/03/26 23:53:57 rpd] - * - * Revision 2.2 89/05/06 12:36:08 rpd - * Created. - * [89/05/06 12:35:19 rpd] - * - */ -/* CMU_ENDHIST */ /* * Mach Operating System * Copyright (c) 1991,1990,1989 Carnegie Mellon University @@ -113,8 +63,9 @@ #include /* - * Remember to update the mig type definitions - * in mach_debug_types.defs when adding/removing fields. + * Legacy definitions for host_zone_info(). This interface, and + * these definitions have been deprecated in favor of the new + * mach_zone_info() inteface and types below. */ #define ZONE_NAME_MAX_LEN 80 @@ -140,4 +91,46 @@ typedef struct zone_info { typedef zone_info_t *zone_info_array_t; + +/* + * Remember to update the mig type definitions + * in mach_debug_types.defs when adding/removing fields. + */ + +#define MACH_ZONE_NAME_MAX_LEN 80 + +typedef struct mach_zone_name { + char mzn_name[ZONE_NAME_MAX_LEN]; +} mach_zone_name_t; + +typedef mach_zone_name_t *mach_zone_name_array_t; + +typedef struct mach_zone_info_data { + uint64_t mzi_count; /* count of elements in use */ + uint64_t mzi_cur_size; /* current memory utilization */ + uint64_t mzi_max_size; /* how large can this zone grow */ + uint64_t mzi_elem_size; /* size of an element */ + uint64_t mzi_alloc_size; /* size used for more memory */ + uint64_t mzi_sum_size; /* sum of all allocs (life of zone) */ + uint64_t mzi_exhaustible; /* merely return if empty? */ + uint64_t mzi_collectable; /* garbage collect elements? */ +} mach_zone_info_t; + +typedef mach_zone_info_t *mach_zone_info_array_t; + +typedef struct task_zone_info_data { + uint64_t tzi_count; /* count of elements in use */ + uint64_t tzi_cur_size; /* current memory utilization */ + uint64_t tzi_max_size; /* how large can this zone grow */ + uint64_t tzi_elem_size; /* size of an element */ + uint64_t tzi_alloc_size; /* size used for more memory */ + uint64_t tzi_sum_size; /* sum of all allocs (life of zone) */ + uint64_t tzi_exhaustible; /* merely return if empty? */ + uint64_t tzi_collectable; /* garbage collect elements? */ + uint64_t tzi_caller_acct; /* charged to caller (or kernel) */ + uint64_t tzi_task_alloc; /* sum of all allocs by this task */ + uint64_t tzi_task_free; /* sum of all frees by this task */ +} task_zone_info_t; + +typedef task_zone_info_t *task_zone_info_array_t; #endif /* _MACH_DEBUG_ZONE_INFO_H_ */