|
|
1.1 ! root 1: /* ! 2: * Mach Operating System ! 3: * Copyright (c) 1991,1990,1989,1988,1987 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/memory_object_default.defs ! 28: * ! 29: * Abstract: ! 30: * Mach external memory management interface declaration; subset ! 31: * that is applicable to managers of kernel-created memory objects. ! 32: */ ! 33: ! 34: subsystem ! 35: #if KERNEL_USER ! 36: KernelUser ! 37: #endif /* KERNEL_USER */ ! 38: memory_object_default 2250; ! 39: ! 40: #ifdef MACH_KERNEL ! 41: #include <norma_vm.h> ! 42: #if NORMA_VM ! 43: userprefix k_; ! 44: #endif /* NORMA_VM */ ! 45: #endif /* MACH_KERNEL */ ! 46: ! 47: #include <mach/std_types.defs> ! 48: #include <mach/mach_types.defs> ! 49: ! 50: #if SEQNOS ! 51: serverprefix seqnos_; ! 52: serverdemux seqnos_memory_object_default_server; ! 53: #endif /* SEQNOS */ ! 54: ! 55: /* ! 56: * Pass on responsibility for the new kernel-created memory ! 57: * object. The port on which this request is that port ! 58: * (possibly a memory object itself) registered as the "default ! 59: * pager". Other arguments are as described for memory_object_init. ! 60: * [No reply required.] ! 61: */ ! 62: simpleroutine memory_object_create( ! 63: old_memory_object : memory_object_t = ! 64: MACH_MSG_TYPE_MOVE_SEND ! 65: ctype: mach_port_t; ! 66: #if SEQNOS ! 67: msgseqno seqno : mach_port_seqno_t; ! 68: #endif /* SEQNOS */ ! 69: new_memory_object : memory_object_t = ! 70: MACH_MSG_TYPE_MOVE_RECEIVE ! 71: ctype: mach_port_t ! 72: #if KERNEL_USER ! 73: /* for compatibility with Mach 2.5 kernels */ ! 74: , dealloc ! 75: #endif /* KERNEL_USER */ ! 76: ; ! 77: new_object_size : vm_size_t; ! 78: new_control_port : memory_object_control_t = ! 79: MACH_MSG_TYPE_MAKE_SEND ! 80: ctype: mach_port_t; ! 81: new_name : memory_object_name_t = ! 82: MACH_MSG_TYPE_MAKE_SEND ! 83: ctype: mach_port_t; ! 84: new_page_size : vm_size_t); ! 85: ! 86: /* ! 87: * Provide initial data contents for this region of ! 88: * the memory object. If data has already been written ! 89: * to the object, this value must be discarded; otherwise, ! 90: * this call acts identically to memory_object_data_write. ! 91: */ ! 92: simpleroutine memory_object_data_initialize( ! 93: memory_object : memory_object_t; ! 94: #if SEQNOS ! 95: msgseqno seqno : mach_port_seqno_t; ! 96: #endif /* SEQNOS */ ! 97: memory_control_port : memory_object_control_t = ! 98: MACH_MSG_TYPE_MAKE_SEND ! 99: ctype: mach_port_t; ! 100: offset : vm_offset_t; ! 101: data : pointer_t); ! 102: ! 103: #if 0 ! 104: /* ! 105: * Indicate that the specified range of data in this memory object ! 106: * will not be requested again until it is reinitialized with ! 107: * memory_object_data_write or memory_object_data_initialize. ! 108: */ ! 109: simpleroutine memory_object_data_terminate( ! 110: memory_object : memory_object_t; ! 111: #if SEQNOS ! 112: msgseqno seqno : mach_port_seqno_t; ! 113: #endif /* SEQNOS */ ! 114: memory_control_port : memory_object_control_t = ! 115: MACH_MSG_TYPE_MAKE_SEND ! 116: ctype: mach_port_t; ! 117: offset : vm_offset_t; ! 118: size : vm_size_t); ! 119: #else /* 0 */ ! 120: skip; /* memory_object_data_terminate */ ! 121: #endif /* 0 */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.