1*86d7f5d3SJohn Marino /*-
2*86d7f5d3SJohn Marino * Copyright (c) 2005 Michael Bushkov <bushman@rsu.ru>
3*86d7f5d3SJohn Marino * All rights reserved.
4*86d7f5d3SJohn Marino *
5*86d7f5d3SJohn Marino * Redistribution and use in source and binary forms, with or without
6*86d7f5d3SJohn Marino * modification, are permitted provided that the following conditions
7*86d7f5d3SJohn Marino * are met:
8*86d7f5d3SJohn Marino * 1. Redistributions of source code must retain the above copyright
9*86d7f5d3SJohn Marino * notice, this list of conditions and the following disclaimer.
10*86d7f5d3SJohn Marino * 2. Redistributions in binary form must reproduce the above copyright
11*86d7f5d3SJohn Marino * notice, this list of conditions and the following disclaimer in the
12*86d7f5d3SJohn Marino * documentation and/or other materials provided with the distribution.
13*86d7f5d3SJohn Marino *
14*86d7f5d3SJohn Marino * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
15*86d7f5d3SJohn Marino * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
16*86d7f5d3SJohn Marino * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
17*86d7f5d3SJohn Marino * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
18*86d7f5d3SJohn Marino * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
19*86d7f5d3SJohn Marino * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
20*86d7f5d3SJohn Marino * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
21*86d7f5d3SJohn Marino * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
22*86d7f5d3SJohn Marino * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
23*86d7f5d3SJohn Marino * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
24*86d7f5d3SJohn Marino * SUCH DAMAGE.
25*86d7f5d3SJohn Marino *
26*86d7f5d3SJohn Marino * $FreeBSD: src/usr.sbin/nscd/protocol.c,v 1.2 2007/09/27 12:30:11 bushman Exp $
27*86d7f5d3SJohn Marino */
28*86d7f5d3SJohn Marino
29*86d7f5d3SJohn Marino #include <assert.h>
30*86d7f5d3SJohn Marino #include <stdlib.h>
31*86d7f5d3SJohn Marino #include <string.h>
32*86d7f5d3SJohn Marino #include "debug.h"
33*86d7f5d3SJohn Marino #include "log.h"
34*86d7f5d3SJohn Marino #include "protocol.h"
35*86d7f5d3SJohn Marino
36*86d7f5d3SJohn Marino /*
37*86d7f5d3SJohn Marino * Initializes the comm_element with any given type of data
38*86d7f5d3SJohn Marino */
39*86d7f5d3SJohn Marino void
init_comm_element(struct comm_element * element,enum comm_element_t type)40*86d7f5d3SJohn Marino init_comm_element(struct comm_element *element, enum comm_element_t type)
41*86d7f5d3SJohn Marino {
42*86d7f5d3SJohn Marino
43*86d7f5d3SJohn Marino TRACE_IN(init_comm_element);
44*86d7f5d3SJohn Marino memset(element, 0, sizeof(struct comm_element));
45*86d7f5d3SJohn Marino
46*86d7f5d3SJohn Marino switch (type) {
47*86d7f5d3SJohn Marino case CET_WRITE_REQUEST:
48*86d7f5d3SJohn Marino init_cache_write_request(&element->c_write_request);
49*86d7f5d3SJohn Marino break;
50*86d7f5d3SJohn Marino case CET_WRITE_RESPONSE:
51*86d7f5d3SJohn Marino init_cache_write_response(&element->c_write_response);
52*86d7f5d3SJohn Marino break;
53*86d7f5d3SJohn Marino case CET_READ_REQUEST:
54*86d7f5d3SJohn Marino init_cache_read_request(&element->c_read_request);
55*86d7f5d3SJohn Marino break;
56*86d7f5d3SJohn Marino case CET_READ_RESPONSE:
57*86d7f5d3SJohn Marino init_cache_read_response(&element->c_read_response);
58*86d7f5d3SJohn Marino break;
59*86d7f5d3SJohn Marino case CET_TRANSFORM_REQUEST:
60*86d7f5d3SJohn Marino init_cache_transform_request(&element->c_transform_request);
61*86d7f5d3SJohn Marino break;
62*86d7f5d3SJohn Marino case CET_TRANSFORM_RESPONSE:
63*86d7f5d3SJohn Marino init_cache_transform_response(&element->c_transform_response);
64*86d7f5d3SJohn Marino break;
65*86d7f5d3SJohn Marino case CET_MP_WRITE_SESSION_REQUEST:
66*86d7f5d3SJohn Marino init_cache_mp_write_session_request(&element->c_mp_ws_request);
67*86d7f5d3SJohn Marino break;
68*86d7f5d3SJohn Marino case CET_MP_WRITE_SESSION_RESPONSE:
69*86d7f5d3SJohn Marino init_cache_mp_write_session_response(&element->c_mp_ws_response);
70*86d7f5d3SJohn Marino break;
71*86d7f5d3SJohn Marino case CET_MP_WRITE_SESSION_WRITE_REQUEST:
72*86d7f5d3SJohn Marino init_cache_mp_write_session_write_request(
73*86d7f5d3SJohn Marino &element->c_mp_ws_write_request);
74*86d7f5d3SJohn Marino break;
75*86d7f5d3SJohn Marino case CET_MP_WRITE_SESSION_WRITE_RESPONSE:
76*86d7f5d3SJohn Marino init_cache_mp_write_session_write_response(
77*86d7f5d3SJohn Marino &element->c_mp_ws_write_response);
78*86d7f5d3SJohn Marino break;
79*86d7f5d3SJohn Marino case CET_MP_READ_SESSION_REQUEST:
80*86d7f5d3SJohn Marino init_cache_mp_read_session_request(&element->c_mp_rs_request);
81*86d7f5d3SJohn Marino break;
82*86d7f5d3SJohn Marino case CET_MP_READ_SESSION_RESPONSE:
83*86d7f5d3SJohn Marino init_cache_mp_read_session_response(&element->c_mp_rs_response);
84*86d7f5d3SJohn Marino break;
85*86d7f5d3SJohn Marino case CET_MP_READ_SESSION_READ_RESPONSE:
86*86d7f5d3SJohn Marino init_cache_mp_read_session_read_response(
87*86d7f5d3SJohn Marino &element->c_mp_rs_read_response);
88*86d7f5d3SJohn Marino break;
89*86d7f5d3SJohn Marino case CET_UNDEFINED:
90*86d7f5d3SJohn Marino break;
91*86d7f5d3SJohn Marino default:
92*86d7f5d3SJohn Marino LOG_ERR_2("init_comm_element", "invalid communication element");
93*86d7f5d3SJohn Marino TRACE_OUT(init_comm_element);
94*86d7f5d3SJohn Marino return;
95*86d7f5d3SJohn Marino }
96*86d7f5d3SJohn Marino
97*86d7f5d3SJohn Marino element->type = type;
98*86d7f5d3SJohn Marino TRACE_OUT(init_comm_element);
99*86d7f5d3SJohn Marino }
100*86d7f5d3SJohn Marino
101*86d7f5d3SJohn Marino void
finalize_comm_element(struct comm_element * element)102*86d7f5d3SJohn Marino finalize_comm_element(struct comm_element *element)
103*86d7f5d3SJohn Marino {
104*86d7f5d3SJohn Marino
105*86d7f5d3SJohn Marino TRACE_IN(finalize_comm_element);
106*86d7f5d3SJohn Marino switch (element->type) {
107*86d7f5d3SJohn Marino case CET_WRITE_REQUEST:
108*86d7f5d3SJohn Marino finalize_cache_write_request(&element->c_write_request);
109*86d7f5d3SJohn Marino break;
110*86d7f5d3SJohn Marino case CET_WRITE_RESPONSE:
111*86d7f5d3SJohn Marino finalize_cache_write_response(&element->c_write_response);
112*86d7f5d3SJohn Marino break;
113*86d7f5d3SJohn Marino case CET_READ_REQUEST:
114*86d7f5d3SJohn Marino finalize_cache_read_request(&element->c_read_request);
115*86d7f5d3SJohn Marino break;
116*86d7f5d3SJohn Marino case CET_READ_RESPONSE:
117*86d7f5d3SJohn Marino finalize_cache_read_response(&element->c_read_response);
118*86d7f5d3SJohn Marino break;
119*86d7f5d3SJohn Marino case CET_TRANSFORM_REQUEST:
120*86d7f5d3SJohn Marino finalize_cache_transform_request(&element->c_transform_request);
121*86d7f5d3SJohn Marino break;
122*86d7f5d3SJohn Marino case CET_TRANSFORM_RESPONSE:
123*86d7f5d3SJohn Marino finalize_cache_transform_response(
124*86d7f5d3SJohn Marino &element->c_transform_response);
125*86d7f5d3SJohn Marino break;
126*86d7f5d3SJohn Marino case CET_MP_WRITE_SESSION_REQUEST:
127*86d7f5d3SJohn Marino finalize_cache_mp_write_session_request(
128*86d7f5d3SJohn Marino &element->c_mp_ws_request);
129*86d7f5d3SJohn Marino break;
130*86d7f5d3SJohn Marino case CET_MP_WRITE_SESSION_RESPONSE:
131*86d7f5d3SJohn Marino finalize_cache_mp_write_session_response(
132*86d7f5d3SJohn Marino &element->c_mp_ws_response);
133*86d7f5d3SJohn Marino break;
134*86d7f5d3SJohn Marino case CET_MP_WRITE_SESSION_WRITE_REQUEST:
135*86d7f5d3SJohn Marino finalize_cache_mp_write_session_write_request(
136*86d7f5d3SJohn Marino &element->c_mp_ws_write_request);
137*86d7f5d3SJohn Marino break;
138*86d7f5d3SJohn Marino case CET_MP_WRITE_SESSION_WRITE_RESPONSE:
139*86d7f5d3SJohn Marino finalize_cache_mp_write_session_write_response(
140*86d7f5d3SJohn Marino &element->c_mp_ws_write_response);
141*86d7f5d3SJohn Marino break;
142*86d7f5d3SJohn Marino case CET_MP_READ_SESSION_REQUEST:
143*86d7f5d3SJohn Marino finalize_cache_mp_read_session_request(
144*86d7f5d3SJohn Marino &element->c_mp_rs_request);
145*86d7f5d3SJohn Marino break;
146*86d7f5d3SJohn Marino case CET_MP_READ_SESSION_RESPONSE:
147*86d7f5d3SJohn Marino finalize_cache_mp_read_session_response(
148*86d7f5d3SJohn Marino &element->c_mp_rs_response);
149*86d7f5d3SJohn Marino break;
150*86d7f5d3SJohn Marino case CET_MP_READ_SESSION_READ_RESPONSE:
151*86d7f5d3SJohn Marino finalize_cache_mp_read_session_read_response(
152*86d7f5d3SJohn Marino &element->c_mp_rs_read_response);
153*86d7f5d3SJohn Marino break;
154*86d7f5d3SJohn Marino case CET_UNDEFINED:
155*86d7f5d3SJohn Marino break;
156*86d7f5d3SJohn Marino default:
157*86d7f5d3SJohn Marino break;
158*86d7f5d3SJohn Marino }
159*86d7f5d3SJohn Marino
160*86d7f5d3SJohn Marino element->type = CET_UNDEFINED;
161*86d7f5d3SJohn Marino TRACE_OUT(finalize_comm_element);
162*86d7f5d3SJohn Marino }
163*86d7f5d3SJohn Marino
164*86d7f5d3SJohn Marino void
init_cache_write_request(struct cache_write_request * write_request)165*86d7f5d3SJohn Marino init_cache_write_request(struct cache_write_request *write_request)
166*86d7f5d3SJohn Marino {
167*86d7f5d3SJohn Marino
168*86d7f5d3SJohn Marino TRACE_IN(init_cache_write_request);
169*86d7f5d3SJohn Marino memset(write_request, 0, sizeof(struct cache_write_request));
170*86d7f5d3SJohn Marino TRACE_OUT(init_cache_write_request);
171*86d7f5d3SJohn Marino }
172*86d7f5d3SJohn Marino
173*86d7f5d3SJohn Marino void
finalize_cache_write_request(struct cache_write_request * write_request)174*86d7f5d3SJohn Marino finalize_cache_write_request(struct cache_write_request *write_request)
175*86d7f5d3SJohn Marino {
176*86d7f5d3SJohn Marino
177*86d7f5d3SJohn Marino TRACE_IN(finalize_cache_write_request);
178*86d7f5d3SJohn Marino free(write_request->entry);
179*86d7f5d3SJohn Marino free(write_request->cache_key);
180*86d7f5d3SJohn Marino free(write_request->data);
181*86d7f5d3SJohn Marino TRACE_OUT(finalize_cache_write_request);
182*86d7f5d3SJohn Marino }
183*86d7f5d3SJohn Marino
184*86d7f5d3SJohn Marino struct cache_write_request *
get_cache_write_request(struct comm_element * element)185*86d7f5d3SJohn Marino get_cache_write_request(struct comm_element *element)
186*86d7f5d3SJohn Marino {
187*86d7f5d3SJohn Marino
188*86d7f5d3SJohn Marino TRACE_IN(get_cache_write_request);
189*86d7f5d3SJohn Marino assert(element->type == CET_WRITE_REQUEST);
190*86d7f5d3SJohn Marino TRACE_OUT(get_cache_write_request);
191*86d7f5d3SJohn Marino return (&element->c_write_request);
192*86d7f5d3SJohn Marino }
193*86d7f5d3SJohn Marino
194*86d7f5d3SJohn Marino void
init_cache_write_response(struct cache_write_response * write_response)195*86d7f5d3SJohn Marino init_cache_write_response(struct cache_write_response *write_response)
196*86d7f5d3SJohn Marino {
197*86d7f5d3SJohn Marino
198*86d7f5d3SJohn Marino TRACE_IN(init_cache_write_response);
199*86d7f5d3SJohn Marino memset(write_response, 0, sizeof(struct cache_write_response));
200*86d7f5d3SJohn Marino TRACE_OUT(init_cache_write_response);
201*86d7f5d3SJohn Marino }
202*86d7f5d3SJohn Marino
203*86d7f5d3SJohn Marino void
finalize_cache_write_response(struct cache_write_response * write_response)204*86d7f5d3SJohn Marino finalize_cache_write_response(struct cache_write_response *write_response)
205*86d7f5d3SJohn Marino {
206*86d7f5d3SJohn Marino
207*86d7f5d3SJohn Marino TRACE_IN(finalize_cache_write_response);
208*86d7f5d3SJohn Marino TRACE_OUT(finalize_cache_write_response);
209*86d7f5d3SJohn Marino }
210*86d7f5d3SJohn Marino
211*86d7f5d3SJohn Marino struct cache_write_response *
get_cache_write_response(struct comm_element * element)212*86d7f5d3SJohn Marino get_cache_write_response(struct comm_element *element)
213*86d7f5d3SJohn Marino {
214*86d7f5d3SJohn Marino
215*86d7f5d3SJohn Marino TRACE_IN(get_cache_write_response);
216*86d7f5d3SJohn Marino assert(element->type == CET_WRITE_RESPONSE);
217*86d7f5d3SJohn Marino TRACE_OUT(get_cache_write_response);
218*86d7f5d3SJohn Marino return (&element->c_write_response);
219*86d7f5d3SJohn Marino }
220*86d7f5d3SJohn Marino
221*86d7f5d3SJohn Marino void
init_cache_read_request(struct cache_read_request * read_request)222*86d7f5d3SJohn Marino init_cache_read_request(struct cache_read_request *read_request)
223*86d7f5d3SJohn Marino {
224*86d7f5d3SJohn Marino
225*86d7f5d3SJohn Marino TRACE_IN(init_cache_read_request);
226*86d7f5d3SJohn Marino memset(read_request, 0, sizeof(struct cache_read_request));
227*86d7f5d3SJohn Marino TRACE_OUT(init_cache_read_request);
228*86d7f5d3SJohn Marino }
229*86d7f5d3SJohn Marino
230*86d7f5d3SJohn Marino void
finalize_cache_read_request(struct cache_read_request * read_request)231*86d7f5d3SJohn Marino finalize_cache_read_request(struct cache_read_request *read_request)
232*86d7f5d3SJohn Marino {
233*86d7f5d3SJohn Marino
234*86d7f5d3SJohn Marino TRACE_IN(finalize_cache_read_request);
235*86d7f5d3SJohn Marino free(read_request->entry);
236*86d7f5d3SJohn Marino free(read_request->cache_key);
237*86d7f5d3SJohn Marino TRACE_OUT(finalize_cache_read_request);
238*86d7f5d3SJohn Marino }
239*86d7f5d3SJohn Marino
240*86d7f5d3SJohn Marino struct cache_read_request *
get_cache_read_request(struct comm_element * element)241*86d7f5d3SJohn Marino get_cache_read_request(struct comm_element *element)
242*86d7f5d3SJohn Marino {
243*86d7f5d3SJohn Marino
244*86d7f5d3SJohn Marino TRACE_IN(get_cache_read_request);
245*86d7f5d3SJohn Marino assert(element->type == CET_READ_REQUEST);
246*86d7f5d3SJohn Marino TRACE_OUT(get_cache_read_request);
247*86d7f5d3SJohn Marino return (&element->c_read_request);
248*86d7f5d3SJohn Marino }
249*86d7f5d3SJohn Marino
250*86d7f5d3SJohn Marino void
init_cache_read_response(struct cache_read_response * read_response)251*86d7f5d3SJohn Marino init_cache_read_response(struct cache_read_response *read_response)
252*86d7f5d3SJohn Marino {
253*86d7f5d3SJohn Marino
254*86d7f5d3SJohn Marino TRACE_IN(init_cache_read_response);
255*86d7f5d3SJohn Marino memset(read_response, 0, sizeof(struct cache_read_response));
256*86d7f5d3SJohn Marino TRACE_OUT(init_cache_read_response);
257*86d7f5d3SJohn Marino }
258*86d7f5d3SJohn Marino
259*86d7f5d3SJohn Marino void
finalize_cache_read_response(struct cache_read_response * read_response)260*86d7f5d3SJohn Marino finalize_cache_read_response(struct cache_read_response *read_response)
261*86d7f5d3SJohn Marino {
262*86d7f5d3SJohn Marino
263*86d7f5d3SJohn Marino TRACE_IN(finalize_cache_read_response);
264*86d7f5d3SJohn Marino free(read_response->data);
265*86d7f5d3SJohn Marino TRACE_OUT(finalize_cache_read_response);
266*86d7f5d3SJohn Marino }
267*86d7f5d3SJohn Marino
268*86d7f5d3SJohn Marino struct cache_read_response *
get_cache_read_response(struct comm_element * element)269*86d7f5d3SJohn Marino get_cache_read_response(struct comm_element *element)
270*86d7f5d3SJohn Marino {
271*86d7f5d3SJohn Marino
272*86d7f5d3SJohn Marino TRACE_IN(get_cache_read_response);
273*86d7f5d3SJohn Marino assert(element->type == CET_READ_RESPONSE);
274*86d7f5d3SJohn Marino TRACE_OUT(get_cache_read_response);
275*86d7f5d3SJohn Marino return (&element->c_read_response);
276*86d7f5d3SJohn Marino }
277*86d7f5d3SJohn Marino
278*86d7f5d3SJohn Marino void
init_cache_transform_request(struct cache_transform_request * transform_request)279*86d7f5d3SJohn Marino init_cache_transform_request(struct cache_transform_request *transform_request)
280*86d7f5d3SJohn Marino {
281*86d7f5d3SJohn Marino
282*86d7f5d3SJohn Marino TRACE_IN(init_cache_transform_request);
283*86d7f5d3SJohn Marino memset(transform_request, 0, sizeof(struct cache_transform_request));
284*86d7f5d3SJohn Marino TRACE_OUT(init_cache_transform_request);
285*86d7f5d3SJohn Marino }
286*86d7f5d3SJohn Marino
287*86d7f5d3SJohn Marino void
finalize_cache_transform_request(struct cache_transform_request * transform_request)288*86d7f5d3SJohn Marino finalize_cache_transform_request(
289*86d7f5d3SJohn Marino struct cache_transform_request *transform_request)
290*86d7f5d3SJohn Marino {
291*86d7f5d3SJohn Marino
292*86d7f5d3SJohn Marino TRACE_IN(finalize_cache_transform_request);
293*86d7f5d3SJohn Marino free(transform_request->entry);
294*86d7f5d3SJohn Marino TRACE_OUT(finalize_cache_transform_request);
295*86d7f5d3SJohn Marino }
296*86d7f5d3SJohn Marino
297*86d7f5d3SJohn Marino struct cache_transform_request *
get_cache_transform_request(struct comm_element * element)298*86d7f5d3SJohn Marino get_cache_transform_request(struct comm_element *element)
299*86d7f5d3SJohn Marino {
300*86d7f5d3SJohn Marino
301*86d7f5d3SJohn Marino TRACE_IN(get_cache_transform_request);
302*86d7f5d3SJohn Marino assert(element->type == CET_TRANSFORM_REQUEST);
303*86d7f5d3SJohn Marino TRACE_OUT(get_cache_transform_request);
304*86d7f5d3SJohn Marino return (&element->c_transform_request);
305*86d7f5d3SJohn Marino }
306*86d7f5d3SJohn Marino
307*86d7f5d3SJohn Marino void
init_cache_transform_response(struct cache_transform_response * transform_response)308*86d7f5d3SJohn Marino init_cache_transform_response(
309*86d7f5d3SJohn Marino struct cache_transform_response *transform_response)
310*86d7f5d3SJohn Marino {
311*86d7f5d3SJohn Marino
312*86d7f5d3SJohn Marino TRACE_IN(init_cache_transform_request);
313*86d7f5d3SJohn Marino memset(transform_response, 0, sizeof(struct cache_transform_response));
314*86d7f5d3SJohn Marino TRACE_OUT(init_cache_transform_request);
315*86d7f5d3SJohn Marino }
316*86d7f5d3SJohn Marino
317*86d7f5d3SJohn Marino void
finalize_cache_transform_response(struct cache_transform_response * transform_response)318*86d7f5d3SJohn Marino finalize_cache_transform_response(
319*86d7f5d3SJohn Marino struct cache_transform_response *transform_response)
320*86d7f5d3SJohn Marino {
321*86d7f5d3SJohn Marino
322*86d7f5d3SJohn Marino TRACE_IN(finalize_cache_transform_response);
323*86d7f5d3SJohn Marino TRACE_OUT(finalize_cache_transform_response);
324*86d7f5d3SJohn Marino }
325*86d7f5d3SJohn Marino
326*86d7f5d3SJohn Marino struct cache_transform_response *
get_cache_transform_response(struct comm_element * element)327*86d7f5d3SJohn Marino get_cache_transform_response(struct comm_element *element)
328*86d7f5d3SJohn Marino {
329*86d7f5d3SJohn Marino
330*86d7f5d3SJohn Marino TRACE_IN(get_cache_transform_response);
331*86d7f5d3SJohn Marino assert(element->type == CET_TRANSFORM_RESPONSE);
332*86d7f5d3SJohn Marino TRACE_OUT(get_cache_transform_response);
333*86d7f5d3SJohn Marino return (&element->c_transform_response);
334*86d7f5d3SJohn Marino }
335*86d7f5d3SJohn Marino
336*86d7f5d3SJohn Marino
337*86d7f5d3SJohn Marino void
init_cache_mp_write_session_request(struct cache_mp_write_session_request * mp_ws_request)338*86d7f5d3SJohn Marino init_cache_mp_write_session_request(
339*86d7f5d3SJohn Marino struct cache_mp_write_session_request *mp_ws_request)
340*86d7f5d3SJohn Marino {
341*86d7f5d3SJohn Marino
342*86d7f5d3SJohn Marino TRACE_IN(init_cache_mp_write_session_request);
343*86d7f5d3SJohn Marino memset(mp_ws_request, 0,
344*86d7f5d3SJohn Marino sizeof(struct cache_mp_write_session_request));
345*86d7f5d3SJohn Marino TRACE_OUT(init_cache_mp_write_session_request);
346*86d7f5d3SJohn Marino }
347*86d7f5d3SJohn Marino
348*86d7f5d3SJohn Marino void
finalize_cache_mp_write_session_request(struct cache_mp_write_session_request * mp_ws_request)349*86d7f5d3SJohn Marino finalize_cache_mp_write_session_request(
350*86d7f5d3SJohn Marino struct cache_mp_write_session_request *mp_ws_request)
351*86d7f5d3SJohn Marino {
352*86d7f5d3SJohn Marino
353*86d7f5d3SJohn Marino TRACE_IN(finalize_cache_mp_write_session_request);
354*86d7f5d3SJohn Marino free(mp_ws_request->entry);
355*86d7f5d3SJohn Marino TRACE_OUT(finalize_cache_mp_write_session_request);
356*86d7f5d3SJohn Marino }
357*86d7f5d3SJohn Marino
358*86d7f5d3SJohn Marino struct cache_mp_write_session_request *
get_cache_mp_write_session_request(struct comm_element * element)359*86d7f5d3SJohn Marino get_cache_mp_write_session_request(struct comm_element *element)
360*86d7f5d3SJohn Marino {
361*86d7f5d3SJohn Marino
362*86d7f5d3SJohn Marino TRACE_IN(get_cache_mp_write_session_request);
363*86d7f5d3SJohn Marino assert(element->type == CET_MP_WRITE_SESSION_REQUEST);
364*86d7f5d3SJohn Marino TRACE_OUT(get_cache_mp_write_session_request);
365*86d7f5d3SJohn Marino return (&element->c_mp_ws_request);
366*86d7f5d3SJohn Marino }
367*86d7f5d3SJohn Marino
368*86d7f5d3SJohn Marino void
init_cache_mp_write_session_response(struct cache_mp_write_session_response * mp_ws_response)369*86d7f5d3SJohn Marino init_cache_mp_write_session_response(
370*86d7f5d3SJohn Marino struct cache_mp_write_session_response *mp_ws_response)
371*86d7f5d3SJohn Marino {
372*86d7f5d3SJohn Marino
373*86d7f5d3SJohn Marino TRACE_IN(init_cache_mp_write_session_response);
374*86d7f5d3SJohn Marino memset(mp_ws_response, 0,
375*86d7f5d3SJohn Marino sizeof(struct cache_mp_write_session_response));
376*86d7f5d3SJohn Marino TRACE_OUT(init_cache_mp_write_session_response);
377*86d7f5d3SJohn Marino }
378*86d7f5d3SJohn Marino
379*86d7f5d3SJohn Marino void
finalize_cache_mp_write_session_response(struct cache_mp_write_session_response * mp_ws_response)380*86d7f5d3SJohn Marino finalize_cache_mp_write_session_response(
381*86d7f5d3SJohn Marino struct cache_mp_write_session_response *mp_ws_response)
382*86d7f5d3SJohn Marino {
383*86d7f5d3SJohn Marino
384*86d7f5d3SJohn Marino TRACE_IN(finalize_cache_mp_write_session_response);
385*86d7f5d3SJohn Marino TRACE_OUT(finalize_cache_mp_write_session_response);
386*86d7f5d3SJohn Marino }
387*86d7f5d3SJohn Marino
388*86d7f5d3SJohn Marino struct cache_mp_write_session_response *
get_cache_mp_write_session_response(struct comm_element * element)389*86d7f5d3SJohn Marino get_cache_mp_write_session_response(struct comm_element *element)
390*86d7f5d3SJohn Marino {
391*86d7f5d3SJohn Marino
392*86d7f5d3SJohn Marino TRACE_IN(get_cache_mp_write_session_response);
393*86d7f5d3SJohn Marino assert(element->type == CET_MP_WRITE_SESSION_RESPONSE);
394*86d7f5d3SJohn Marino TRACE_OUT(get_cache_mp_write_session_response);
395*86d7f5d3SJohn Marino return (&element->c_mp_ws_response);
396*86d7f5d3SJohn Marino }
397*86d7f5d3SJohn Marino
398*86d7f5d3SJohn Marino void
init_cache_mp_write_session_write_request(struct cache_mp_write_session_write_request * mp_ws_write_request)399*86d7f5d3SJohn Marino init_cache_mp_write_session_write_request(
400*86d7f5d3SJohn Marino struct cache_mp_write_session_write_request *mp_ws_write_request)
401*86d7f5d3SJohn Marino {
402*86d7f5d3SJohn Marino
403*86d7f5d3SJohn Marino TRACE_IN(init_cache_mp_write_session_write_request);
404*86d7f5d3SJohn Marino memset(mp_ws_write_request, 0,
405*86d7f5d3SJohn Marino sizeof(struct cache_mp_write_session_write_request));
406*86d7f5d3SJohn Marino TRACE_OUT(init_cache_mp_write_session_write_response);
407*86d7f5d3SJohn Marino }
408*86d7f5d3SJohn Marino
409*86d7f5d3SJohn Marino void
finalize_cache_mp_write_session_write_request(struct cache_mp_write_session_write_request * mp_ws_write_request)410*86d7f5d3SJohn Marino finalize_cache_mp_write_session_write_request(
411*86d7f5d3SJohn Marino struct cache_mp_write_session_write_request *mp_ws_write_request)
412*86d7f5d3SJohn Marino {
413*86d7f5d3SJohn Marino
414*86d7f5d3SJohn Marino TRACE_IN(finalize_cache_mp_write_session_write_request);
415*86d7f5d3SJohn Marino free(mp_ws_write_request->data);
416*86d7f5d3SJohn Marino TRACE_OUT(finalize_cache_mp_write_session_write_request);
417*86d7f5d3SJohn Marino }
418*86d7f5d3SJohn Marino
419*86d7f5d3SJohn Marino struct cache_mp_write_session_write_request *
get_cache_mp_write_session_write_request(struct comm_element * element)420*86d7f5d3SJohn Marino get_cache_mp_write_session_write_request(struct comm_element *element)
421*86d7f5d3SJohn Marino {
422*86d7f5d3SJohn Marino
423*86d7f5d3SJohn Marino TRACE_IN(get_cache_mp_write_session_write_request);
424*86d7f5d3SJohn Marino assert(element->type == CET_MP_WRITE_SESSION_WRITE_REQUEST);
425*86d7f5d3SJohn Marino TRACE_OUT(get_cache_mp_write_session_write_request);
426*86d7f5d3SJohn Marino return (&element->c_mp_ws_write_request);
427*86d7f5d3SJohn Marino }
428*86d7f5d3SJohn Marino
429*86d7f5d3SJohn Marino void
init_cache_mp_write_session_write_response(struct cache_mp_write_session_write_response * mp_ws_write_response)430*86d7f5d3SJohn Marino init_cache_mp_write_session_write_response(
431*86d7f5d3SJohn Marino struct cache_mp_write_session_write_response *mp_ws_write_response)
432*86d7f5d3SJohn Marino {
433*86d7f5d3SJohn Marino
434*86d7f5d3SJohn Marino TRACE_IN(init_cache_mp_write_session_write_response);
435*86d7f5d3SJohn Marino memset(mp_ws_write_response, 0,
436*86d7f5d3SJohn Marino sizeof(struct cache_mp_write_session_write_response));
437*86d7f5d3SJohn Marino TRACE_OUT(init_cache_mp_write_session_write_response);
438*86d7f5d3SJohn Marino }
439*86d7f5d3SJohn Marino
440*86d7f5d3SJohn Marino void
finalize_cache_mp_write_session_write_response(struct cache_mp_write_session_write_response * mp_ws_write_response)441*86d7f5d3SJohn Marino finalize_cache_mp_write_session_write_response(
442*86d7f5d3SJohn Marino struct cache_mp_write_session_write_response *mp_ws_write_response)
443*86d7f5d3SJohn Marino {
444*86d7f5d3SJohn Marino
445*86d7f5d3SJohn Marino TRACE_IN(finalize_cache_mp_write_session_write_response);
446*86d7f5d3SJohn Marino TRACE_OUT(finalize_cache_mp_write_session_write_response);
447*86d7f5d3SJohn Marino }
448*86d7f5d3SJohn Marino
449*86d7f5d3SJohn Marino struct cache_mp_write_session_write_response *
get_cache_mp_write_session_write_response(struct comm_element * element)450*86d7f5d3SJohn Marino get_cache_mp_write_session_write_response(struct comm_element *element)
451*86d7f5d3SJohn Marino {
452*86d7f5d3SJohn Marino
453*86d7f5d3SJohn Marino TRACE_IN(get_cache_mp_write_session_write_response);
454*86d7f5d3SJohn Marino assert(element->type == CET_MP_WRITE_SESSION_WRITE_RESPONSE);
455*86d7f5d3SJohn Marino TRACE_OUT(get_cache_mp_write_session_write_response);
456*86d7f5d3SJohn Marino return (&element->c_mp_ws_write_response);
457*86d7f5d3SJohn Marino }
458*86d7f5d3SJohn Marino
459*86d7f5d3SJohn Marino void
init_cache_mp_read_session_request(struct cache_mp_read_session_request * mp_rs_request)460*86d7f5d3SJohn Marino init_cache_mp_read_session_request(
461*86d7f5d3SJohn Marino struct cache_mp_read_session_request *mp_rs_request)
462*86d7f5d3SJohn Marino {
463*86d7f5d3SJohn Marino
464*86d7f5d3SJohn Marino TRACE_IN(init_cache_mp_read_session_request);
465*86d7f5d3SJohn Marino memset(mp_rs_request, 0, sizeof(struct cache_mp_read_session_request));
466*86d7f5d3SJohn Marino TRACE_OUT(init_cache_mp_read_session_request);
467*86d7f5d3SJohn Marino }
468*86d7f5d3SJohn Marino
469*86d7f5d3SJohn Marino void
finalize_cache_mp_read_session_request(struct cache_mp_read_session_request * mp_rs_request)470*86d7f5d3SJohn Marino finalize_cache_mp_read_session_request(
471*86d7f5d3SJohn Marino struct cache_mp_read_session_request *mp_rs_request)
472*86d7f5d3SJohn Marino {
473*86d7f5d3SJohn Marino
474*86d7f5d3SJohn Marino TRACE_IN(finalize_cache_mp_read_session_request);
475*86d7f5d3SJohn Marino free(mp_rs_request->entry);
476*86d7f5d3SJohn Marino TRACE_OUT(finalize_cache_mp_read_session_request);
477*86d7f5d3SJohn Marino }
478*86d7f5d3SJohn Marino
479*86d7f5d3SJohn Marino struct cache_mp_read_session_request *
get_cache_mp_read_session_request(struct comm_element * element)480*86d7f5d3SJohn Marino get_cache_mp_read_session_request(struct comm_element *element)
481*86d7f5d3SJohn Marino {
482*86d7f5d3SJohn Marino
483*86d7f5d3SJohn Marino TRACE_IN(get_cache_mp_read_session_request);
484*86d7f5d3SJohn Marino assert(element->type == CET_MP_READ_SESSION_REQUEST);
485*86d7f5d3SJohn Marino TRACE_OUT(get_cache_mp_read_session_request);
486*86d7f5d3SJohn Marino return (&element->c_mp_rs_request);
487*86d7f5d3SJohn Marino }
488*86d7f5d3SJohn Marino
489*86d7f5d3SJohn Marino void
init_cache_mp_read_session_response(struct cache_mp_read_session_response * mp_rs_response)490*86d7f5d3SJohn Marino init_cache_mp_read_session_response(
491*86d7f5d3SJohn Marino struct cache_mp_read_session_response *mp_rs_response)
492*86d7f5d3SJohn Marino {
493*86d7f5d3SJohn Marino
494*86d7f5d3SJohn Marino TRACE_IN(init_cache_mp_read_session_response);
495*86d7f5d3SJohn Marino memset(mp_rs_response, 0,
496*86d7f5d3SJohn Marino sizeof(struct cache_mp_read_session_response));
497*86d7f5d3SJohn Marino TRACE_OUT(init_cache_mp_read_session_response);
498*86d7f5d3SJohn Marino }
499*86d7f5d3SJohn Marino
500*86d7f5d3SJohn Marino void
finalize_cache_mp_read_session_response(struct cache_mp_read_session_response * mp_rs_response)501*86d7f5d3SJohn Marino finalize_cache_mp_read_session_response(
502*86d7f5d3SJohn Marino struct cache_mp_read_session_response *mp_rs_response)
503*86d7f5d3SJohn Marino {
504*86d7f5d3SJohn Marino
505*86d7f5d3SJohn Marino TRACE_IN(finalize_cache_mp_read_session_response);
506*86d7f5d3SJohn Marino TRACE_OUT(finalize_cache_mp_read_session_response);
507*86d7f5d3SJohn Marino }
508*86d7f5d3SJohn Marino
509*86d7f5d3SJohn Marino struct cache_mp_read_session_response *
get_cache_mp_read_session_response(struct comm_element * element)510*86d7f5d3SJohn Marino get_cache_mp_read_session_response(struct comm_element *element)
511*86d7f5d3SJohn Marino {
512*86d7f5d3SJohn Marino
513*86d7f5d3SJohn Marino TRACE_IN(get_cache_mp_read_session_response);
514*86d7f5d3SJohn Marino assert(element->type == CET_MP_READ_SESSION_RESPONSE);
515*86d7f5d3SJohn Marino TRACE_OUT(get_cache_mp_read_session_response);
516*86d7f5d3SJohn Marino return (&element->c_mp_rs_response);
517*86d7f5d3SJohn Marino }
518*86d7f5d3SJohn Marino
519*86d7f5d3SJohn Marino void
init_cache_mp_read_session_read_response(struct cache_mp_read_session_read_response * mp_ws_read_response)520*86d7f5d3SJohn Marino init_cache_mp_read_session_read_response(
521*86d7f5d3SJohn Marino struct cache_mp_read_session_read_response *mp_ws_read_response)
522*86d7f5d3SJohn Marino {
523*86d7f5d3SJohn Marino
524*86d7f5d3SJohn Marino TRACE_IN(init_cache_mp_read_session_read_response);
525*86d7f5d3SJohn Marino memset(mp_ws_read_response, 0,
526*86d7f5d3SJohn Marino sizeof(struct cache_mp_read_session_read_response));
527*86d7f5d3SJohn Marino TRACE_OUT(init_cache_mp_read_session_read_response);
528*86d7f5d3SJohn Marino }
529*86d7f5d3SJohn Marino
530*86d7f5d3SJohn Marino void
finalize_cache_mp_read_session_read_response(struct cache_mp_read_session_read_response * mp_rs_read_response)531*86d7f5d3SJohn Marino finalize_cache_mp_read_session_read_response(
532*86d7f5d3SJohn Marino struct cache_mp_read_session_read_response *mp_rs_read_response)
533*86d7f5d3SJohn Marino {
534*86d7f5d3SJohn Marino
535*86d7f5d3SJohn Marino TRACE_IN(finalize_cache_mp_read_session_read_response);
536*86d7f5d3SJohn Marino free(mp_rs_read_response->data);
537*86d7f5d3SJohn Marino TRACE_OUT(finalize_cache_mp_read_session_read_response);
538*86d7f5d3SJohn Marino }
539*86d7f5d3SJohn Marino
540*86d7f5d3SJohn Marino struct cache_mp_read_session_read_response *
get_cache_mp_read_session_read_response(struct comm_element * element)541*86d7f5d3SJohn Marino get_cache_mp_read_session_read_response(struct comm_element *element)
542*86d7f5d3SJohn Marino {
543*86d7f5d3SJohn Marino
544*86d7f5d3SJohn Marino TRACE_IN(get_cache_mp_read_session_read_response);
545*86d7f5d3SJohn Marino assert(element->type == CET_MP_READ_SESSION_READ_RESPONSE);
546*86d7f5d3SJohn Marino TRACE_OUT(get_cache_mp_read_session_read_response);
547*86d7f5d3SJohn Marino return (&element->c_mp_rs_read_response);
548*86d7f5d3SJohn Marino }
549