2 * Copyright (c) 2005 MontaVista Software, Inc.
6 * Author: Steven Dake (sdake@mvista.com)
8 * This software licensed under BSD license, the text of which follows:
10 * Redistribution and use in source and binary forms, with or without
11 * modification, are permitted provided that the following conditions are met:
13 * - Redistributions of source code must retain the above copyright notice,
14 * this list of conditions and the following disclaimer.
15 * - Redistributions in binary form must reproduce the above copyright notice,
16 * this list of conditions and the following disclaimer in the documentation
17 * and/or other materials provided with the distribution.
18 * - Neither the name of the MontaVista Software, Inc. nor the names of its
19 * contributors may be used to endorse or promote products derived from this
20 * software without specific prior written permission.
22 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
23 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
24 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
25 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
26 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
27 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
28 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
29 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
30 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
31 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
32 * THE POSSIBILITY OF SUCH DAMAGE.
34 #ifndef IPC_MSG_H_DEFINED
35 #define IPC_MSG_H_DEFINED
41 enum req_lib_msg_queue_types
{
42 MESSAGE_REQ_MSG_QUEUEOPEN
= 0,
43 MESSAGE_REQ_MSG_QUEUEOPENASYNC
= 1,
44 MESSAGE_REQ_MSG_QUEUECLOSE
= 2,
45 MESSAGE_REQ_MSG_QUEUESTATUSGET
= 3,
46 MESSAGE_REQ_MSG_QUEUEUNLINK
= 4,
47 MESSAGE_REQ_MSG_QUEUEGROUPCREATE
= 5,
48 MESSAGE_REQ_MSG_QUEUEGROUPINSERT
= 6,
49 MESSAGE_REQ_MSG_QUEUEGROUPREMOVE
= 7,
50 MESSAGE_REQ_MSG_QUEUEGROUPDELETE
= 8,
51 MESSAGE_REQ_MSG_QUEUEGROUPTRACK
= 9,
52 MESSAGE_REQ_MSG_QUEUEGROUPTRACKSTOP
= 10,
53 MESSAGE_REQ_MSG_MESSAGESEND
= 11,
54 MESSAGE_REQ_MSG_MESSAGEGET
= 12,
55 MESSAGE_REQ_MSG_MESSAGECANCEL
= 13,
56 MESSAGE_REQ_MSG_MESSAGESENDRECEIVE
= 14,
57 MESSAGE_REQ_MSG_MESSAGEREPLY
= 15
60 enum res_lib_msg_queue_types
{
61 MESSAGE_RES_MSG_QUEUEOPEN
= 0,
62 MESSAGE_RES_MSG_QUEUEOPENASYNC
= 2,
63 MESSAGE_RES_MSG_QUEUECLOSE
= 3,
64 MESSAGE_RES_MSG_QUEUESTATUSGET
= 4,
65 MESSAGE_RES_MSG_QUEUEUNLINK
= 5,
66 MESSAGE_RES_MSG_QUEUEGROUPCREATE
= 6,
67 MESSAGE_RES_MSG_QUEUEGROUPINSERT
= 7,
68 MESSAGE_RES_MSG_QUEUEGROUPREMOVE
= 8,
69 MESSAGE_RES_MSG_QUEUEGROUPDELETE
= 9,
70 MESSAGE_RES_MSG_QUEUEGROUPTRACK
= 10,
71 MESSAGE_RES_MSG_QUEUEGROUPTRACKSTOP
= 11,
72 MESSAGE_RES_MSG_MESSAGESEND
= 12,
73 MESSAGE_RES_MSG_MESSAGESENDASYNC
= 13,
74 MESSAGE_RES_MSG_MESSAGEGET
= 14,
75 MESSAGE_RES_MSG_MESSAGECANCEL
= 15,
76 MESSAGE_RES_MSG_MESSAGESENDRECEIVE
= 16,
77 MESSAGE_RES_MSG_MESSAGEREPLY
= 17,
78 MESSAGE_RES_MSG_MESSAGEREPLYASYNC
= 18
81 struct req_lib_msg_queueopen
{
82 mar_req_header_t header
;
83 SaInvocationT invocation
;
85 SaMsgQueueCreationAttributesT creationAttributes
;
86 int creationAttributesSet
;
87 SaMsgQueueOpenFlagsT openFlags
;
88 SaMsgQueueHandleT queueHandle
;
93 struct res_lib_msg_queueopen
{
94 mar_res_header_t header
;
95 SaMsgQueueHandleT queueHandle
;
96 mar_message_source_t source
;
99 struct res_lib_msg_queueopenasync
{
100 mar_res_header_t header
;
101 SaInvocationT invocation
;
102 SaMsgQueueHandleT queueHandle
;
103 mar_message_source_t source
;
106 struct req_lib_msg_queueclose
{
107 mar_req_header_t header
;
109 SaMsgQueueHandleT queueHandle
;
112 struct res_lib_msg_queueclose
{
113 mar_res_header_t header
;
116 struct req_lib_msg_queuestatusget
{
117 mar_req_header_t header
;
121 struct res_lib_msg_queuestatusget
{
122 mar_res_header_t header
;
123 SaMsgQueueStatusT queueStatus
;
126 struct req_lib_msg_queueunlink
{
127 mar_req_header_t header
;
131 struct res_lib_msg_queueunlink
{
132 mar_res_header_t header
;
135 struct req_lib_msg_queuegroupcreate
{
136 mar_req_header_t header
;
137 SaNameT queueGroupName
;
138 SaMsgQueueGroupPolicyT queueGroupPolicy
;
141 struct res_lib_msg_queuegroupcreate
{
142 mar_res_header_t header
;
145 struct req_lib_msg_queuegroupinsert
{
146 mar_req_header_t header
;
147 SaNameT queueGroupName
;
151 struct res_lib_msg_queuegroupinsert
{
152 mar_res_header_t header
;
155 struct req_lib_msg_queuegroupremove
{
156 mar_req_header_t header
;
157 SaNameT queueGroupName
;
161 struct res_lib_msg_queuegroupremove
{
162 mar_res_header_t header
;
165 struct req_lib_msg_queuegroupdelete
{
166 mar_req_header_t header
;
167 SaNameT queueGroupName
;
170 struct res_lib_msg_queuegroupdelete
{
171 mar_res_header_t header
;
174 struct req_lib_msg_queuegrouptrack
{
175 mar_req_header_t header
;
176 SaNameT queueGroupName
;
180 struct res_lib_msg_queuegrouptrack
{
181 mar_res_header_t header
;
184 struct req_lib_msg_queuegrouptrackstop
{
185 mar_req_header_t header
;
186 SaNameT queueGroupName
;
189 struct res_lib_msg_queuegrouptrackstop
{
190 mar_res_header_t header
;
193 struct req_lib_msg_messagesend
{
194 mar_req_header_t header
;
195 SaInvocationT invocation
;
197 SaMsgMessageT message
;
199 SaMsgAckFlagsT ackFlags
;
203 struct res_lib_msg_messagesend
{
204 mar_res_header_t header
;
207 struct res_lib_msg_messagesendasync
{
208 mar_res_header_t header
;
211 struct req_lib_msg_messageget
{
212 mar_req_header_t header
;
217 struct res_lib_msg_messageget
{
218 mar_res_header_t header
;
220 SaMsgSenderIdT senderId
;
221 SaMsgMessageT message
;
224 struct req_lib_msg_messagecancel
{
225 mar_req_header_t header
;
229 struct res_lib_msg_messagecancel
{
230 mar_res_header_t header
;
233 struct req_lib_msg_messagesendreceive
{
234 mar_req_header_t header
;
238 SaMsgMessageT sendMessage
;
241 struct res_lib_msg_messagesendreceive
{
242 mar_res_header_t header
;
243 SaTimeT replySendTime
;
244 SaMsgMessageT receiveMessage
;
247 struct req_lib_msg_messagereply
{
248 mar_req_header_t header
;
249 SaInvocationT invocation
;
252 SaMsgMessageT replyMessage
;
254 SaMsgAckFlagsT ackFlags
;
258 struct res_lib_msg_messagereply
{
259 mar_res_header_t header
;
262 struct res_lib_msg_messagereplyasync
{
263 mar_res_header_t header
;
266 #endif /* IPC_MSG_H_DEFINED */