1158115Sume/*-
2158115Sume * Copyright (c) 2005 Michael Bushkov <bushman@rsu.ru>
3158115Sume * All rights reserved.
4158115Sume *
5158115Sume * Redistribution and use in source and binary forms, with or without
6158115Sume * modification, are permitted provided that the following conditions
7158115Sume * are met:
8158115Sume * 1. Redistributions of source code must retain the above copyright
9158115Sume *    notice, this list of conditions and the following disclaimer.
10158115Sume * 2. Redistributions in binary form must reproduce the above copyright
11158115Sume *    notice, this list of conditions and the following disclaimer in the
12158115Sume *    documentation and/or other materials provided with the distribution.
13158115Sume *
14158115Sume * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
15158115Sume * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
16158115Sume * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
17158115Sume * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
18158115Sume * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
19158115Sume * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
20158115Sume * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
21158115Sume * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
22158115Sume * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
23158115Sume * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
24158115Sume * SUCH DAMAGE.
25158115Sume *
26158115Sume */
27158115Sume
28158115Sume#include <sys/cdefs.h>
29158115Sume__FBSDID("$FreeBSD$");
30158115Sume
31158115Sume#include <assert.h>
32158115Sume#include <stdlib.h>
33158115Sume#include <string.h>
34194093Sdes
35158115Sume#include "debug.h"
36158115Sume#include "log.h"
37158115Sume#include "protocol.h"
38158115Sume
39158115Sume/*
40158115Sume * Initializes the comm_element with any given type of data
41158115Sume */
42158115Sumevoid
43158115Sumeinit_comm_element(struct comm_element *element, enum comm_element_t type)
44158115Sume{
45158115Sume
46158115Sume	TRACE_IN(init_comm_element);
47158115Sume	memset(element, 0, sizeof(struct comm_element));
48158115Sume
49158115Sume	switch (type) {
50158115Sume	case CET_WRITE_REQUEST:
51158115Sume		init_cache_write_request(&element->c_write_request);
52158115Sume		break;
53158115Sume	case CET_WRITE_RESPONSE:
54158115Sume		init_cache_write_response(&element->c_write_response);
55158115Sume		break;
56158115Sume	case CET_READ_REQUEST:
57158115Sume		init_cache_read_request(&element->c_read_request);
58158115Sume		break;
59158115Sume	case CET_READ_RESPONSE:
60158115Sume		init_cache_read_response(&element->c_read_response);
61158115Sume		break;
62158115Sume	case CET_TRANSFORM_REQUEST:
63158115Sume		init_cache_transform_request(&element->c_transform_request);
64158115Sume		break;
65158115Sume	case CET_TRANSFORM_RESPONSE:
66158115Sume		init_cache_transform_response(&element->c_transform_response);
67158115Sume		break;
68158115Sume	case CET_MP_WRITE_SESSION_REQUEST:
69158115Sume		init_cache_mp_write_session_request(&element->c_mp_ws_request);
70158115Sume		break;
71158115Sume	case CET_MP_WRITE_SESSION_RESPONSE:
72158115Sume		init_cache_mp_write_session_response(&element->c_mp_ws_response);
73158115Sume		break;
74158115Sume	case CET_MP_WRITE_SESSION_WRITE_REQUEST:
75158115Sume		init_cache_mp_write_session_write_request(
76158115Sume			&element->c_mp_ws_write_request);
77158115Sume		break;
78158115Sume	case CET_MP_WRITE_SESSION_WRITE_RESPONSE:
79158115Sume		init_cache_mp_write_session_write_response(
80158115Sume			&element->c_mp_ws_write_response);
81158115Sume		break;
82158115Sume	case CET_MP_READ_SESSION_REQUEST:
83158115Sume		init_cache_mp_read_session_request(&element->c_mp_rs_request);
84158115Sume		break;
85158115Sume	case CET_MP_READ_SESSION_RESPONSE:
86158115Sume		init_cache_mp_read_session_response(&element->c_mp_rs_response);
87158115Sume		break;
88158115Sume	case CET_MP_READ_SESSION_READ_RESPONSE:
89158115Sume		init_cache_mp_read_session_read_response(
90158115Sume			&element->c_mp_rs_read_response);
91158115Sume		break;
92158115Sume	case CET_UNDEFINED:
93158115Sume		break;
94158115Sume	default:
95158115Sume		LOG_ERR_2("init_comm_element", "invalid communication element");
96158115Sume		TRACE_OUT(init_comm_element);
97158115Sume	return;
98158115Sume	}
99158115Sume
100158115Sume	element->type = type;
101158115Sume	TRACE_OUT(init_comm_element);
102158115Sume}
103158115Sume
104158115Sumevoid
105158115Sumefinalize_comm_element(struct comm_element *element)
106158115Sume{
107158115Sume
108158115Sume	TRACE_IN(finalize_comm_element);
109158115Sume	switch (element->type) {
110158115Sume	case CET_WRITE_REQUEST:
111158115Sume		finalize_cache_write_request(&element->c_write_request);
112158115Sume		break;
113158115Sume	case CET_WRITE_RESPONSE:
114158115Sume		finalize_cache_write_response(&element->c_write_response);
115158115Sume		break;
116158115Sume	case CET_READ_REQUEST:
117158115Sume		finalize_cache_read_request(&element->c_read_request);
118158115Sume		break;
119158115Sume	case CET_READ_RESPONSE:
120158115Sume		finalize_cache_read_response(&element->c_read_response);
121158115Sume		break;
122158115Sume	case CET_TRANSFORM_REQUEST:
123158115Sume		finalize_cache_transform_request(&element->c_transform_request);
124158115Sume		break;
125158115Sume	case CET_TRANSFORM_RESPONSE:
126158115Sume		finalize_cache_transform_response(
127158115Sume			&element->c_transform_response);
128158115Sume		break;
129158115Sume	case CET_MP_WRITE_SESSION_REQUEST:
130158115Sume		finalize_cache_mp_write_session_request(
131158115Sume			&element->c_mp_ws_request);
132158115Sume		break;
133158115Sume	case CET_MP_WRITE_SESSION_RESPONSE:
134158115Sume		finalize_cache_mp_write_session_response(
135158115Sume			&element->c_mp_ws_response);
136158115Sume		break;
137158115Sume	case CET_MP_WRITE_SESSION_WRITE_REQUEST:
138158115Sume		finalize_cache_mp_write_session_write_request(
139158115Sume			&element->c_mp_ws_write_request);
140158115Sume		break;
141158115Sume	case CET_MP_WRITE_SESSION_WRITE_RESPONSE:
142158115Sume		finalize_cache_mp_write_session_write_response(
143158115Sume			&element->c_mp_ws_write_response);
144158115Sume		break;
145158115Sume	case CET_MP_READ_SESSION_REQUEST:
146158115Sume		finalize_cache_mp_read_session_request(
147158115Sume			&element->c_mp_rs_request);
148158115Sume		break;
149158115Sume	case CET_MP_READ_SESSION_RESPONSE:
150158115Sume		finalize_cache_mp_read_session_response(
151158115Sume			&element->c_mp_rs_response);
152158115Sume		break;
153158115Sume	case CET_MP_READ_SESSION_READ_RESPONSE:
154158115Sume		finalize_cache_mp_read_session_read_response(
155158115Sume			&element->c_mp_rs_read_response);
156158115Sume		break;
157158115Sume	case CET_UNDEFINED:
158158115Sume		break;
159158115Sume	default:
160158115Sume	break;
161158115Sume	}
162158115Sume
163158115Sume	element->type = CET_UNDEFINED;
164158115Sume	TRACE_OUT(finalize_comm_element);
165158115Sume}
166158115Sume
167158115Sumevoid
168158115Sumeinit_cache_write_request(struct cache_write_request *write_request)
169158115Sume{
170158115Sume
171158115Sume	TRACE_IN(init_cache_write_request);
172158115Sume	memset(write_request, 0, sizeof(struct cache_write_request));
173158115Sume	TRACE_OUT(init_cache_write_request);
174158115Sume}
175158115Sume
176158115Sumevoid
177158115Sumefinalize_cache_write_request(struct cache_write_request *write_request)
178158115Sume{
179158115Sume
180158115Sume	TRACE_IN(finalize_cache_write_request);
181158115Sume	free(write_request->entry);
182158115Sume	free(write_request->cache_key);
183158115Sume	free(write_request->data);
184158115Sume	TRACE_OUT(finalize_cache_write_request);
185158115Sume}
186158115Sume
187158115Sumestruct cache_write_request *
188158115Sumeget_cache_write_request(struct comm_element *element)
189158115Sume{
190158115Sume
191158115Sume	TRACE_IN(get_cache_write_request);
192158115Sume	assert(element->type == CET_WRITE_REQUEST);
193158115Sume	TRACE_OUT(get_cache_write_request);
194158115Sume	return (&element->c_write_request);
195158115Sume}
196158115Sume
197158115Sumevoid
198158115Sumeinit_cache_write_response(struct cache_write_response *write_response)
199158115Sume{
200158115Sume
201158115Sume	TRACE_IN(init_cache_write_response);
202158115Sume	memset(write_response, 0, sizeof(struct cache_write_response));
203158115Sume	TRACE_OUT(init_cache_write_response);
204158115Sume}
205158115Sume
206158115Sumevoid
207158115Sumefinalize_cache_write_response(struct cache_write_response *write_response)
208158115Sume{
209158115Sume
210158115Sume	TRACE_IN(finalize_cache_write_response);
211158115Sume	TRACE_OUT(finalize_cache_write_response);
212158115Sume}
213158115Sume
214158115Sumestruct cache_write_response *
215158115Sumeget_cache_write_response(struct comm_element *element)
216158115Sume{
217158115Sume
218158115Sume	TRACE_IN(get_cache_write_response);
219158115Sume	assert(element->type == CET_WRITE_RESPONSE);
220158115Sume	TRACE_OUT(get_cache_write_response);
221158115Sume	return (&element->c_write_response);
222158115Sume}
223158115Sume
224158115Sumevoid
225158115Sumeinit_cache_read_request(struct cache_read_request *read_request)
226158115Sume{
227158115Sume
228158115Sume	TRACE_IN(init_cache_read_request);
229158115Sume	memset(read_request, 0, sizeof(struct cache_read_request));
230158115Sume	TRACE_OUT(init_cache_read_request);
231158115Sume}
232158115Sume
233158115Sumevoid
234158115Sumefinalize_cache_read_request(struct cache_read_request *read_request)
235158115Sume{
236158115Sume
237158115Sume	TRACE_IN(finalize_cache_read_request);
238158115Sume	free(read_request->entry);
239158115Sume	free(read_request->cache_key);
240158115Sume	TRACE_OUT(finalize_cache_read_request);
241158115Sume}
242158115Sume
243158115Sumestruct cache_read_request *
244158115Sumeget_cache_read_request(struct comm_element *element)
245158115Sume{
246158115Sume
247158115Sume	TRACE_IN(get_cache_read_request);
248158115Sume	assert(element->type == CET_READ_REQUEST);
249158115Sume	TRACE_OUT(get_cache_read_request);
250158115Sume	return (&element->c_read_request);
251158115Sume}
252158115Sume
253158115Sumevoid
254158115Sumeinit_cache_read_response(struct cache_read_response *read_response)
255158115Sume{
256158115Sume
257158115Sume	TRACE_IN(init_cache_read_response);
258158115Sume	memset(read_response, 0, sizeof(struct cache_read_response));
259158115Sume	TRACE_OUT(init_cache_read_response);
260158115Sume}
261158115Sume
262158115Sumevoid
263158115Sumefinalize_cache_read_response(struct cache_read_response *read_response)
264158115Sume{
265158115Sume
266158115Sume	TRACE_IN(finalize_cache_read_response);
267158115Sume	free(read_response->data);
268158115Sume	TRACE_OUT(finalize_cache_read_response);
269158115Sume}
270158115Sume
271158115Sumestruct cache_read_response *
272158115Sumeget_cache_read_response(struct comm_element *element)
273158115Sume{
274158115Sume
275158115Sume	TRACE_IN(get_cache_read_response);
276158115Sume	assert(element->type == CET_READ_RESPONSE);
277158115Sume	TRACE_OUT(get_cache_read_response);
278158115Sume	return (&element->c_read_response);
279158115Sume}
280158115Sume
281158115Sumevoid
282158115Sumeinit_cache_transform_request(struct cache_transform_request *transform_request)
283158115Sume{
284158115Sume
285158115Sume	TRACE_IN(init_cache_transform_request);
286158115Sume	memset(transform_request, 0, sizeof(struct cache_transform_request));
287158115Sume	TRACE_OUT(init_cache_transform_request);
288158115Sume}
289158115Sume
290158115Sumevoid
291158115Sumefinalize_cache_transform_request(
292158115Sume	struct cache_transform_request *transform_request)
293158115Sume{
294158115Sume
295158115Sume	TRACE_IN(finalize_cache_transform_request);
296158115Sume	free(transform_request->entry);
297158115Sume	TRACE_OUT(finalize_cache_transform_request);
298158115Sume}
299158115Sume
300158115Sumestruct cache_transform_request *
301158115Sumeget_cache_transform_request(struct comm_element *element)
302158115Sume{
303158115Sume
304158115Sume	TRACE_IN(get_cache_transform_request);
305158115Sume	assert(element->type == CET_TRANSFORM_REQUEST);
306158115Sume	TRACE_OUT(get_cache_transform_request);
307158115Sume	return (&element->c_transform_request);
308158115Sume}
309158115Sume
310158115Sumevoid
311158115Sumeinit_cache_transform_response(
312158115Sume	struct cache_transform_response *transform_response)
313158115Sume{
314158115Sume
315158115Sume	TRACE_IN(init_cache_transform_request);
316158115Sume	memset(transform_response, 0, sizeof(struct cache_transform_response));
317158115Sume	TRACE_OUT(init_cache_transform_request);
318158115Sume}
319158115Sume
320158115Sumevoid
321158115Sumefinalize_cache_transform_response(
322158115Sume	struct cache_transform_response *transform_response)
323158115Sume{
324158115Sume
325158115Sume	TRACE_IN(finalize_cache_transform_response);
326158115Sume	TRACE_OUT(finalize_cache_transform_response);
327158115Sume}
328158115Sume
329158115Sumestruct cache_transform_response *
330158115Sumeget_cache_transform_response(struct comm_element *element)
331158115Sume{
332158115Sume
333158115Sume	TRACE_IN(get_cache_transform_response);
334158115Sume	assert(element->type == CET_TRANSFORM_RESPONSE);
335158115Sume	TRACE_OUT(get_cache_transform_response);
336158115Sume	return (&element->c_transform_response);
337158115Sume}
338158115Sume
339158115Sume
340158115Sumevoid
341158115Sumeinit_cache_mp_write_session_request(
342158115Sume	struct cache_mp_write_session_request *mp_ws_request)
343158115Sume{
344158115Sume
345158115Sume	TRACE_IN(init_cache_mp_write_session_request);
346158115Sume	memset(mp_ws_request, 0,
347158115Sume    		sizeof(struct cache_mp_write_session_request));
348158115Sume	TRACE_OUT(init_cache_mp_write_session_request);
349158115Sume}
350158115Sume
351158115Sumevoid
352158115Sumefinalize_cache_mp_write_session_request(
353158115Sume	struct cache_mp_write_session_request *mp_ws_request)
354158115Sume{
355158115Sume
356158115Sume	TRACE_IN(finalize_cache_mp_write_session_request);
357158115Sume	free(mp_ws_request->entry);
358158115Sume	TRACE_OUT(finalize_cache_mp_write_session_request);
359158115Sume}
360158115Sume
361158115Sumestruct cache_mp_write_session_request *
362158115Sumeget_cache_mp_write_session_request(struct comm_element *element)
363158115Sume{
364158115Sume
365158115Sume	TRACE_IN(get_cache_mp_write_session_request);
366158115Sume	assert(element->type == CET_MP_WRITE_SESSION_REQUEST);
367158115Sume	TRACE_OUT(get_cache_mp_write_session_request);
368158115Sume	return (&element->c_mp_ws_request);
369158115Sume}
370158115Sume
371158115Sumevoid
372158115Sumeinit_cache_mp_write_session_response(
373158115Sume	struct cache_mp_write_session_response *mp_ws_response)
374158115Sume{
375158115Sume
376158115Sume	TRACE_IN(init_cache_mp_write_session_response);
377158115Sume	memset(mp_ws_response, 0,
378158115Sume    		sizeof(struct cache_mp_write_session_response));
379158115Sume	TRACE_OUT(init_cache_mp_write_session_response);
380158115Sume}
381158115Sume
382158115Sumevoid
383158115Sumefinalize_cache_mp_write_session_response(
384158115Sume	struct cache_mp_write_session_response *mp_ws_response)
385158115Sume{
386158115Sume
387158115Sume	TRACE_IN(finalize_cache_mp_write_session_response);
388158115Sume	TRACE_OUT(finalize_cache_mp_write_session_response);
389158115Sume}
390158115Sume
391158115Sumestruct cache_mp_write_session_response *
392158115Sumeget_cache_mp_write_session_response(struct comm_element *element)
393158115Sume{
394158115Sume
395158115Sume	TRACE_IN(get_cache_mp_write_session_response);
396158115Sume	assert(element->type == CET_MP_WRITE_SESSION_RESPONSE);
397158115Sume	TRACE_OUT(get_cache_mp_write_session_response);
398158115Sume	return (&element->c_mp_ws_response);
399158115Sume}
400158115Sume
401158115Sumevoid
402158115Sumeinit_cache_mp_write_session_write_request(
403158115Sume	struct cache_mp_write_session_write_request *mp_ws_write_request)
404158115Sume{
405158115Sume
406158115Sume	TRACE_IN(init_cache_mp_write_session_write_request);
407158115Sume	memset(mp_ws_write_request, 0,
408158115Sume		sizeof(struct cache_mp_write_session_write_request));
409158115Sume	TRACE_OUT(init_cache_mp_write_session_write_response);
410158115Sume}
411158115Sume
412158115Sumevoid
413158115Sumefinalize_cache_mp_write_session_write_request(
414158115Sume	struct cache_mp_write_session_write_request *mp_ws_write_request)
415158115Sume{
416158115Sume
417158115Sume	TRACE_IN(finalize_cache_mp_write_session_write_request);
418158115Sume	free(mp_ws_write_request->data);
419158115Sume	TRACE_OUT(finalize_cache_mp_write_session_write_request);
420158115Sume}
421158115Sume
422158115Sumestruct cache_mp_write_session_write_request *
423158115Sumeget_cache_mp_write_session_write_request(struct comm_element *element)
424158115Sume{
425158115Sume
426158115Sume	TRACE_IN(get_cache_mp_write_session_write_request);
427158115Sume	assert(element->type == CET_MP_WRITE_SESSION_WRITE_REQUEST);
428158115Sume	TRACE_OUT(get_cache_mp_write_session_write_request);
429158115Sume	return (&element->c_mp_ws_write_request);
430158115Sume}
431158115Sume
432158115Sumevoid
433158115Sumeinit_cache_mp_write_session_write_response(
434158115Sume	struct cache_mp_write_session_write_response *mp_ws_write_response)
435158115Sume{
436158115Sume
437158115Sume	TRACE_IN(init_cache_mp_write_session_write_response);
438158115Sume	memset(mp_ws_write_response, 0,
439158115Sume		sizeof(struct cache_mp_write_session_write_response));
440158115Sume	TRACE_OUT(init_cache_mp_write_session_write_response);
441158115Sume}
442158115Sume
443158115Sumevoid
444158115Sumefinalize_cache_mp_write_session_write_response(
445158115Sume	struct cache_mp_write_session_write_response *mp_ws_write_response)
446158115Sume{
447158115Sume
448158115Sume	TRACE_IN(finalize_cache_mp_write_session_write_response);
449158115Sume	TRACE_OUT(finalize_cache_mp_write_session_write_response);
450158115Sume}
451158115Sume
452158115Sumestruct cache_mp_write_session_write_response *
453158115Sumeget_cache_mp_write_session_write_response(struct comm_element *element)
454158115Sume{
455158115Sume
456158115Sume	TRACE_IN(get_cache_mp_write_session_write_response);
457158115Sume	assert(element->type == CET_MP_WRITE_SESSION_WRITE_RESPONSE);
458158115Sume	TRACE_OUT(get_cache_mp_write_session_write_response);
459158115Sume	return (&element->c_mp_ws_write_response);
460158115Sume}
461158115Sume
462158115Sumevoid
463158115Sumeinit_cache_mp_read_session_request(
464158115Sume	struct cache_mp_read_session_request *mp_rs_request)
465158115Sume{
466158115Sume
467158115Sume	TRACE_IN(init_cache_mp_read_session_request);
468158115Sume	memset(mp_rs_request, 0, sizeof(struct cache_mp_read_session_request));
469158115Sume	TRACE_OUT(init_cache_mp_read_session_request);
470158115Sume}
471158115Sume
472158115Sumevoid
473158115Sumefinalize_cache_mp_read_session_request(
474158115Sume	struct cache_mp_read_session_request *mp_rs_request)
475158115Sume{
476158115Sume
477158115Sume	TRACE_IN(finalize_cache_mp_read_session_request);
478158115Sume	free(mp_rs_request->entry);
479158115Sume	TRACE_OUT(finalize_cache_mp_read_session_request);
480158115Sume}
481158115Sume
482158115Sumestruct cache_mp_read_session_request *
483158115Sumeget_cache_mp_read_session_request(struct comm_element *element)
484158115Sume{
485158115Sume
486158115Sume	TRACE_IN(get_cache_mp_read_session_request);
487158115Sume	assert(element->type == CET_MP_READ_SESSION_REQUEST);
488158115Sume	TRACE_OUT(get_cache_mp_read_session_request);
489158115Sume	return (&element->c_mp_rs_request);
490158115Sume}
491158115Sume
492158115Sumevoid
493158115Sumeinit_cache_mp_read_session_response(
494158115Sume	struct cache_mp_read_session_response *mp_rs_response)
495158115Sume{
496158115Sume
497158115Sume	TRACE_IN(init_cache_mp_read_session_response);
498158115Sume	memset(mp_rs_response, 0,
499158115Sume    		sizeof(struct cache_mp_read_session_response));
500158115Sume	TRACE_OUT(init_cache_mp_read_session_response);
501158115Sume}
502158115Sume
503158115Sumevoid
504158115Sumefinalize_cache_mp_read_session_response(
505158115Sume	struct cache_mp_read_session_response *mp_rs_response)
506158115Sume{
507158115Sume
508158115Sume	TRACE_IN(finalize_cache_mp_read_session_response);
509158115Sume	TRACE_OUT(finalize_cache_mp_read_session_response);
510158115Sume}
511158115Sume
512158115Sumestruct cache_mp_read_session_response *
513158115Sumeget_cache_mp_read_session_response(struct comm_element *element)
514158115Sume{
515158115Sume
516158115Sume	TRACE_IN(get_cache_mp_read_session_response);
517158115Sume	assert(element->type == CET_MP_READ_SESSION_RESPONSE);
518158115Sume	TRACE_OUT(get_cache_mp_read_session_response);
519158115Sume	return (&element->c_mp_rs_response);
520158115Sume}
521158115Sume
522158115Sumevoid
523158115Sumeinit_cache_mp_read_session_read_response(
524158115Sume	struct cache_mp_read_session_read_response *mp_ws_read_response)
525158115Sume{
526158115Sume
527158115Sume	TRACE_IN(init_cache_mp_read_session_read_response);
528158115Sume	memset(mp_ws_read_response, 0,
529158115Sume		sizeof(struct cache_mp_read_session_read_response));
530158115Sume	TRACE_OUT(init_cache_mp_read_session_read_response);
531158115Sume}
532158115Sume
533158115Sumevoid
534158115Sumefinalize_cache_mp_read_session_read_response(
535158115Sume	struct cache_mp_read_session_read_response *mp_rs_read_response)
536158115Sume{
537158115Sume
538158115Sume	TRACE_IN(finalize_cache_mp_read_session_read_response);
539158115Sume	free(mp_rs_read_response->data);
540158115Sume	TRACE_OUT(finalize_cache_mp_read_session_read_response);
541158115Sume}
542158115Sume
543158115Sumestruct cache_mp_read_session_read_response *
544158115Sumeget_cache_mp_read_session_read_response(struct comm_element *element)
545158115Sume{
546158115Sume
547158115Sume	TRACE_IN(get_cache_mp_read_session_read_response);
548158115Sume	assert(element->type == CET_MP_READ_SESSION_READ_RESPONSE);
549158115Sume	TRACE_OUT(get_cache_mp_read_session_read_response);
550158115Sume	return (&element->c_mp_rs_read_response);
551158115Sume}
552