zig

fork of https://codeberg.org/ziglang/zig
Log | Files | Refs | README | LICENSE

vm_info.h (6030B) - Raw


      1 /*
      2  * Copyright (c) 2000-2006 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 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  *	File:	mach_debug/vm_info.h
     58  *	Author:	Rich Draves
     59  *	Date:	March, 1990
     60  *
     61  *	Definitions for the VM debugging interface.
     62  */
     63 
     64 #ifndef _MACH_DEBUG_VM_INFO_H_
     65 #define _MACH_DEBUG_VM_INFO_H_
     66 
     67 #include <mach/boolean.h>
     68 #include <mach/machine/vm_types.h>
     69 #include <mach/vm_inherit.h>
     70 #include <mach/vm_prot.h>
     71 #include <mach/memory_object_types.h>
     72 
     73 #pragma pack(4)
     74 
     75 /*
     76  *	Remember to update the mig type definitions
     77  *	in mach_debug_types.defs when adding/removing fields.
     78  */
     79 typedef struct mach_vm_info_region {
     80 	mach_vm_offset_t vir_start;     /* start of region */
     81 	mach_vm_offset_t vir_end;       /* end of region */
     82 	mach_vm_offset_t vir_object;    /* the mapped object(kernal addr) */
     83 	memory_object_offset_t vir_offset;      /* offset into object */
     84 	boolean_t vir_needs_copy;       /* does object need to be copied? */
     85 	vm_prot_t vir_protection;       /* protection code */
     86 	vm_prot_t vir_max_protection;   /* maximum protection */
     87 	vm_inherit_t vir_inheritance;   /* inheritance */
     88 	natural_t vir_wired_count;      /* number of times wired */
     89 	natural_t vir_user_wired_count; /* number of times user has wired */
     90 } mach_vm_info_region_t;
     91 
     92 typedef struct vm_info_region_64 {
     93 	natural_t vir_start;            /* start of region */
     94 	natural_t vir_end;              /* end of region */
     95 	natural_t vir_object;           /* the mapped object */
     96 	memory_object_offset_t vir_offset;      /* offset into object */
     97 	boolean_t vir_needs_copy;       /* does object need to be copied? */
     98 	vm_prot_t vir_protection;       /* protection code */
     99 	vm_prot_t vir_max_protection;   /* maximum protection */
    100 	vm_inherit_t vir_inheritance;   /* inheritance */
    101 	natural_t vir_wired_count;      /* number of times wired */
    102 	natural_t vir_user_wired_count; /* number of times user has wired */
    103 } vm_info_region_64_t;
    104 
    105 typedef struct vm_info_region {
    106 	natural_t vir_start;            /* start of region */
    107 	natural_t vir_end;              /* end of region */
    108 	natural_t vir_object;           /* the mapped object */
    109 	natural_t vir_offset;           /* offset into object */
    110 	boolean_t vir_needs_copy;       /* does object need to be copied? */
    111 	vm_prot_t vir_protection;       /* protection code */
    112 	vm_prot_t vir_max_protection;   /* maximum protection */
    113 	vm_inherit_t vir_inheritance;   /* inheritance */
    114 	natural_t vir_wired_count;      /* number of times wired */
    115 	natural_t vir_user_wired_count; /* number of times user has wired */
    116 } vm_info_region_t;
    117 
    118 
    119 typedef struct vm_info_object {
    120 	natural_t vio_object;           /* this object */
    121 	natural_t vio_size;             /* object size (valid if internal - but too small) */
    122 	unsigned int vio_ref_count;     /* number of references */
    123 	unsigned int vio_resident_page_count; /* number of resident pages */
    124 	unsigned int vio_absent_count;  /* number requested but not filled */
    125 	natural_t vio_copy;             /* copy object */
    126 	natural_t vio_shadow;           /* shadow object */
    127 	natural_t vio_shadow_offset;    /* offset into shadow object */
    128 	natural_t vio_paging_offset;    /* offset into memory object */
    129 	memory_object_copy_strategy_t vio_copy_strategy;
    130 	/* how to handle data copy */
    131 	vm_offset_t vio_last_alloc;     /* offset of last allocation */
    132 	/* many random attributes */
    133 	unsigned int vio_paging_in_progress;
    134 	boolean_t vio_pager_created;
    135 	boolean_t vio_pager_initialized;
    136 	boolean_t vio_pager_ready;
    137 	boolean_t vio_can_persist;
    138 	boolean_t vio_internal;
    139 	boolean_t vio_temporary;
    140 	boolean_t vio_alive;
    141 	boolean_t vio_purgable;
    142 	boolean_t vio_purgable_volatile;
    143 } vm_info_object_t;
    144 
    145 typedef vm_info_object_t *vm_info_object_array_t;
    146 
    147 #pragma pack()
    148 
    149 #endif  /* _MACH_DEBUG_VM_INFO_H_ */