FreeBSD/Linux Kernel Cross Reference
sys/ipc/ipc_right.h
1 /*
2 * Mach Operating System
3 * Copyright (c) 1993,1991,1990,1989 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: ipc_right.h,v $
29 * Revision 2.5 93/11/17 17:01:29 dbg
30 * Added ANSI function prototypes.
31 * [93/09/23 dbg]
32 *
33 * Revision 2.4 91/05/14 16:36:32 mrt
34 * Correcting copyright
35 *
36 * Revision 2.3 91/02/05 17:23:39 mrt
37 * Changed to new Mach copyright
38 * [91/02/01 15:51:08 mrt]
39 *
40 * Revision 2.2 90/06/02 14:51:35 rpd
41 * Created for new IPC.
42 * [90/03/26 21:02:56 rpd]
43 *
44 */
45 /*
46 * File: ipc/ipc_right.h
47 * Author: Rich Draves
48 * Date: 1989
49 *
50 * Declarations of functions to manipulate IPC capabilities.
51 */
52
53 #ifndef _IPC_IPC_RIGHT_H_
54 #define _IPC_IPC_RIGHT_H_
55
56 #include <mach_ipc_compat.h>
57
58 #include <mach/boolean.h>
59 #include <mach/kern_return.h>
60 #include <ipc/ipc_types.h>
61 #include <ipc/ipc_entry.h>
62 #include <ipc/ipc_port.h>
63
64 #define ipc_right_lookup_read ipc_right_lookup_write
65
66 extern kern_return_t
67 ipc_right_lookup_write(
68 ipc_space_t space,
69 mach_port_t name,
70 ipc_entry_t *entryp);
71
72 extern boolean_t
73 ipc_right_reverse(
74 ipc_space_t space,
75 ipc_object_t object,
76 mach_port_t *namep,
77 ipc_entry_t *entryp);
78
79 extern kern_return_t
80 ipc_right_dnrequest(
81 ipc_space_t space,
82 mach_port_t name,
83 boolean_t immediate,
84 ipc_port_t notify,
85 ipc_port_t *previousp);
86
87 extern ipc_port_t
88 ipc_right_dncancel(
89 ipc_space_t space,
90 ipc_port_t port,
91 mach_port_t name,
92 ipc_entry_t entry);
93
94 #define ipc_right_dncancel_macro(space, port, name, entry) \
95 (((entry)->ie_request == 0) ? IP_NULL : \
96 ipc_right_dncancel((space), (port), (name), (entry)))
97
98 extern boolean_t
99 ipc_right_inuse(
100 ipc_space_t space,
101 mach_port_t name,
102 ipc_entry_t entry);
103
104 extern boolean_t
105 ipc_right_check(
106 ipc_space_t space,
107 ipc_port_t port,
108 mach_port_t name,
109 ipc_entry_t entry);
110
111 extern void
112 ipc_right_clean(
113 ipc_space_t space,
114 mach_port_t name,
115 ipc_entry_t entry);
116
117 extern kern_return_t
118 ipc_right_destroy(
119 ipc_space_t space,
120 mach_port_t name,
121 ipc_entry_t entry);
122
123 extern kern_return_t
124 ipc_right_dealloc(
125 ipc_space_t space,
126 mach_port_t name,
127 ipc_entry_t entry);
128
129 extern kern_return_t
130 ipc_right_delta(
131 ipc_space_t space,
132 mach_port_t name,
133 ipc_entry_t entry,
134 mach_port_right_t right,
135 mach_port_delta_t delta);
136
137 extern kern_return_t
138 ipc_right_info(
139 ipc_space_t space,
140 mach_port_t name,
141 ipc_entry_t entry,
142 mach_port_type_t *typep,
143 mach_port_urefs_t *urefsp);
144
145 extern boolean_t
146 ipc_right_copyin_check(
147 ipc_space_t space,
148 mach_port_t name,
149 ipc_entry_t entry,
150 mach_msg_type_name_t msgt_name);
151
152 extern kern_return_t
153 ipc_right_copyin(
154 ipc_space_t space,
155 mach_port_t name,
156 ipc_entry_t entry,
157 mach_msg_type_name_t msgt_name,
158 boolean_t deadok,
159 ipc_object_t *objectp,
160 ipc_port_t *sorightp);
161
162 extern void
163 ipc_right_copyin_undo(
164 ipc_space_t space,
165 mach_port_t name,
166 ipc_entry_t entry,
167 mach_msg_type_name_t msgt_name,
168 ipc_object_t object,
169 ipc_port_t soright);
170
171 extern kern_return_t
172 ipc_right_copyin_two(
173 ipc_space_t space,
174 mach_port_t name,
175 ipc_entry_t entry,
176 ipc_object_t *objectp,
177 ipc_port_t *sorightp);
178
179 extern kern_return_t
180 ipc_right_copyout(
181 ipc_space_t space,
182 mach_port_t name,
183 ipc_entry_t entry,
184 mach_msg_type_name_t msgt_name,
185 boolean_t overflow,
186 ipc_object_t object);
187
188 extern kern_return_t
189 ipc_right_rename(
190 ipc_space_t space,
191 mach_port_t oname,
192 ipc_entry_t oentry,
193 mach_port_t nname,
194 ipc_entry_t nentry);
195
196 #if MACH_IPC_COMPAT
197
198 extern kern_return_t
199 ipc_right_copyin_compat(ipc_space_t, mach_port_t, ipc_entry_t,
200 mach_msg_type_name_t, boolean_t, ipc_object_t *);
201
202 extern kern_return_t
203 ipc_right_copyin_header(ipc_space_t, mach_port_t, ipc_entry_t,
204 ipc_object_t *, mach_msg_type_name_t *);
205
206 #endif /* MACH_IPC_COMPAT */
207 #endif /* _IPC_IPC_RIGHT_H_ */
Cache object: 8145c2b36fa9d34b0cac9daa0204bc73
|