Annotation of XNU/osfmk/mach/vm_region.h, revision 1.1.1.1

1.1       root        1: /*
                      2:  * Copyright (c) 2000 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:  * HISTORY
                     27:  * 
                     28:  * Revision 1.1.1.1  1998/09/22 21:05:31  wsanchez
                     29:  * Import of Mac OS X kernel (~semeria)
                     30:  *
                     31:  * Revision 1.1.1.1  1998/03/07 02:25:46  wsanchez
                     32:  * Import of OSF Mach kernel (~mburg)
                     33:  *
                     34:  * Revision 1.1.5.1  1995/01/16  17:22:27  bolinger
                     35:  *     Import files unchanged from osc1.3b11 into cnmk_shared.
                     36:  *     [1995/01/16  17:20:37  bolinger]
                     37:  *
                     38:  * Revision 1.1.3.2  1993/10/05  22:23:22  watkins
                     39:  *     Merge forward.
                     40:  *     [1993/10/05  22:05:05  watkins]
                     41:  * 
                     42:  * Revision 1.1.1.2  1993/09/28  19:42:50  watkins
                     43:  *     Created to comply with spec.
                     44:  * 
                     45:  * $EndLog$
                     46:  */
                     47: /*
                     48:  *     File:   mach/vm_region.h
                     49:  *
                     50:  *     Define the attributes of a task's memory region
                     51:  *
                     52:  */
                     53: 
                     54: #ifndef        _MACH_VM_REGION_H_
                     55: #define _MACH_VM_REGION_H_
                     56: 
                     57: #include <mach/boolean.h>
                     58: #include <mach/vm_prot.h>
                     59: #include <mach/vm_inherit.h>
                     60: #include <mach/vm_behavior.h>
                     61: 
                     62: /*
                     63:  *     Types defined:
                     64:  *
                     65:  *     vm_region_info_t        memory region attributes
                     66:  */
                     67: 
                     68: #define VM_REGION_INFO_MAX      (1024)
                     69: typedef int    *vm_region_info_t;
                     70: typedef int     vm_region_flavor_t;
                     71: typedef int     vm_region_info_data_t[VM_REGION_INFO_MAX];
                     72: 
                     73: #define VM_REGION_BASIC_INFO   10
                     74: 
                     75: struct vm_region_basic_info {
                     76:        vm_prot_t               protection;
                     77:        vm_prot_t               max_protection;
                     78:        vm_inherit_t            inheritance;
                     79:        boolean_t               shared;
                     80:        boolean_t               reserved;
                     81:        vm_offset_t             offset;
                     82:        vm_behavior_t           behavior;
                     83:        unsigned short          user_wired_count;
                     84: };
                     85: 
                     86: typedef struct vm_region_basic_info            *vm_region_basic_info_t;
                     87: typedef struct vm_region_basic_info             vm_region_basic_info_data_t;
                     88: 
                     89: #define VM_REGION_BASIC_INFO_COUNT             \
                     90:        (sizeof(vm_region_basic_info_data_t)/sizeof(int))
                     91: 
                     92: 
                     93: 
                     94: #define VM_REGION_EXTENDED_INFO        11
                     95: 
                     96: #define SM_COW             1
                     97: #define SM_PRIVATE         2
                     98: #define SM_EMPTY           3
                     99: #define SM_SHARED          4
                    100: #define SM_TRUESHARED      5
                    101: #define SM_PRIVATE_ALIASED 6
                    102: #define SM_SHARED_ALIASED  7
                    103: 
                    104: 
                    105: struct vm_region_extended_info {
                    106:        vm_prot_t               protection;
                    107:         unsigned int            user_tag;
                    108:         unsigned int            pages_resident;
                    109:         unsigned int            pages_shared_now_private;
                    110:         unsigned int            pages_swapped_out;
                    111:         unsigned int            pages_referenced;
                    112:         unsigned int            ref_count;
                    113:         unsigned short          shadow_depth;
                    114:         unsigned char           external_pager;
                    115:         unsigned char           share_mode;
                    116: };
                    117: 
                    118: typedef struct vm_region_extended_info         *vm_region_extended_info_t;
                    119: typedef struct vm_region_extended_info          vm_region_extended_info_data_t;
                    120: 
                    121: #define VM_REGION_EXTENDED_INFO_COUNT          \
                    122:        (sizeof(vm_region_extended_info_data_t)/sizeof(int))
                    123: 
                    124: 
                    125: #define VM_REGION_TOP_INFO     12
                    126: 
                    127: struct vm_region_top_info {
                    128:         unsigned int            obj_id;
                    129:         unsigned int            ref_count;
                    130:         unsigned int            private_pages_resident;
                    131:         unsigned int            shared_pages_resident;
                    132:         unsigned char           share_mode;
                    133: };
                    134: 
                    135: typedef struct vm_region_top_info              *vm_region_top_info_t;
                    136: typedef struct vm_region_top_info               vm_region_top_info_data_t;
                    137: 
                    138: #define VM_REGION_TOP_INFO_COUNT               \
                    139:        (sizeof(vm_region_top_info_data_t)/sizeof(int))
                    140: 
                    141: 
                    142: struct vm_read_entry {
                    143:        vm_address_t    address;
                    144:        vm_size_t       size;
                    145: };
                    146: 
                    147: #define VM_MAP_ENTRY_MAX  (256)
                    148: 
                    149: typedef struct vm_read_entry   vm_read_entry_t[VM_MAP_ENTRY_MAX];
                    150: 
                    151: #endif /*_MACH_VM_REGION_H_*/

unix.superglobalmegacorp.com

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