darwin-xnu/osfmk/mach_debug/vm_info.h
<<
>>
Prefs
   1/*
   2 * Copyright (c) 2000-2005 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 * Mach Operating System
  27 * Copyright (c) 1991,1990 Carnegie Mellon University
  28 * All Rights Reserved.
  29 * 
  30 * Permission to use, copy, modify and distribute this software and its
  31 * documentation is hereby granted, provided that both the copyright
  32 * notice and this permission notice appear in all copies of the
  33 * software, derivative works or modified versions, and any portions
  34 * thereof, and that both notices appear in supporting documentation.
  35 * 
  36 * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
  37 * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
  38 * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
  39 * 
  40 * Carnegie Mellon requests users of this software to return to
  41 * 
  42 *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
  43 *  School of Computer Science
  44 *  Carnegie Mellon University
  45 *  Pittsburgh PA 15213-3890
  46 * 
  47 * any improvements or extensions that they make and grant Carnegie Mellon
  48 * the rights to redistribute these changes.
  49 */
  50/*
  51 */
  52/*
  53 *      File:   mach_debug/vm_info.h
  54 *      Author: Rich Draves
  55 *      Date:   March, 1990
  56 *
  57 *      Definitions for the VM debugging interface.
  58 */
  59
  60#ifndef _MACH_DEBUG_VM_INFO_H_
  61#define _MACH_DEBUG_VM_INFO_H_
  62
  63#include <mach/boolean.h>
  64#include <mach/machine/vm_types.h>
  65#include <mach/vm_inherit.h>
  66#include <mach/vm_prot.h>
  67#include <mach/memory_object_types.h>
  68
  69#if __DARWIN_ALIGN_POWER
  70#pragma options align=power
  71#endif
  72
  73/*
  74 *      Remember to update the mig type definitions
  75 *      in mach_debug_types.defs when adding/removing fields.
  76 */
  77typedef struct mach_vm_info_region {
  78        mach_vm_offset_t vir_start;     /* start of region */
  79        mach_vm_offset_t vir_end;       /* end of region */
  80        mach_vm_offset_t vir_object;    /* the mapped object(kernal addr) */
  81        memory_object_offset_t vir_offset;      /* offset into object */
  82        boolean_t vir_needs_copy;       /* does object need to be copied? */
  83        vm_prot_t vir_protection;       /* protection code */
  84        vm_prot_t vir_max_protection;   /* maximum protection */
  85        vm_inherit_t vir_inheritance;   /* inheritance */
  86        natural_t vir_wired_count;      /* number of times wired */
  87        natural_t vir_user_wired_count; /* number of times user has wired */
  88} mach_vm_info_region_t;
  89
  90typedef struct vm_info_region_64 {
  91        natural_t vir_start;            /* start of region */
  92        natural_t vir_end;              /* end of region */
  93        natural_t vir_object;           /* the mapped object */
  94        memory_object_offset_t vir_offset;      /* offset into object */
  95        boolean_t vir_needs_copy;       /* does object need to be copied? */
  96        vm_prot_t vir_protection;       /* protection code */
  97        vm_prot_t vir_max_protection;   /* maximum protection */
  98        vm_inherit_t vir_inheritance;   /* inheritance */
  99        natural_t vir_wired_count;      /* number of times wired */
 100        natural_t vir_user_wired_count; /* number of times user has wired */
 101} vm_info_region_64_t;
 102
 103typedef struct vm_info_region {
 104        natural_t vir_start;            /* start of region */
 105        natural_t vir_end;              /* end of region */
 106        natural_t vir_object;           /* the mapped object */
 107        natural_t vir_offset;           /* offset into object */
 108        boolean_t vir_needs_copy;       /* does object need to be copied? */
 109        vm_prot_t vir_protection;       /* protection code */
 110        vm_prot_t vir_max_protection;   /* maximum protection */
 111        vm_inherit_t vir_inheritance;   /* inheritance */
 112        natural_t vir_wired_count;      /* number of times wired */
 113        natural_t vir_user_wired_count; /* number of times user has wired */
 114} vm_info_region_t;
 115
 116
 117typedef struct vm_info_object {
 118        natural_t vio_object;           /* this object */
 119        natural_t vio_size;             /* object size (valid if internal - but too small) */
 120        unsigned int vio_ref_count;     /* number of references */
 121        unsigned int vio_resident_page_count; /* number of resident pages */
 122        unsigned int vio_absent_count;  /* number requested but not filled */
 123        natural_t vio_copy;             /* copy object */
 124        natural_t vio_shadow;           /* shadow object */
 125        natural_t vio_shadow_offset;    /* offset into shadow object */
 126        natural_t vio_paging_offset;    /* offset into memory object */
 127        memory_object_copy_strategy_t vio_copy_strategy;
 128                                        /* how to handle data copy */
 129        vm_offset_t vio_last_alloc;     /* offset of last allocation */
 130        /* many random attributes */
 131        unsigned int vio_paging_in_progress;
 132        boolean_t vio_pager_created;
 133        boolean_t vio_pager_initialized;
 134        boolean_t vio_pager_ready;
 135        boolean_t vio_can_persist;
 136        boolean_t vio_internal;
 137        boolean_t vio_temporary;
 138        boolean_t vio_alive;
 139        boolean_t vio_purgable;
 140        boolean_t vio_purgable_volatile;
 141} vm_info_object_t;
 142
 143typedef vm_info_object_t *vm_info_object_array_t;
 144
 145#if __DARWIN_ALIGN_POWER
 146#pragma options align=reset
 147#endif
 148
 149#endif  /* _MACH_DEBUG_VM_INFO_H_ */
 150
lxr.linux.no kindly hosted by Redpill Linpro AS, provider of Linux consulting and operations services since 1995.