FreeBSD/Linux Kernel Cross Reference
sys/ipc/ipc_pset.h
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 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_pset.h,v $
29 * Revision 2.6 91/10/09 16:10:13 af
30 * Revision 2.5.2.1 91/09/16 10:15:55 rpd
31 * Added (unconditional) ipc_pset_print declaration.
32 * [91/09/02 rpd]
33 *
34 * Revision 2.5.2.1 91/09/16 10:15:55 rpd
35 * Added (unconditional) ipc_pset_print declaration.
36 * [91/09/02 rpd]
37 *
38 * Revision 2.5 91/05/14 16:35:58 mrt
39 * Correcting copyright
40 *
41 * Revision 2.4 91/02/05 17:23:20 mrt
42 * Changed to new Mach copyright
43 * [91/02/01 15:50:34 mrt]
44 *
45 * Revision 2.3 90/11/05 14:29:57 rpd
46 * Added ipc_pset_reference, ipc_pset_release.
47 * [90/10/29 rpd]
48 *
49 * Revision 2.2 90/06/02 14:51:23 rpd
50 * Created for new IPC.
51 * [90/03/26 21:02:09 rpd]
52 *
53 */
54 /*
55 * File: ipc/ipc_pset.h
56 * Author: Rich Draves
57 * Date: 1989
58 *
59 * Definitions for port sets.
60 */
61
62 #ifndef _IPC_IPC_PSET_H_
63 #define _IPC_IPC_PSET_H_
64
65 #include <mach/port.h>
66 #include <mach/kern_return.h>
67 #include <ipc/ipc_object.h>
68 #include <ipc/ipc_mqueue.h>
69
70 typedef struct ipc_pset {
71 struct ipc_object ips_object;
72
73 mach_port_t ips_local_name;
74 struct ipc_mqueue ips_messages;
75 } *ipc_pset_t;
76
77 #define ips_references ips_object.io_references
78
79 #define IPS_NULL ((ipc_pset_t) IO_NULL)
80
81 #define ips_active(pset) io_active(&(pset)->ips_object)
82 #define ips_lock(pset) io_lock(&(pset)->ips_object)
83 #define ips_lock_try(pset) io_lock_try(&(pset)->ips_object)
84 #define ips_unlock(pset) io_unlock(&(pset)->ips_object)
85 #define ips_check_unlock(pset) io_check_unlock(&(pset)->ips_object)
86 #define ips_reference(pset) io_reference(&(pset)->ips_object)
87 #define ips_release(pset) io_release(&(pset)->ips_object)
88
89 extern kern_return_t
90 ipc_pset_alloc(/* ipc_space_t, mach_port_t *, ipc_pset_t * */);
91
92 extern kern_return_t
93 ipc_pset_alloc_name(/* ipc_space_t, mach_port_t, ipc_pset_t * */);
94
95 extern void
96 ipc_pset_add(/* ipc_pset_t, ipc_port_t */);
97
98 extern void
99 ipc_pset_remove(/* ipc_pset_t, ipc_port_t */);
100
101 extern kern_return_t
102 ipc_pset_move(/* ipc_space_t, mach_port_t, mach_port_t */);
103
104 extern void
105 ipc_pset_destroy(/* ipc_pset_t */);
106
107 #define ipc_pset_reference(pset) \
108 ipc_object_reference(&(pset)->ips_object)
109
110 #define ipc_pset_release(pset) \
111 ipc_object_release(&(pset)->ips_object)
112
113 extern void
114 ipc_pset_print(/* ipc_pset_t */);
115
116 #endif _IPC_IPC_PSET_H_
Cache object: 446db602a6d1db19724e39241c5f9a6f
|