xref: /dragonfly/usr.sbin/nscd/protocol.c (revision 86d7f5d3)
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