|
|
1.1 ! root 1: /* ! 2: * Copyright (c) 1999 Apple Computer, Inc. All rights reserved. ! 3: * ! 4: * @APPLE_LICENSE_HEADER_START@ ! 5: * ! 6: * Portions Copyright (c) 1999 Apple Computer, Inc. All Rights ! 7: * Reserved. This file contains Original Code and/or Modifications of ! 8: * Original Code as defined in and that are subject to the Apple Public ! 9: * Source License Version 1.1 (the "License"). You may not use this file ! 10: * except in compliance with the License. Please obtain a copy of the ! 11: * License at http://www.apple.com/publicsource and read it before using ! 12: * this file. ! 13: * ! 14: * The Original Code and all software distributed under the License are ! 15: * distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER ! 16: * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, ! 17: * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, ! 18: * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT. Please see the ! 19: * License for the specific language governing rights and limitations ! 20: * under the License. ! 21: * ! 22: * @APPLE_LICENSE_HEADER_END@ ! 23: */ ! 24: ! 25: /* ! 26: * Mach Operating System ! 27: * Copyright (c) 1991,1990,1989,1988,1987 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 [email protected] ! 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: * HISTORY ! 52: * $Log: memory_object_default.defs,v $ ! 53: * Revision 1.1.1.1.666.4 1999/03/16 17:05:41 wsanchez ! 54: * Substitute License ! 55: * ! 56: * Revision 1.1.1.1.666.3 1999/03/16 15:28:04 wsanchez ! 57: * Substitute copyright ! 58: * ! 59: * Revision 1.1.1.1.666.2 1999/03/16 10:37:39 umeshv ! 60: * Fixed errors in previous commit. ! 61: * ! 62: * Revision 1.1.1.1.666.1 1999/03/11 09:52:50 umeshv ! 63: * Added copyrights. ! 64: * ! 65: * Revision 1.1.1.1 1997/09/30 02:44:51 wsanchez ! 66: * Import of kernel from umeshv/kernel ! 67: * ! 68: * Revision 2.8 91/08/28 11:15:24 jsb ! 69: * Added conditionalized sequence number support. ! 70: * [91/08/13 rpd] ! 71: * ! 72: * Revision 2.7 91/07/01 08:25:22 jsb ! 73: * If KERNEL and NORMA_VM, then use a userprefix (to allow interposition). ! 74: * [91/06/29 16:35:53 jsb] ! 75: * ! 76: * Revision 2.6 91/06/25 10:30:41 rpd ! 77: * Changed the port-based type declarations ! 78: * to use mach_port_t as the C type name. ! 79: * [91/05/23 rpd] ! 80: * ! 81: * Revision 2.5 91/05/14 16:56:08 mrt ! 82: * Correcting copyright ! 83: * ! 84: * Revision 2.4 91/02/05 17:34:05 mrt ! 85: * Changed to new Mach copyright ! 86: * [91/02/01 17:19:22 mrt] ! 87: * ! 88: * Revision 2.3 90/08/06 17:06:16 rpd ! 89: * For compatibility with Mach 2.5, added dealloc to ! 90: * argument of memory_object_create. ! 91: * [90/08/04 rpd] ! 92: * ! 93: * Revision 2.2 90/06/02 14:59:00 rpd ! 94: * Converted to new IPC. ! 95: * [90/03/26 22:35:46 rpd] ! 96: * ! 97: * Revision 2.1 89/08/03 17:18:28 rwd ! 98: * Created. ! 99: * ! 100: * Revision 2.3 89/02/25 18:38:29 gm0w ! 101: * Changes for cleanup. ! 102: * ! 103: * Revision 2.2 89/01/15 16:31:26 rpd ! 104: * Moved from kern/ to mach/. ! 105: * [89/01/15 14:40:47 rpd] ! 106: * ! 107: * Revision 2.7 89/01/12 07:58:30 rpd ! 108: * Fixed includes. ! 109: * [89/01/12 04:52:50 rpd] ! 110: * ! 111: * Revision 2.6 88/08/25 18:17:23 mwyoung ! 112: * Rid the kernel_task of rights to the new memory_object in ! 113: * memory_object_create. ! 114: * Add size argument to memory_object_create. ! 115: * [88/08/11 18:47:16 mwyoung] ! 116: * ! 117: * Revision 2.5 88/08/06 18:23:00 rpd ! 118: * Added dealloc flag to new_memory_object arg of memory_object_create(). ! 119: * Otherwise, kernel_task is left with send right, and this is very bad. ! 120: * ! 121: * 29-Jun-88 Michael Young (mwyoung) at Carnegie-Mellon University ! 122: * Use new types. ! 123: * ! 124: * 29-Jun-88 Michael Young (mwyoung) at Carnegie-Mellon University ! 125: * Moved data type declarations to "mach_types.defs". ! 126: * ! 127: * 9-Dec-87 Michael Young (mwyoung) at Carnegie-Mellon University ! 128: * Created. ! 129: */ ! 130: /* ! 131: * File: mach/memory_object_default.defs ! 132: * ! 133: * Abstract: ! 134: * Mach external memory management interface declaration; subset ! 135: * that is applicable to managers of kernel-created memory objects. ! 136: */ ! 137: ! 138: subsystem ! 139: #if KERNEL_USER ! 140: KernelUser ! 141: #endif KERNEL_USER ! 142: memory_object_default 2250; ! 143: ! 144: #include <mach/std_types.defs> ! 145: #include <mach/mach_types.defs> ! 146: ! 147: #if SEQNOS ! 148: serverprefix seqnos_; ! 149: serverdemux seqnos_memory_object_default_server; ! 150: #endif SEQNOS ! 151: ! 152: /* ! 153: * Pass on responsibility for the new kernel-created memory ! 154: * object. The port on which this request is that port ! 155: * (possibly a memory object itself) registered as the "default ! 156: * pager". Other arguments are as described for memory_object_init. ! 157: * [No reply required.] ! 158: */ ! 159: simpleroutine memory_object_create( ! 160: old_memory_object : memory_object_t = ! 161: MACH_MSG_TYPE_MOVE_SEND ! 162: ctype: mach_port_t; ! 163: #if SEQNOS ! 164: msgseqno seqno : mach_port_seqno_t; ! 165: #endif SEQNOS ! 166: new_memory_object : memory_object_t = ! 167: MACH_MSG_TYPE_MOVE_RECEIVE ! 168: ctype: mach_port_t ! 169: #if KERNEL_USER ! 170: /* for compatibility with Mach 2.5 kernels */ ! 171: , dealloc ! 172: #endif KERNEL_USER ! 173: ; ! 174: new_object_size : vm_size_t; ! 175: new_control_port : memory_object_control_t = ! 176: MACH_MSG_TYPE_MAKE_SEND ! 177: ctype: mach_port_t; ! 178: new_name : memory_object_name_t = ! 179: MACH_MSG_TYPE_MAKE_SEND ! 180: ctype: mach_port_t; ! 181: new_page_size : vm_size_t); ! 182: ! 183: /* ! 184: * Provide initial data contents for this region of ! 185: * the memory object. If data has already been written ! 186: * to the object, this value must be discarded; otherwise, ! 187: * this call acts identically to memory_object_data_write. ! 188: */ ! 189: simpleroutine memory_object_data_initialize( ! 190: memory_object : memory_object_t; ! 191: #if SEQNOS ! 192: msgseqno seqno : mach_port_seqno_t; ! 193: #endif SEQNOS ! 194: memory_control_port : memory_object_control_t = ! 195: MACH_MSG_TYPE_MAKE_SEND ! 196: ctype: mach_port_t; ! 197: offset : vm_offset_t; ! 198: data : pointer_t); ! 199: ! 200: #if 0 ! 201: /* ! 202: * Indicate that the specified range of data in this memory object ! 203: * will not be requested again until it is reinitialized with ! 204: * memory_object_data_write or memory_object_data_initialize. ! 205: */ ! 206: simpleroutine memory_object_data_terminate( ! 207: memory_object : memory_object_t; ! 208: #if SEQNOS ! 209: msgseqno seqno : mach_port_seqno_t; ! 210: #endif SEQNOS ! 211: memory_control_port : memory_object_control_t = ! 212: MACH_MSG_TYPE_MAKE_SEND ! 213: ctype: mach_port_t; ! 214: offset : vm_offset_t; ! 215: size : vm_size_t); ! 216: #else 0 ! 217: skip; /* memory_object_data_terminate */ ! 218: #endif 0
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.