Annotation of OSKit-Mach/include/mach_debug/vm_info.h, revision 1.1.1.1

1.1       root        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  [email protected]
                     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:  *     File:   mach_debug/vm_info.h
                     28:  *     Author: Rich Draves
                     29:  *     Date:   March, 1990
                     30:  *
                     31:  *     Definitions for the VM debugging interface.
                     32:  */
                     33: 
                     34: #ifndef        _MACH_DEBUG_VM_INFO_H_
                     35: #define _MACH_DEBUG_VM_INFO_H_
                     36: 
                     37: #include <mach/boolean.h>
                     38: #include <mach/machine/vm_types.h>
                     39: #include <mach/vm_inherit.h>
                     40: #include <mach/vm_prot.h>
                     41: #include <mach/memory_object.h>
                     42: 
                     43: /*
                     44:  *     Remember to update the mig type definitions
                     45:  *     in mach_debug_types.defs when adding/removing fields.
                     46:  */
                     47: 
                     48: typedef struct vm_region_info {
                     49:        vm_offset_t vri_start;          /* start of region */
                     50:        vm_offset_t vri_end;            /* end of region */
                     51: 
                     52: /*vm_prot_t*/natural_t vri_protection; /* protection code */
                     53: /*vm_prot_t*/natural_t vri_max_protection;     /* maximum protection */
                     54: /*vm_inherit_t*/natural_t vri_inheritance;     /* inheritance */
                     55:        natural_t vri_wired_count;      /* number of times wired */
                     56:        natural_t vri_user_wired_count; /* number of times user has wired */
                     57: 
                     58:        vm_offset_t vri_object;         /* the mapped object */
                     59:        vm_offset_t vri_offset;         /* offset into object */
                     60: /*boolean_t*/integer_t vri_needs_copy; /* does object need to be copied? */
                     61:        natural_t vri_sharing;  /* share map references */
                     62: } vm_region_info_t;
                     63: 
                     64: typedef vm_region_info_t *vm_region_info_array_t;
                     65: 
                     66: 
                     67: typedef natural_t vm_object_info_state_t;
                     68: 
                     69: #define VOI_STATE_PAGER_CREATED                0x00000001
                     70: #define VOI_STATE_PAGER_INITIALIZED    0x00000002
                     71: #define VOI_STATE_PAGER_READY          0x00000004
                     72: #define VOI_STATE_CAN_PERSIST          0x00000008
                     73: #define VOI_STATE_INTERNAL             0x00000010
                     74: #define VOI_STATE_TEMPORARY            0x00000020
                     75: #define VOI_STATE_ALIVE                        0x00000040
                     76: #define VOI_STATE_LOCK_IN_PROGRESS     0x00000080
                     77: #define VOI_STATE_LOCK_RESTART         0x00000100
                     78: #define VOI_STATE_USE_OLD_PAGEOUT      0x00000200
                     79: 
                     80: typedef struct vm_object_info {
                     81:        vm_offset_t voi_object;         /* this object */
                     82:        vm_size_t voi_pagesize;         /* object's page size */
                     83:        vm_size_t voi_size;             /* object size (valid if internal) */
                     84:        natural_t voi_ref_count;        /* number of references */
                     85:        natural_t voi_resident_page_count; /* number of resident pages */
                     86:        natural_t voi_absent_count;     /* number requested but not filled */
                     87:        vm_offset_t voi_copy;           /* copy object */
                     88:        vm_offset_t voi_shadow;         /* shadow object */
                     89:        vm_offset_t voi_shadow_offset;  /* offset into shadow object */
                     90:        vm_offset_t voi_paging_offset;  /* offset into memory object */
                     91: /*memory_object_copy_strategy_t*/integer_t voi_copy_strategy;
                     92:                                        /* how to handle data copy */
                     93:        vm_offset_t voi_last_alloc;     /* offset of last allocation */
                     94:        natural_t voi_paging_in_progress; /* paging references */
                     95:        vm_object_info_state_t voi_state; /* random state bits */
                     96: } vm_object_info_t;
                     97: 
                     98: typedef vm_object_info_t *vm_object_info_array_t;
                     99: 
                    100: 
                    101: typedef natural_t vm_page_info_state_t;
                    102: 
                    103: #define VPI_STATE_BUSY         0x00000001
                    104: #define VPI_STATE_WANTED       0x00000002
                    105: #define VPI_STATE_TABLED       0x00000004
                    106: #define VPI_STATE_FICTITIOUS   0x00000008
                    107: #define VPI_STATE_PRIVATE      0x00000010
                    108: #define VPI_STATE_ABSENT       0x00000020
                    109: #define VPI_STATE_ERROR                0x00000040
                    110: #define VPI_STATE_DIRTY                0x00000080
                    111: #define VPI_STATE_PRECIOUS     0x00000100
                    112: #define VPI_STATE_OVERWRITING  0x00000200
                    113: #define VPI_STATE_INACTIVE     0x00000400
                    114: #define VPI_STATE_ACTIVE       0x00000800
                    115: #define VPI_STATE_LAUNDRY      0x00001000
                    116: #define VPI_STATE_FREE         0x00002000
                    117: #define VPI_STATE_REFERENCE    0x00004000
                    118: 
                    119: #define VPI_STATE_PAGER                0x80000000      /* pager has the page */
                    120: 
                    121: typedef struct vm_page_info {
                    122:        vm_offset_t vpi_offset;         /* offset in object */
                    123:        vm_offset_t vpi_phys_addr;      /* physical address */
                    124:        natural_t vpi_wire_count;       /* number of times wired */
                    125: /*vm_prot_t*/natural_t vpi_page_lock;  /* XP access restrictions */
                    126: /*vm_prot_t*/natural_t vpi_unlock_request;     /* outstanding unlock requests */
                    127:        vm_page_info_state_t vpi_state; /* random state bits */
                    128: } vm_page_info_t;
                    129: 
                    130: typedef vm_page_info_t *vm_page_info_array_t;
                    131: 
                    132: #endif /* _MACH_DEBUG_VM_INFO_H_ */

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.