|
|
1.1.1.2 root 1: /*
1.1 root 2: * Mach Operating System
3: * Copyright (c) 1991,1990,1989,1988,1987 Carnegie Mellon University
4: * All Rights Reserved.
1.1.1.2 root 5: *
1.1 root 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.
1.1.1.2 root 11: *
1.1 root 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.
1.1.1.2 root 15: *
1.1 root 16: * Carnegie Mellon requests users of this software to return to
1.1.1.2 root 17: *
1.1 root 18: * Software Distribution Coordinator or [email protected]
19: * School of Computer Science
20: * Carnegie Mellon University
21: * Pittsburgh PA 15213-3890
1.1.1.2 root 22: *
1.1 root 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
1.1.1.2 root 37: #endif /* KERNEL_USER */
1.1 root 38: memory_object_default 2250;
39:
40: #include <mach/std_types.defs>
41: #include <mach/mach_types.defs>
42:
1.1.1.4 root 43: #ifdef MEMORY_OBJECT_IMPORTS
44: MEMORY_OBJECT_IMPORTS
45: #endif
46:
1.1 root 47: #if SEQNOS
48: serverprefix seqnos_;
49: serverdemux seqnos_memory_object_default_server;
1.1.1.2 root 50: #endif /* SEQNOS */
1.1 root 51:
52: /*
53: * Pass on responsibility for the new kernel-created memory
54: * object. The port on which this request is that port
55: * (possibly a memory object itself) registered as the "default
56: * pager". Other arguments are as described for memory_object_init.
57: * [No reply required.]
58: */
59: simpleroutine memory_object_create(
60: old_memory_object : memory_object_t =
61: MACH_MSG_TYPE_MOVE_SEND
62: ctype: mach_port_t;
63: #if SEQNOS
64: msgseqno seqno : mach_port_seqno_t;
1.1.1.2 root 65: #endif /* SEQNOS */
1.1 root 66: new_memory_object : memory_object_t =
67: MACH_MSG_TYPE_MOVE_RECEIVE
68: ctype: mach_port_t
69: #if KERNEL_USER
70: /* for compatibility with Mach 2.5 kernels */
71: , dealloc
1.1.1.2 root 72: #endif /* KERNEL_USER */
1.1 root 73: ;
74: new_object_size : vm_size_t;
75: new_control_port : memory_object_control_t =
76: MACH_MSG_TYPE_MAKE_SEND
77: ctype: mach_port_t;
78: new_name : memory_object_name_t =
79: MACH_MSG_TYPE_MAKE_SEND
80: ctype: mach_port_t;
81: new_page_size : vm_size_t);
82:
83: /*
84: * Provide initial data contents for this region of
85: * the memory object. If data has already been written
86: * to the object, this value must be discarded; otherwise,
1.1.1.5 ! root 87: * this call acts identically to memory_object_data_return.
1.1 root 88: */
89: simpleroutine memory_object_data_initialize(
90: memory_object : memory_object_t;
91: #if SEQNOS
92: msgseqno seqno : mach_port_seqno_t;
1.1.1.2 root 93: #endif /* SEQNOS */
1.1 root 94: memory_control_port : memory_object_control_t =
95: MACH_MSG_TYPE_MAKE_SEND
96: ctype: mach_port_t;
97: offset : vm_offset_t;
98: data : pointer_t);
99:
100: #if 0
101: /*
102: * Indicate that the specified range of data in this memory object
103: * will not be requested again until it is reinitialized with
1.1.1.5 ! root 104: * memory_object_data_return or memory_object_data_initialize.
1.1 root 105: */
106: simpleroutine memory_object_data_terminate(
107: memory_object : memory_object_t;
108: #if SEQNOS
109: msgseqno seqno : mach_port_seqno_t;
1.1.1.2 root 110: #endif /* SEQNOS */
1.1 root 111: memory_control_port : memory_object_control_t =
112: MACH_MSG_TYPE_MAKE_SEND
113: ctype: mach_port_t;
114: offset : vm_offset_t;
115: size : vm_size_t);
1.1.1.2 root 116: #else /* 0 */
1.1 root 117: skip; /* memory_object_data_terminate */
1.1.1.2 root 118: #endif /* 0 */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.