|
|
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:
43: #if SEQNOS
44: serverprefix seqnos_;
45: serverdemux seqnos_memory_object_default_server;
1.1.1.2 root 46: #endif /* SEQNOS */
1.1 root 47:
48: /*
49: * Pass on responsibility for the new kernel-created memory
50: * object. The port on which this request is that port
51: * (possibly a memory object itself) registered as the "default
52: * pager". Other arguments are as described for memory_object_init.
53: * [No reply required.]
54: */
55: simpleroutine memory_object_create(
56: old_memory_object : memory_object_t =
57: MACH_MSG_TYPE_MOVE_SEND
58: ctype: mach_port_t;
59: #if SEQNOS
60: msgseqno seqno : mach_port_seqno_t;
1.1.1.2 root 61: #endif /* SEQNOS */
1.1 root 62: new_memory_object : memory_object_t =
63: MACH_MSG_TYPE_MOVE_RECEIVE
64: ctype: mach_port_t
65: #if KERNEL_USER
66: /* for compatibility with Mach 2.5 kernels */
67: , dealloc
1.1.1.2 root 68: #endif /* KERNEL_USER */
1.1 root 69: ;
70: new_object_size : vm_size_t;
71: new_control_port : memory_object_control_t =
72: MACH_MSG_TYPE_MAKE_SEND
73: ctype: mach_port_t;
74: new_name : memory_object_name_t =
75: MACH_MSG_TYPE_MAKE_SEND
76: ctype: mach_port_t;
77: new_page_size : vm_size_t);
78:
79: /*
80: * Provide initial data contents for this region of
81: * the memory object. If data has already been written
82: * to the object, this value must be discarded; otherwise,
83: * this call acts identically to memory_object_data_write.
84: */
85: simpleroutine memory_object_data_initialize(
86: memory_object : memory_object_t;
87: #if SEQNOS
88: msgseqno seqno : mach_port_seqno_t;
1.1.1.2 root 89: #endif /* SEQNOS */
1.1 root 90: memory_control_port : memory_object_control_t =
91: MACH_MSG_TYPE_MAKE_SEND
92: ctype: mach_port_t;
93: offset : vm_offset_t;
94: data : pointer_t);
95:
96: #if 0
97: /*
98: * Indicate that the specified range of data in this memory object
99: * will not be requested again until it is reinitialized with
100: * memory_object_data_write or memory_object_data_initialize.
101: */
102: simpleroutine memory_object_data_terminate(
103: memory_object : memory_object_t;
104: #if SEQNOS
105: msgseqno seqno : mach_port_seqno_t;
1.1.1.2 root 106: #endif /* SEQNOS */
1.1 root 107: memory_control_port : memory_object_control_t =
108: MACH_MSG_TYPE_MAKE_SEND
109: ctype: mach_port_t;
110: offset : vm_offset_t;
111: size : vm_size_t);
1.1.1.2 root 112: #else /* 0 */
1.1 root 113: skip; /* memory_object_data_terminate */
1.1.1.2 root 114: #endif /* 0 */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.