FreeBSD/Linux Kernel Cross Reference
sys/ipc/ipc_types.h
1 /*
2 * Mach Operating System
3 * Copyright (c) 1993 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_types.h,v $
29 * Revision 2.2 93/11/17 17:03:27 dbg
30 * Renamed to ipc/ipc_types.h. Included union for
31 * message return type for ipc_mqueue_receive.
32 * [93/03/15 dbg]
33 *
34 * Revision 2.2 93/01/27 09:31:56 danner
35 * Created to break latent circularity between
36 * ipc_kmsg_queue.h and kern/thread.h.
37 * [93/01/27 danner]
38 *
39 */
40 /*
41 * File: ipc/ipc_types.h
42 * Author: Dan Stodolsky and David Golub
43 * Date: 1993
44 *
45 * Definitions for commonly used IPC structures
46 * included in or referenced by other kernel data
47 * structures. Many of these are handles to opaque
48 * data structures defined elsewhere. Others are
49 * defined here to break circular chains of include
50 * files.
51 */
52
53 #ifndef _IPC_IPC_TYPES_H_
54 #define _IPC_IPC_TYPES_H_
55
56 #include <mach/message.h> /* mach_msg_size_t */
57
58 /*
59 * A kernel IPC message structure, from ipc/ipc_kmsg.h.
60 */
61 typedef struct ipc_kmsg * ipc_kmsg_t;
62 #define IKM_NULL ((ipc_kmsg_t) 0)
63
64 /*
65 * Queue of ipc_kmsgs.
66 */
67 struct ipc_kmsg_queue {
68 struct ipc_kmsg *ikmq_base;
69 };
70 typedef struct ipc_kmsg_queue *ipc_kmsg_queue_t;
71
72 #define IKMQ_NULL ((ipc_kmsg_queue_t) 0)
73
74 /*
75 * Return value for receiving an ipc_kmsg.
76 * May be a pointer to an ipc_kmsg, or
77 * the size of a too-large message.
78 */
79 union ipc_kmsg_return {
80 struct ipc_kmsg *kmsg; /* received message */
81 mach_msg_size_t msize; /* max size for received message */
82 };
83
84 /*
85 * From ipc/ipc_space.h:
86 */
87 typedef struct ipc_space * ipc_space_t;
88 #define IS_NULL ((ipc_space_t) 0)
89
90 /*
91 * From ipc/ipc_port.h:
92 */
93
94 typedef struct ipc_port * ipc_port_t;
95
96 #endif /* _IPC_IPC_TYPES_H_ */
Cache object: 96a07542f4df9355029b105882dd8218
|