1 /*
2 * Mach Operating System
3 * Copyright (c) 1991 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 Software.Distribution@CS.CMU.EDU
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 * HISTORY
28 * $Log: norma_internal.defs,v $
29 * Revision 2.3 92/03/10 16:28:47 jsb
30 * Merged in norma branch changes as of NORMA_MK7.
31 * [92/03/09 12:52:25 jsb]
32 *
33 * Revision 2.2.2.2 92/02/21 11:25:21 jsb
34 * Added norma_xmm_object_release.
35 * [92/02/16 14:30:43 jsb]
36 *
37 * Added norma_xmm_object_by_memory_object.
38 * [92/02/10 17:04:44 jsb]
39 *
40 * Revision 2.2.2.1 92/01/03 16:38:34 jsb
41 * In norma_ipc_pull_receive, seqno and qlimit are shorts, not ints.
42 * [91/12/26 18:27:24 jsb]
43 *
44 * Replaced simpleroutines norma_ipc_start_migrating_messages and
45 * norma_ipc_all_messages_migrated with routine norma_ipc_pull_receive.
46 * [91/12/25 16:46:19 jsb]
47 *
48 * Added norma_ipc_no_local_senders and norma_ipc_stransit_request.
49 * Removed norma_token_deliver.
50 * [91/12/24 14:30:01 jsb]
51 *
52 * Revision 2.2 91/12/13 14:10:54 jsb
53 * First checkin. Split off from mach/mach_norma.defs.
54 *
55 */
56
57 subsystem
58 #if KERNEL_USER
59 KernelUser
60 #endif KERNEL_USER
61 #if KERNEL_SERVER
62 KernelServer
63 #endif KERNEL_SERVER
64 norma_internal 556000;
65 #ifdef KERNEL_USER
66 userprefix r_;
67 #endif KERNEL_USER
68
69 #include <mach/std_types.defs>
70 #include <mach/mach_types.defs>
71
72 /*
73 * Create a task with no inherited address space on the given node.
74 * Used between per-node kernels to implement task_create_remote,
75 * when there is no parent task available (otherwise we could just
76 * use norma_task_create with inherit_memory=FALSE).
77 */
78 routine norma_task_allocate(
79 host_priv : host_priv_t;
80 out task : task_t);
81
82 /*
83 * Returns the current value of all inherited ports in task.
84 * XXX should name port0, etc. as exception, etc.
85 */
86 routine task_get_inherited_ports(
87 task : task_t;
88 out port0 : mach_port_t;
89 out port1 : mach_port_t;
90 out port2 : mach_port_t;
91 out port3 : mach_port_t;
92 out exception : mach_port_t;
93 out bootstrap : mach_port_t);
94
95 /*
96 * Returns the current value of all inherited ports in task.
97 */
98 routine task_set_inherited_ports(
99 task : task_t;
100 port0 : mach_port_t;
101 port1 : mach_port_t;
102 port2 : mach_port_t;
103 port3 : mach_port_t;
104 exception : mach_port_t;
105 bootstrap : mach_port_t);
106
107 /*
108 * Create a memory object representing given range of memory
109 * in given task. Useful for lazy address space copies.
110 */
111 routine norma_copy_create(
112 task : vm_task_t;
113 start : vm_offset_t;
114 size : vm_size_t;
115 out memory_object : mach_port_make_send_t);
116
117 routine norma_ipc_pull_receive(
118 host_priv : host_priv_t;
119 uid : int;
120 dest_node : int;
121 out stransit : int;
122 out sotransit : int;
123 out nsrequest : mach_port_move_send_once_t;
124 out pdrequest : mach_port_move_send_once_t;
125 out dnrequest_list : int; /* XXX */
126 out dnrequest_count : int; /* XXX */
127 out seqno : short;
128 out qlimit : short);
129
130 simpleroutine norma_ipc_no_local_senders(
131 host_priv : host_priv_t;
132 uid : int;
133 stransit : int);
134
135 routine norma_ipc_stransit_request(
136 host_priv : host_priv_t;
137 uid : int;
138 out stransit : int);
139
140 routine norma_xmm_object_by_memory_object(
141 host_priv : host_priv_t;
142 memory_object : mach_port_copy_send_t;
143 out xmm_object : mach_port_move_send_t);
144
145 simpleroutine norma_xmm_object_release(
146 host_priv : host_priv_t;
147 memory_object : mach_port_copy_send_t);
Cache object: ab13fd27e60c83f1703f1f83fa07548b
|