|
|
1.1 root 1: /*
2: * Mach Operating System
3: * Copyright (c) 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 [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: */
28: /*
29: * File: ipc/ipc_right.h
30: * Author: Rich Draves
31: * Date: 1989
32: *
33: * Declarations of functions to manipulate IPC capabilities.
34: */
35:
36: #ifndef _IPC_IPC_RIGHT_H_
37: #define _IPC_IPC_RIGHT_H_
38:
39: #include <mach_ipc_compat.h>
40:
41: #include <mach/boolean.h>
42: #include <mach/kern_return.h>
43: #include <ipc/ipc_port.h>
44:
45: #define ipc_right_lookup_read ipc_right_lookup_write
46:
47: extern kern_return_t
48: ipc_right_lookup_write(/* ipc_space_t, mach_port_t, ipc_entry_t * */);
49:
50: extern boolean_t
51: ipc_right_reverse(/* ipc_space_t, ipc_object_t,
52: mach_port_t *, ipc_entry_t * */);
53:
54: extern kern_return_t
55: ipc_right_dnrequest(/* ipc_space_t, mach_port_t, boolean_t,
56: ipc_port_t, ipc_port_t * */);
57:
58: extern ipc_port_t
59: ipc_right_dncancel(/* ipc_space_t, ipc_port_t, mach_port_t, ipc_entry_t */);
60:
61: #define ipc_right_dncancel_macro(space, port, name, entry) \
62: (((entry)->ie_request == 0) ? IP_NULL : \
63: ipc_right_dncancel((space), (port), (name), (entry)))
64:
65: extern boolean_t
66: ipc_right_inuse(/* ipc_space_t, mach_port_t, ipc_entry_t */);
67:
68: extern boolean_t
69: ipc_right_check(/* ipc_space_t, mach_port_t, ipc_entry_t, ipc_port_t */);
70:
71: extern void
72: ipc_right_clean(/* ipc_space_t, mach_port_t, ipc_entry_t */);
73:
74: extern kern_return_t
75: ipc_right_destroy(/* ipc_space_t, mach_port_t, ipc_entry_t */);
76:
77: extern kern_return_t
78: ipc_right_dealloc(/* ipc_space_t, mach_port_t, ipc_entry_t */);
79:
80: extern kern_return_t
81: ipc_right_delta(/* ipc_space_t, mach_port_t, ipc_entry_t,
82: mach_port_right_t, mach_port_delta_t */);
83:
84: extern kern_return_t
85: ipc_right_info(/* ipc_space_t, mach_port_t, ipc_entry_t,
86: mach_port_type_t *, mach_port_urefs_t * */);
87:
88: extern boolean_t
89: ipc_right_copyin_check(/* ipc_space_t, mach_port_t, ipc_entry_t,
90: mach_msg_type_name_t */);
91:
92: extern kern_return_t
93: ipc_right_copyin(/* ipc_space_t, mach_port_t, ipc_entry_t,
94: mach_msg_type_name_t, boolean_t,
95: ipc_object_t *, ipc_port_t * */);
96:
97: extern void
98: ipc_right_copyin_undo(/* ipc_space_t, mach_port_t, ipc_entry_t,
99: mach_msg_type_name_t, ipc_object_t, ipc_port_t */);
100:
101: extern kern_return_t
102: ipc_right_copyin_two(/* ipc_space_t, mach_port_t, ipc_entry_t,
103: ipc_object_t *, ipc_port_t * */);
104:
105: extern kern_return_t
106: ipc_right_copyout(/* ipc_space_t, mach_port_t, ipc_entry_t,
107: mach_msg_type_name_t, boolean_t, ipc_object_t */);
108:
109: extern kern_return_t
110: ipc_right_rename(/* ipc_space_t, mach_port_t, ipc_entry_t,
111: mach_port_t, ipc_entry_t */);
112:
113: #if MACH_IPC_COMPAT
114:
115: extern kern_return_t
116: ipc_right_copyin_compat(/* ipc_space_t, mach_port_t, ipc_entry_t,
117: mach_msg_type_name_t, boolean_t, ipc_object_t * */);
118:
119: extern kern_return_t
120: ipc_right_copyin_header(/* ipc_space_t, mach_port_t, ipc_entry_t,
121: ipc_object_t *, mach_msg_type_name_t * */);
122:
123: #endif /* MACH_IPC_COMPAT */
124: #endif /* _IPC_IPC_RIGHT_H_ */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.