The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/mach_debug/vm_info.h

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

    1 /* 
    2  * Mach Operating System
    3  * Copyright (c) 1991,1990 Carnegie Mellon University
    4  * All Rights Reserved.
    5  * 
    6  * Permission to use, copy, modify and distribute this software and its
    7  * documentation is hereby granted, provided that both the copyright
    8  * notice and this permission notice appear in all copies of the
    9  * software, derivative works or modified versions, and any portions
   10  * thereof, and that both notices appear in supporting documentation.
   11  * 
   12  * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
   13  * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
   14  * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
   15  * 
   16  * Carnegie Mellon requests users of this software to return to
   17  * 
   18  *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
   19  *  School of Computer Science
   20  *  Carnegie Mellon University
   21  *  Pittsburgh PA 15213-3890
   22  * 
   23  * any improvements or extensions that they make and grant Carnegie Mellon
   24  * the rights to redistribute these changes.
   25  */
   26 /*
   27  * HISTORY
   28  * $Log:        vm_info.h,v $
   29  * Revision 2.8  93/01/14  17:49:38  danner
   30  *      64bit cleanup.
   31  *      [92/12/01            af]
   32  * 
   33  * Revision 2.7  92/01/14  16:45:56  rpd
   34  *      Added VPI_STATE_PAGER.
   35  *      Added voi_pagesize.
   36  *      [92/01/04            rpd]
   37  * 
   38  *      Replaced vm_info_region_t and vm_info_object_t with
   39  *      vm_region_info_t, vm_object_info_t, vm_page_info_t.
   40  *      [91/12/30            rpd]
   41  * 
   42  * Revision 2.6  91/08/28  11:15:44  jsb
   43  *      single_use --> use_old_pageout to match vm_object.h
   44  *      [91/08/05  17:41:53  dlb]
   45  * 
   46  * Revision 2.5  91/05/14  17:04:08  mrt
   47  *      Correcting copyright
   48  * 
   49  * Revision 2.4  91/02/05  17:38:13  mrt
   50  *      Changed to new Mach copyright
   51  *      [91/02/01  17:29:30  mrt]
   52  * 
   53  * Revision 2.3  90/10/12  18:07:41  rpd
   54  *      Removed the vir_copy_on_write field.
   55  *      [90/10/08            rpd]
   56  * 
   57  * Revision 2.2  90/06/02  15:00:49  rpd
   58  *      Created.
   59  *      [90/04/20            rpd]
   60  * 
   61  */
   62 /*
   63  *      File:   mach_debug/vm_info.h
   64  *      Author: Rich Draves
   65  *      Date:   March, 1990
   66  *
   67  *      Definitions for the VM debugging interface.
   68  */
   69 
   70 #ifndef _MACH_DEBUG_VM_INFO_H_
   71 #define _MACH_DEBUG_VM_INFO_H_
   72 
   73 #include <mach/boolean.h>
   74 #include <mach/machine/vm_types.h>
   75 #include <mach/vm_inherit.h>
   76 #include <mach/vm_prot.h>
   77 #include <mach/memory_object.h>
   78 
   79 /*
   80  *      Remember to update the mig type definitions
   81  *      in mach_debug_types.defs when adding/removing fields.
   82  */
   83 
   84 typedef struct vm_region_info {
   85         vm_offset_t vri_start;          /* start of region */
   86         vm_offset_t vri_end;            /* end of region */
   87 
   88 /*vm_prot_t*/natural_t vri_protection;  /* protection code */
   89 /*vm_prot_t*/natural_t vri_max_protection;      /* maximum protection */
   90 /*vm_inherit_t*/natural_t vri_inheritance;      /* inheritance */
   91         natural_t vri_wired_count;      /* number of times wired */
   92         natural_t vri_user_wired_count; /* number of times user has wired */
   93 
   94         vm_offset_t vri_object;         /* the mapped object */
   95         vm_offset_t vri_offset;         /* offset into object */
   96 /*boolean_t*/integer_t vri_needs_copy;  /* does object need to be copied? */
   97         natural_t vri_sharing;  /* share map references */
   98 } vm_region_info_t;
   99 
  100 typedef vm_region_info_t *vm_region_info_array_t;
  101 
  102 
  103 typedef natural_t vm_object_info_state_t;
  104 
  105 #define VOI_STATE_PAGER_CREATED         0x00000001
  106 #define VOI_STATE_PAGER_INITIALIZED     0x00000002
  107 #define VOI_STATE_PAGER_READY           0x00000004
  108 #define VOI_STATE_CAN_PERSIST           0x00000008
  109 #define VOI_STATE_INTERNAL              0x00000010
  110 #define VOI_STATE_TEMPORARY             0x00000020
  111 #define VOI_STATE_ALIVE                 0x00000040
  112 #define VOI_STATE_LOCK_IN_PROGRESS      0x00000080
  113 #define VOI_STATE_LOCK_RESTART          0x00000100
  114 #define VOI_STATE_USE_OLD_PAGEOUT       0x00000200
  115 
  116 typedef struct vm_object_info {
  117         vm_offset_t voi_object;         /* this object */
  118         vm_size_t voi_pagesize;         /* object's page size */
  119         vm_size_t voi_size;             /* object size (valid if internal) */
  120         natural_t voi_ref_count;        /* number of references */
  121         natural_t voi_resident_page_count; /* number of resident pages */
  122         natural_t voi_absent_count;     /* number requested but not filled */
  123         vm_offset_t voi_copy;           /* copy object */
  124         vm_offset_t voi_shadow;         /* shadow object */
  125         vm_offset_t voi_shadow_offset;  /* offset into shadow object */
  126         vm_offset_t voi_paging_offset;  /* offset into memory object */
  127 /*memory_object_copy_strategy_t*/integer_t voi_copy_strategy;
  128                                         /* how to handle data copy */
  129         vm_offset_t voi_last_alloc;     /* offset of last allocation */
  130         natural_t voi_paging_in_progress; /* paging references */
  131         vm_object_info_state_t voi_state; /* random state bits */
  132 } vm_object_info_t;
  133 
  134 typedef vm_object_info_t *vm_object_info_array_t;
  135 
  136 
  137 typedef natural_t vm_page_info_state_t;
  138 
  139 #define VPI_STATE_BUSY          0x00000001
  140 #define VPI_STATE_WANTED        0x00000002
  141 #define VPI_STATE_TABLED        0x00000004
  142 #define VPI_STATE_FICTITIOUS    0x00000008
  143 #define VPI_STATE_PRIVATE       0x00000010
  144 #define VPI_STATE_ABSENT        0x00000020
  145 #define VPI_STATE_ERROR         0x00000040
  146 #define VPI_STATE_DIRTY         0x00000080
  147 #define VPI_STATE_PRECIOUS      0x00000100
  148 #define VPI_STATE_OVERWRITING   0x00000200
  149 #define VPI_STATE_INACTIVE      0x00000400
  150 #define VPI_STATE_ACTIVE        0x00000800
  151 #define VPI_STATE_LAUNDRY       0x00001000
  152 #define VPI_STATE_FREE          0x00002000
  153 #define VPI_STATE_REFERENCE     0x00004000
  154 
  155 #define VPI_STATE_PAGER         0x80000000      /* pager has the page */
  156 
  157 typedef struct vm_page_info {
  158         vm_offset_t vpi_offset;         /* offset in object */
  159         vm_offset_t vpi_phys_addr;      /* physical address */
  160         natural_t vpi_wire_count;       /* number of times wired */
  161 /*vm_prot_t*/natural_t vpi_page_lock;   /* XP access restrictions */
  162 /*vm_prot_t*/natural_t vpi_unlock_request;      /* outstanding unlock requests */
  163         vm_page_info_state_t vpi_state; /* random state bits */
  164 } vm_page_info_t;
  165 
  166 typedef vm_page_info_t *vm_page_info_array_t;
  167 
  168 #endif  _MACH_DEBUG_VM_INFO_H_

Cache object: 5cfb1d8f8263212a60141f6f36c304bc


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.