106a99fe3SHajimu UMEMOTO /*-
206a99fe3SHajimu UMEMOTO * Copyright (c) 2005 Michael Bushkov <bushman@rsu.ru>
306a99fe3SHajimu UMEMOTO * All rights reserved.
406a99fe3SHajimu UMEMOTO *
506a99fe3SHajimu UMEMOTO * Redistribution and use in source and binary forms, with or without
606a99fe3SHajimu UMEMOTO * modification, are permitted provided that the following conditions
706a99fe3SHajimu UMEMOTO * are met:
806a99fe3SHajimu UMEMOTO * 1. Redistributions of source code must retain the above copyright
906a99fe3SHajimu UMEMOTO * notice, this list of conditions and the following disclaimer.
1006a99fe3SHajimu UMEMOTO * 2. Redistributions in binary form must reproduce the above copyright
1106a99fe3SHajimu UMEMOTO * notice, this list of conditions and the following disclaimer in the
1206a99fe3SHajimu UMEMOTO * documentation and/or other materials provided with the distribution.
1306a99fe3SHajimu UMEMOTO *
1406a99fe3SHajimu UMEMOTO * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
1506a99fe3SHajimu UMEMOTO * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
1606a99fe3SHajimu UMEMOTO * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
1706a99fe3SHajimu UMEMOTO * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
1806a99fe3SHajimu UMEMOTO * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
1906a99fe3SHajimu UMEMOTO * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
2006a99fe3SHajimu UMEMOTO * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
2106a99fe3SHajimu UMEMOTO * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
2206a99fe3SHajimu UMEMOTO * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
2306a99fe3SHajimu UMEMOTO * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
2406a99fe3SHajimu UMEMOTO * SUCH DAMAGE.
2506a99fe3SHajimu UMEMOTO *
2606a99fe3SHajimu UMEMOTO */
2706a99fe3SHajimu UMEMOTO
2806a99fe3SHajimu UMEMOTO #include <sys/cdefs.h>
2906a99fe3SHajimu UMEMOTO #include <assert.h>
3006a99fe3SHajimu UMEMOTO #include <stdlib.h>
3106a99fe3SHajimu UMEMOTO #include <string.h>
32a5a5d924SDag-Erling Smørgrav
3306a99fe3SHajimu UMEMOTO #include "debug.h"
3406a99fe3SHajimu UMEMOTO #include "log.h"
3506a99fe3SHajimu UMEMOTO #include "protocol.h"
3606a99fe3SHajimu UMEMOTO
3706a99fe3SHajimu UMEMOTO /*
3806a99fe3SHajimu UMEMOTO * Initializes the comm_element with any given type of data
3906a99fe3SHajimu UMEMOTO */
4006a99fe3SHajimu UMEMOTO void
init_comm_element(struct comm_element * element,enum comm_element_t type)4106a99fe3SHajimu UMEMOTO init_comm_element(struct comm_element *element, enum comm_element_t type)
4206a99fe3SHajimu UMEMOTO {
4306a99fe3SHajimu UMEMOTO
4406a99fe3SHajimu UMEMOTO TRACE_IN(init_comm_element);
4506a99fe3SHajimu UMEMOTO memset(element, 0, sizeof(struct comm_element));
4606a99fe3SHajimu UMEMOTO
4706a99fe3SHajimu UMEMOTO switch (type) {
4806a99fe3SHajimu UMEMOTO case CET_WRITE_REQUEST:
4906a99fe3SHajimu UMEMOTO init_cache_write_request(&element->c_write_request);
5006a99fe3SHajimu UMEMOTO break;
5106a99fe3SHajimu UMEMOTO case CET_WRITE_RESPONSE:
5206a99fe3SHajimu UMEMOTO init_cache_write_response(&element->c_write_response);
5306a99fe3SHajimu UMEMOTO break;
5406a99fe3SHajimu UMEMOTO case CET_READ_REQUEST:
5506a99fe3SHajimu UMEMOTO init_cache_read_request(&element->c_read_request);
5606a99fe3SHajimu UMEMOTO break;
5706a99fe3SHajimu UMEMOTO case CET_READ_RESPONSE:
5806a99fe3SHajimu UMEMOTO init_cache_read_response(&element->c_read_response);
5906a99fe3SHajimu UMEMOTO break;
6006a99fe3SHajimu UMEMOTO case CET_TRANSFORM_REQUEST:
6106a99fe3SHajimu UMEMOTO init_cache_transform_request(&element->c_transform_request);
6206a99fe3SHajimu UMEMOTO break;
6306a99fe3SHajimu UMEMOTO case CET_TRANSFORM_RESPONSE:
6406a99fe3SHajimu UMEMOTO init_cache_transform_response(&element->c_transform_response);
6506a99fe3SHajimu UMEMOTO break;
6606a99fe3SHajimu UMEMOTO case CET_MP_WRITE_SESSION_REQUEST:
6706a99fe3SHajimu UMEMOTO init_cache_mp_write_session_request(&element->c_mp_ws_request);
6806a99fe3SHajimu UMEMOTO break;
6906a99fe3SHajimu UMEMOTO case CET_MP_WRITE_SESSION_RESPONSE:
7006a99fe3SHajimu UMEMOTO init_cache_mp_write_session_response(&element->c_mp_ws_response);
7106a99fe3SHajimu UMEMOTO break;
7206a99fe3SHajimu UMEMOTO case CET_MP_WRITE_SESSION_WRITE_REQUEST:
7306a99fe3SHajimu UMEMOTO init_cache_mp_write_session_write_request(
7406a99fe3SHajimu UMEMOTO &element->c_mp_ws_write_request);
7506a99fe3SHajimu UMEMOTO break;
7606a99fe3SHajimu UMEMOTO case CET_MP_WRITE_SESSION_WRITE_RESPONSE:
7706a99fe3SHajimu UMEMOTO init_cache_mp_write_session_write_response(
7806a99fe3SHajimu UMEMOTO &element->c_mp_ws_write_response);
7906a99fe3SHajimu UMEMOTO break;
8006a99fe3SHajimu UMEMOTO case CET_MP_READ_SESSION_REQUEST:
8106a99fe3SHajimu UMEMOTO init_cache_mp_read_session_request(&element->c_mp_rs_request);
8206a99fe3SHajimu UMEMOTO break;
8306a99fe3SHajimu UMEMOTO case CET_MP_READ_SESSION_RESPONSE:
8406a99fe3SHajimu UMEMOTO init_cache_mp_read_session_response(&element->c_mp_rs_response);
8506a99fe3SHajimu UMEMOTO break;
8606a99fe3SHajimu UMEMOTO case CET_MP_READ_SESSION_READ_RESPONSE:
8706a99fe3SHajimu UMEMOTO init_cache_mp_read_session_read_response(
8806a99fe3SHajimu UMEMOTO &element->c_mp_rs_read_response);
8906a99fe3SHajimu UMEMOTO break;
9006a99fe3SHajimu UMEMOTO case CET_UNDEFINED:
9106a99fe3SHajimu UMEMOTO break;
9206a99fe3SHajimu UMEMOTO default:
9306a99fe3SHajimu UMEMOTO LOG_ERR_2("init_comm_element", "invalid communication element");
9406a99fe3SHajimu UMEMOTO TRACE_OUT(init_comm_element);
9506a99fe3SHajimu UMEMOTO return;
9606a99fe3SHajimu UMEMOTO }
9706a99fe3SHajimu UMEMOTO
9806a99fe3SHajimu UMEMOTO element->type = type;
9906a99fe3SHajimu UMEMOTO TRACE_OUT(init_comm_element);
10006a99fe3SHajimu UMEMOTO }
10106a99fe3SHajimu UMEMOTO
10206a99fe3SHajimu UMEMOTO void
finalize_comm_element(struct comm_element * element)10306a99fe3SHajimu UMEMOTO finalize_comm_element(struct comm_element *element)
10406a99fe3SHajimu UMEMOTO {
10506a99fe3SHajimu UMEMOTO
10606a99fe3SHajimu UMEMOTO TRACE_IN(finalize_comm_element);
10706a99fe3SHajimu UMEMOTO switch (element->type) {
10806a99fe3SHajimu UMEMOTO case CET_WRITE_REQUEST:
10906a99fe3SHajimu UMEMOTO finalize_cache_write_request(&element->c_write_request);
11006a99fe3SHajimu UMEMOTO break;
11106a99fe3SHajimu UMEMOTO case CET_WRITE_RESPONSE:
11206a99fe3SHajimu UMEMOTO finalize_cache_write_response(&element->c_write_response);
11306a99fe3SHajimu UMEMOTO break;
11406a99fe3SHajimu UMEMOTO case CET_READ_REQUEST:
11506a99fe3SHajimu UMEMOTO finalize_cache_read_request(&element->c_read_request);
11606a99fe3SHajimu UMEMOTO break;
11706a99fe3SHajimu UMEMOTO case CET_READ_RESPONSE:
11806a99fe3SHajimu UMEMOTO finalize_cache_read_response(&element->c_read_response);
11906a99fe3SHajimu UMEMOTO break;
12006a99fe3SHajimu UMEMOTO case CET_TRANSFORM_REQUEST:
12106a99fe3SHajimu UMEMOTO finalize_cache_transform_request(&element->c_transform_request);
12206a99fe3SHajimu UMEMOTO break;
12306a99fe3SHajimu UMEMOTO case CET_TRANSFORM_RESPONSE:
12406a99fe3SHajimu UMEMOTO finalize_cache_transform_response(
12506a99fe3SHajimu UMEMOTO &element->c_transform_response);
12606a99fe3SHajimu UMEMOTO break;
12706a99fe3SHajimu UMEMOTO case CET_MP_WRITE_SESSION_REQUEST:
12806a99fe3SHajimu UMEMOTO finalize_cache_mp_write_session_request(
12906a99fe3SHajimu UMEMOTO &element->c_mp_ws_request);
13006a99fe3SHajimu UMEMOTO break;
13106a99fe3SHajimu UMEMOTO case CET_MP_WRITE_SESSION_RESPONSE:
13206a99fe3SHajimu UMEMOTO finalize_cache_mp_write_session_response(
13306a99fe3SHajimu UMEMOTO &element->c_mp_ws_response);
13406a99fe3SHajimu UMEMOTO break;
13506a99fe3SHajimu UMEMOTO case CET_MP_WRITE_SESSION_WRITE_REQUEST:
13606a99fe3SHajimu UMEMOTO finalize_cache_mp_write_session_write_request(
13706a99fe3SHajimu UMEMOTO &element->c_mp_ws_write_request);
13806a99fe3SHajimu UMEMOTO break;
13906a99fe3SHajimu UMEMOTO case CET_MP_WRITE_SESSION_WRITE_RESPONSE:
14006a99fe3SHajimu UMEMOTO finalize_cache_mp_write_session_write_response(
14106a99fe3SHajimu UMEMOTO &element->c_mp_ws_write_response);
14206a99fe3SHajimu UMEMOTO break;
14306a99fe3SHajimu UMEMOTO case CET_MP_READ_SESSION_REQUEST:
14406a99fe3SHajimu UMEMOTO finalize_cache_mp_read_session_request(
14506a99fe3SHajimu UMEMOTO &element->c_mp_rs_request);
14606a99fe3SHajimu UMEMOTO break;
14706a99fe3SHajimu UMEMOTO case CET_MP_READ_SESSION_RESPONSE:
14806a99fe3SHajimu UMEMOTO finalize_cache_mp_read_session_response(
14906a99fe3SHajimu UMEMOTO &element->c_mp_rs_response);
15006a99fe3SHajimu UMEMOTO break;
15106a99fe3SHajimu UMEMOTO case CET_MP_READ_SESSION_READ_RESPONSE:
15206a99fe3SHajimu UMEMOTO finalize_cache_mp_read_session_read_response(
15306a99fe3SHajimu UMEMOTO &element->c_mp_rs_read_response);
15406a99fe3SHajimu UMEMOTO break;
15506a99fe3SHajimu UMEMOTO case CET_UNDEFINED:
15606a99fe3SHajimu UMEMOTO break;
15706a99fe3SHajimu UMEMOTO default:
15806a99fe3SHajimu UMEMOTO break;
15906a99fe3SHajimu UMEMOTO }
16006a99fe3SHajimu UMEMOTO
16106a99fe3SHajimu UMEMOTO element->type = CET_UNDEFINED;
16206a99fe3SHajimu UMEMOTO TRACE_OUT(finalize_comm_element);
16306a99fe3SHajimu UMEMOTO }
16406a99fe3SHajimu UMEMOTO
16506a99fe3SHajimu UMEMOTO void
init_cache_write_request(struct cache_write_request * write_request)16606a99fe3SHajimu UMEMOTO init_cache_write_request(struct cache_write_request *write_request)
16706a99fe3SHajimu UMEMOTO {
16806a99fe3SHajimu UMEMOTO
16906a99fe3SHajimu UMEMOTO TRACE_IN(init_cache_write_request);
17006a99fe3SHajimu UMEMOTO memset(write_request, 0, sizeof(struct cache_write_request));
17106a99fe3SHajimu UMEMOTO TRACE_OUT(init_cache_write_request);
17206a99fe3SHajimu UMEMOTO }
17306a99fe3SHajimu UMEMOTO
17406a99fe3SHajimu UMEMOTO void
finalize_cache_write_request(struct cache_write_request * write_request)17506a99fe3SHajimu UMEMOTO finalize_cache_write_request(struct cache_write_request *write_request)
17606a99fe3SHajimu UMEMOTO {
17706a99fe3SHajimu UMEMOTO
17806a99fe3SHajimu UMEMOTO TRACE_IN(finalize_cache_write_request);
17906a99fe3SHajimu UMEMOTO free(write_request->entry);
18006a99fe3SHajimu UMEMOTO free(write_request->cache_key);
18106a99fe3SHajimu UMEMOTO free(write_request->data);
18206a99fe3SHajimu UMEMOTO TRACE_OUT(finalize_cache_write_request);
18306a99fe3SHajimu UMEMOTO }
18406a99fe3SHajimu UMEMOTO
18506a99fe3SHajimu UMEMOTO struct cache_write_request *
get_cache_write_request(struct comm_element * element)18606a99fe3SHajimu UMEMOTO get_cache_write_request(struct comm_element *element)
18706a99fe3SHajimu UMEMOTO {
18806a99fe3SHajimu UMEMOTO
18906a99fe3SHajimu UMEMOTO TRACE_IN(get_cache_write_request);
19006a99fe3SHajimu UMEMOTO assert(element->type == CET_WRITE_REQUEST);
19106a99fe3SHajimu UMEMOTO TRACE_OUT(get_cache_write_request);
19206a99fe3SHajimu UMEMOTO return (&element->c_write_request);
19306a99fe3SHajimu UMEMOTO }
19406a99fe3SHajimu UMEMOTO
19506a99fe3SHajimu UMEMOTO void
init_cache_write_response(struct cache_write_response * write_response)19606a99fe3SHajimu UMEMOTO init_cache_write_response(struct cache_write_response *write_response)
19706a99fe3SHajimu UMEMOTO {
19806a99fe3SHajimu UMEMOTO
19906a99fe3SHajimu UMEMOTO TRACE_IN(init_cache_write_response);
20006a99fe3SHajimu UMEMOTO memset(write_response, 0, sizeof(struct cache_write_response));
20106a99fe3SHajimu UMEMOTO TRACE_OUT(init_cache_write_response);
20206a99fe3SHajimu UMEMOTO }
20306a99fe3SHajimu UMEMOTO
20406a99fe3SHajimu UMEMOTO void
finalize_cache_write_response(struct cache_write_response * write_response)20506a99fe3SHajimu UMEMOTO finalize_cache_write_response(struct cache_write_response *write_response)
20606a99fe3SHajimu UMEMOTO {
20706a99fe3SHajimu UMEMOTO
20806a99fe3SHajimu UMEMOTO TRACE_IN(finalize_cache_write_response);
20906a99fe3SHajimu UMEMOTO TRACE_OUT(finalize_cache_write_response);
21006a99fe3SHajimu UMEMOTO }
21106a99fe3SHajimu UMEMOTO
21206a99fe3SHajimu UMEMOTO struct cache_write_response *
get_cache_write_response(struct comm_element * element)21306a99fe3SHajimu UMEMOTO get_cache_write_response(struct comm_element *element)
21406a99fe3SHajimu UMEMOTO {
21506a99fe3SHajimu UMEMOTO
21606a99fe3SHajimu UMEMOTO TRACE_IN(get_cache_write_response);
21706a99fe3SHajimu UMEMOTO assert(element->type == CET_WRITE_RESPONSE);
21806a99fe3SHajimu UMEMOTO TRACE_OUT(get_cache_write_response);
21906a99fe3SHajimu UMEMOTO return (&element->c_write_response);
22006a99fe3SHajimu UMEMOTO }
22106a99fe3SHajimu UMEMOTO
22206a99fe3SHajimu UMEMOTO void
init_cache_read_request(struct cache_read_request * read_request)22306a99fe3SHajimu UMEMOTO init_cache_read_request(struct cache_read_request *read_request)
22406a99fe3SHajimu UMEMOTO {
22506a99fe3SHajimu UMEMOTO
22606a99fe3SHajimu UMEMOTO TRACE_IN(init_cache_read_request);
22706a99fe3SHajimu UMEMOTO memset(read_request, 0, sizeof(struct cache_read_request));
22806a99fe3SHajimu UMEMOTO TRACE_OUT(init_cache_read_request);
22906a99fe3SHajimu UMEMOTO }
23006a99fe3SHajimu UMEMOTO
23106a99fe3SHajimu UMEMOTO void
finalize_cache_read_request(struct cache_read_request * read_request)23206a99fe3SHajimu UMEMOTO finalize_cache_read_request(struct cache_read_request *read_request)
23306a99fe3SHajimu UMEMOTO {
23406a99fe3SHajimu UMEMOTO
23506a99fe3SHajimu UMEMOTO TRACE_IN(finalize_cache_read_request);
23606a99fe3SHajimu UMEMOTO free(read_request->entry);
23706a99fe3SHajimu UMEMOTO free(read_request->cache_key);
23806a99fe3SHajimu UMEMOTO TRACE_OUT(finalize_cache_read_request);
23906a99fe3SHajimu UMEMOTO }
24006a99fe3SHajimu UMEMOTO
24106a99fe3SHajimu UMEMOTO struct cache_read_request *
get_cache_read_request(struct comm_element * element)24206a99fe3SHajimu UMEMOTO get_cache_read_request(struct comm_element *element)
24306a99fe3SHajimu UMEMOTO {
24406a99fe3SHajimu UMEMOTO
24506a99fe3SHajimu UMEMOTO TRACE_IN(get_cache_read_request);
24606a99fe3SHajimu UMEMOTO assert(element->type == CET_READ_REQUEST);
24706a99fe3SHajimu UMEMOTO TRACE_OUT(get_cache_read_request);
24806a99fe3SHajimu UMEMOTO return (&element->c_read_request);
24906a99fe3SHajimu UMEMOTO }
25006a99fe3SHajimu UMEMOTO
25106a99fe3SHajimu UMEMOTO void
init_cache_read_response(struct cache_read_response * read_response)25206a99fe3SHajimu UMEMOTO init_cache_read_response(struct cache_read_response *read_response)
25306a99fe3SHajimu UMEMOTO {
25406a99fe3SHajimu UMEMOTO
25506a99fe3SHajimu UMEMOTO TRACE_IN(init_cache_read_response);
25606a99fe3SHajimu UMEMOTO memset(read_response, 0, sizeof(struct cache_read_response));
25706a99fe3SHajimu UMEMOTO TRACE_OUT(init_cache_read_response);
25806a99fe3SHajimu UMEMOTO }
25906a99fe3SHajimu UMEMOTO
26006a99fe3SHajimu UMEMOTO void
finalize_cache_read_response(struct cache_read_response * read_response)26106a99fe3SHajimu UMEMOTO finalize_cache_read_response(struct cache_read_response *read_response)
26206a99fe3SHajimu UMEMOTO {
26306a99fe3SHajimu UMEMOTO
26406a99fe3SHajimu UMEMOTO TRACE_IN(finalize_cache_read_response);
26506a99fe3SHajimu UMEMOTO free(read_response->data);
26606a99fe3SHajimu UMEMOTO TRACE_OUT(finalize_cache_read_response);
26706a99fe3SHajimu UMEMOTO }
26806a99fe3SHajimu UMEMOTO
26906a99fe3SHajimu UMEMOTO struct cache_read_response *
get_cache_read_response(struct comm_element * element)27006a99fe3SHajimu UMEMOTO get_cache_read_response(struct comm_element *element)
27106a99fe3SHajimu UMEMOTO {
27206a99fe3SHajimu UMEMOTO
27306a99fe3SHajimu UMEMOTO TRACE_IN(get_cache_read_response);
27406a99fe3SHajimu UMEMOTO assert(element->type == CET_READ_RESPONSE);
27506a99fe3SHajimu UMEMOTO TRACE_OUT(get_cache_read_response);
27606a99fe3SHajimu UMEMOTO return (&element->c_read_response);
27706a99fe3SHajimu UMEMOTO }
27806a99fe3SHajimu UMEMOTO
27906a99fe3SHajimu UMEMOTO void
init_cache_transform_request(struct cache_transform_request * transform_request)28006a99fe3SHajimu UMEMOTO init_cache_transform_request(struct cache_transform_request *transform_request)
28106a99fe3SHajimu UMEMOTO {
28206a99fe3SHajimu UMEMOTO
28306a99fe3SHajimu UMEMOTO TRACE_IN(init_cache_transform_request);
28406a99fe3SHajimu UMEMOTO memset(transform_request, 0, sizeof(struct cache_transform_request));
28506a99fe3SHajimu UMEMOTO TRACE_OUT(init_cache_transform_request);
28606a99fe3SHajimu UMEMOTO }
28706a99fe3SHajimu UMEMOTO
28806a99fe3SHajimu UMEMOTO void
finalize_cache_transform_request(struct cache_transform_request * transform_request)28906a99fe3SHajimu UMEMOTO finalize_cache_transform_request(
29006a99fe3SHajimu UMEMOTO struct cache_transform_request *transform_request)
29106a99fe3SHajimu UMEMOTO {
29206a99fe3SHajimu UMEMOTO
29306a99fe3SHajimu UMEMOTO TRACE_IN(finalize_cache_transform_request);
29406a99fe3SHajimu UMEMOTO free(transform_request->entry);
29506a99fe3SHajimu UMEMOTO TRACE_OUT(finalize_cache_transform_request);
29606a99fe3SHajimu UMEMOTO }
29706a99fe3SHajimu UMEMOTO
29806a99fe3SHajimu UMEMOTO struct cache_transform_request *
get_cache_transform_request(struct comm_element * element)29906a99fe3SHajimu UMEMOTO get_cache_transform_request(struct comm_element *element)
30006a99fe3SHajimu UMEMOTO {
30106a99fe3SHajimu UMEMOTO
30206a99fe3SHajimu UMEMOTO TRACE_IN(get_cache_transform_request);
30306a99fe3SHajimu UMEMOTO assert(element->type == CET_TRANSFORM_REQUEST);
30406a99fe3SHajimu UMEMOTO TRACE_OUT(get_cache_transform_request);
30506a99fe3SHajimu UMEMOTO return (&element->c_transform_request);
30606a99fe3SHajimu UMEMOTO }
30706a99fe3SHajimu UMEMOTO
30806a99fe3SHajimu UMEMOTO void
init_cache_transform_response(struct cache_transform_response * transform_response)30906a99fe3SHajimu UMEMOTO init_cache_transform_response(
31006a99fe3SHajimu UMEMOTO struct cache_transform_response *transform_response)
31106a99fe3SHajimu UMEMOTO {
31206a99fe3SHajimu UMEMOTO
31306a99fe3SHajimu UMEMOTO TRACE_IN(init_cache_transform_request);
31406a99fe3SHajimu UMEMOTO memset(transform_response, 0, sizeof(struct cache_transform_response));
31506a99fe3SHajimu UMEMOTO TRACE_OUT(init_cache_transform_request);
31606a99fe3SHajimu UMEMOTO }
31706a99fe3SHajimu UMEMOTO
31806a99fe3SHajimu UMEMOTO void
finalize_cache_transform_response(struct cache_transform_response * transform_response)31906a99fe3SHajimu UMEMOTO finalize_cache_transform_response(
32006a99fe3SHajimu UMEMOTO struct cache_transform_response *transform_response)
32106a99fe3SHajimu UMEMOTO {
32206a99fe3SHajimu UMEMOTO
32306a99fe3SHajimu UMEMOTO TRACE_IN(finalize_cache_transform_response);
32406a99fe3SHajimu UMEMOTO TRACE_OUT(finalize_cache_transform_response);
32506a99fe3SHajimu UMEMOTO }
32606a99fe3SHajimu UMEMOTO
32706a99fe3SHajimu UMEMOTO struct cache_transform_response *
get_cache_transform_response(struct comm_element * element)32806a99fe3SHajimu UMEMOTO get_cache_transform_response(struct comm_element *element)
32906a99fe3SHajimu UMEMOTO {
33006a99fe3SHajimu UMEMOTO
33106a99fe3SHajimu UMEMOTO TRACE_IN(get_cache_transform_response);
33206a99fe3SHajimu UMEMOTO assert(element->type == CET_TRANSFORM_RESPONSE);
33306a99fe3SHajimu UMEMOTO TRACE_OUT(get_cache_transform_response);
33406a99fe3SHajimu UMEMOTO return (&element->c_transform_response);
33506a99fe3SHajimu UMEMOTO }
33606a99fe3SHajimu UMEMOTO
33706a99fe3SHajimu UMEMOTO
33806a99fe3SHajimu UMEMOTO void
init_cache_mp_write_session_request(struct cache_mp_write_session_request * mp_ws_request)33906a99fe3SHajimu UMEMOTO init_cache_mp_write_session_request(
34006a99fe3SHajimu UMEMOTO struct cache_mp_write_session_request *mp_ws_request)
34106a99fe3SHajimu UMEMOTO {
34206a99fe3SHajimu UMEMOTO
34306a99fe3SHajimu UMEMOTO TRACE_IN(init_cache_mp_write_session_request);
34406a99fe3SHajimu UMEMOTO memset(mp_ws_request, 0,
34506a99fe3SHajimu UMEMOTO sizeof(struct cache_mp_write_session_request));
34606a99fe3SHajimu UMEMOTO TRACE_OUT(init_cache_mp_write_session_request);
34706a99fe3SHajimu UMEMOTO }
34806a99fe3SHajimu UMEMOTO
34906a99fe3SHajimu UMEMOTO void
finalize_cache_mp_write_session_request(struct cache_mp_write_session_request * mp_ws_request)35006a99fe3SHajimu UMEMOTO finalize_cache_mp_write_session_request(
35106a99fe3SHajimu UMEMOTO struct cache_mp_write_session_request *mp_ws_request)
35206a99fe3SHajimu UMEMOTO {
35306a99fe3SHajimu UMEMOTO
35406a99fe3SHajimu UMEMOTO TRACE_IN(finalize_cache_mp_write_session_request);
35506a99fe3SHajimu UMEMOTO free(mp_ws_request->entry);
35606a99fe3SHajimu UMEMOTO TRACE_OUT(finalize_cache_mp_write_session_request);
35706a99fe3SHajimu UMEMOTO }
35806a99fe3SHajimu UMEMOTO
35906a99fe3SHajimu UMEMOTO struct cache_mp_write_session_request *
get_cache_mp_write_session_request(struct comm_element * element)36006a99fe3SHajimu UMEMOTO get_cache_mp_write_session_request(struct comm_element *element)
36106a99fe3SHajimu UMEMOTO {
36206a99fe3SHajimu UMEMOTO
36306a99fe3SHajimu UMEMOTO TRACE_IN(get_cache_mp_write_session_request);
36406a99fe3SHajimu UMEMOTO assert(element->type == CET_MP_WRITE_SESSION_REQUEST);
36506a99fe3SHajimu UMEMOTO TRACE_OUT(get_cache_mp_write_session_request);
36606a99fe3SHajimu UMEMOTO return (&element->c_mp_ws_request);
36706a99fe3SHajimu UMEMOTO }
36806a99fe3SHajimu UMEMOTO
36906a99fe3SHajimu UMEMOTO void
init_cache_mp_write_session_response(struct cache_mp_write_session_response * mp_ws_response)37006a99fe3SHajimu UMEMOTO init_cache_mp_write_session_response(
37106a99fe3SHajimu UMEMOTO struct cache_mp_write_session_response *mp_ws_response)
37206a99fe3SHajimu UMEMOTO {
37306a99fe3SHajimu UMEMOTO
37406a99fe3SHajimu UMEMOTO TRACE_IN(init_cache_mp_write_session_response);
37506a99fe3SHajimu UMEMOTO memset(mp_ws_response, 0,
37606a99fe3SHajimu UMEMOTO sizeof(struct cache_mp_write_session_response));
37706a99fe3SHajimu UMEMOTO TRACE_OUT(init_cache_mp_write_session_response);
37806a99fe3SHajimu UMEMOTO }
37906a99fe3SHajimu UMEMOTO
38006a99fe3SHajimu UMEMOTO void
finalize_cache_mp_write_session_response(struct cache_mp_write_session_response * mp_ws_response)38106a99fe3SHajimu UMEMOTO finalize_cache_mp_write_session_response(
38206a99fe3SHajimu UMEMOTO struct cache_mp_write_session_response *mp_ws_response)
38306a99fe3SHajimu UMEMOTO {
38406a99fe3SHajimu UMEMOTO
38506a99fe3SHajimu UMEMOTO TRACE_IN(finalize_cache_mp_write_session_response);
38606a99fe3SHajimu UMEMOTO TRACE_OUT(finalize_cache_mp_write_session_response);
38706a99fe3SHajimu UMEMOTO }
38806a99fe3SHajimu UMEMOTO
38906a99fe3SHajimu UMEMOTO struct cache_mp_write_session_response *
get_cache_mp_write_session_response(struct comm_element * element)39006a99fe3SHajimu UMEMOTO get_cache_mp_write_session_response(struct comm_element *element)
39106a99fe3SHajimu UMEMOTO {
39206a99fe3SHajimu UMEMOTO
39306a99fe3SHajimu UMEMOTO TRACE_IN(get_cache_mp_write_session_response);
39406a99fe3SHajimu UMEMOTO assert(element->type == CET_MP_WRITE_SESSION_RESPONSE);
39506a99fe3SHajimu UMEMOTO TRACE_OUT(get_cache_mp_write_session_response);
39606a99fe3SHajimu UMEMOTO return (&element->c_mp_ws_response);
39706a99fe3SHajimu UMEMOTO }
39806a99fe3SHajimu UMEMOTO
39906a99fe3SHajimu UMEMOTO void
init_cache_mp_write_session_write_request(struct cache_mp_write_session_write_request * mp_ws_write_request)40006a99fe3SHajimu UMEMOTO init_cache_mp_write_session_write_request(
40106a99fe3SHajimu UMEMOTO struct cache_mp_write_session_write_request *mp_ws_write_request)
40206a99fe3SHajimu UMEMOTO {
40306a99fe3SHajimu UMEMOTO
40406a99fe3SHajimu UMEMOTO TRACE_IN(init_cache_mp_write_session_write_request);
40506a99fe3SHajimu UMEMOTO memset(mp_ws_write_request, 0,
40606a99fe3SHajimu UMEMOTO sizeof(struct cache_mp_write_session_write_request));
40706a99fe3SHajimu UMEMOTO TRACE_OUT(init_cache_mp_write_session_write_response);
40806a99fe3SHajimu UMEMOTO }
40906a99fe3SHajimu UMEMOTO
41006a99fe3SHajimu UMEMOTO void
finalize_cache_mp_write_session_write_request(struct cache_mp_write_session_write_request * mp_ws_write_request)41106a99fe3SHajimu UMEMOTO finalize_cache_mp_write_session_write_request(
41206a99fe3SHajimu UMEMOTO struct cache_mp_write_session_write_request *mp_ws_write_request)
41306a99fe3SHajimu UMEMOTO {
41406a99fe3SHajimu UMEMOTO
41506a99fe3SHajimu UMEMOTO TRACE_IN(finalize_cache_mp_write_session_write_request);
41606a99fe3SHajimu UMEMOTO free(mp_ws_write_request->data);
41706a99fe3SHajimu UMEMOTO TRACE_OUT(finalize_cache_mp_write_session_write_request);
41806a99fe3SHajimu UMEMOTO }
41906a99fe3SHajimu UMEMOTO
42006a99fe3SHajimu UMEMOTO struct cache_mp_write_session_write_request *
get_cache_mp_write_session_write_request(struct comm_element * element)42106a99fe3SHajimu UMEMOTO get_cache_mp_write_session_write_request(struct comm_element *element)
42206a99fe3SHajimu UMEMOTO {
42306a99fe3SHajimu UMEMOTO
42406a99fe3SHajimu UMEMOTO TRACE_IN(get_cache_mp_write_session_write_request);
42506a99fe3SHajimu UMEMOTO assert(element->type == CET_MP_WRITE_SESSION_WRITE_REQUEST);
42606a99fe3SHajimu UMEMOTO TRACE_OUT(get_cache_mp_write_session_write_request);
42706a99fe3SHajimu UMEMOTO return (&element->c_mp_ws_write_request);
42806a99fe3SHajimu UMEMOTO }
42906a99fe3SHajimu UMEMOTO
43006a99fe3SHajimu UMEMOTO void
init_cache_mp_write_session_write_response(struct cache_mp_write_session_write_response * mp_ws_write_response)43106a99fe3SHajimu UMEMOTO init_cache_mp_write_session_write_response(
43206a99fe3SHajimu UMEMOTO struct cache_mp_write_session_write_response *mp_ws_write_response)
43306a99fe3SHajimu UMEMOTO {
43406a99fe3SHajimu UMEMOTO
43506a99fe3SHajimu UMEMOTO TRACE_IN(init_cache_mp_write_session_write_response);
43606a99fe3SHajimu UMEMOTO memset(mp_ws_write_response, 0,
43706a99fe3SHajimu UMEMOTO sizeof(struct cache_mp_write_session_write_response));
43806a99fe3SHajimu UMEMOTO TRACE_OUT(init_cache_mp_write_session_write_response);
43906a99fe3SHajimu UMEMOTO }
44006a99fe3SHajimu UMEMOTO
44106a99fe3SHajimu UMEMOTO void
finalize_cache_mp_write_session_write_response(struct cache_mp_write_session_write_response * mp_ws_write_response)44206a99fe3SHajimu UMEMOTO finalize_cache_mp_write_session_write_response(
44306a99fe3SHajimu UMEMOTO struct cache_mp_write_session_write_response *mp_ws_write_response)
44406a99fe3SHajimu UMEMOTO {
44506a99fe3SHajimu UMEMOTO
44606a99fe3SHajimu UMEMOTO TRACE_IN(finalize_cache_mp_write_session_write_response);
44706a99fe3SHajimu UMEMOTO TRACE_OUT(finalize_cache_mp_write_session_write_response);
44806a99fe3SHajimu UMEMOTO }
44906a99fe3SHajimu UMEMOTO
45006a99fe3SHajimu UMEMOTO struct cache_mp_write_session_write_response *
get_cache_mp_write_session_write_response(struct comm_element * element)45106a99fe3SHajimu UMEMOTO get_cache_mp_write_session_write_response(struct comm_element *element)
45206a99fe3SHajimu UMEMOTO {
45306a99fe3SHajimu UMEMOTO
45406a99fe3SHajimu UMEMOTO TRACE_IN(get_cache_mp_write_session_write_response);
45506a99fe3SHajimu UMEMOTO assert(element->type == CET_MP_WRITE_SESSION_WRITE_RESPONSE);
45606a99fe3SHajimu UMEMOTO TRACE_OUT(get_cache_mp_write_session_write_response);
45706a99fe3SHajimu UMEMOTO return (&element->c_mp_ws_write_response);
45806a99fe3SHajimu UMEMOTO }
45906a99fe3SHajimu UMEMOTO
46006a99fe3SHajimu UMEMOTO void
init_cache_mp_read_session_request(struct cache_mp_read_session_request * mp_rs_request)46106a99fe3SHajimu UMEMOTO init_cache_mp_read_session_request(
46206a99fe3SHajimu UMEMOTO struct cache_mp_read_session_request *mp_rs_request)
46306a99fe3SHajimu UMEMOTO {
46406a99fe3SHajimu UMEMOTO
46506a99fe3SHajimu UMEMOTO TRACE_IN(init_cache_mp_read_session_request);
46606a99fe3SHajimu UMEMOTO memset(mp_rs_request, 0, sizeof(struct cache_mp_read_session_request));
46706a99fe3SHajimu UMEMOTO TRACE_OUT(init_cache_mp_read_session_request);
46806a99fe3SHajimu UMEMOTO }
46906a99fe3SHajimu UMEMOTO
47006a99fe3SHajimu UMEMOTO void
finalize_cache_mp_read_session_request(struct cache_mp_read_session_request * mp_rs_request)47106a99fe3SHajimu UMEMOTO finalize_cache_mp_read_session_request(
47206a99fe3SHajimu UMEMOTO struct cache_mp_read_session_request *mp_rs_request)
47306a99fe3SHajimu UMEMOTO {
47406a99fe3SHajimu UMEMOTO
47506a99fe3SHajimu UMEMOTO TRACE_IN(finalize_cache_mp_read_session_request);
47606a99fe3SHajimu UMEMOTO free(mp_rs_request->entry);
47706a99fe3SHajimu UMEMOTO TRACE_OUT(finalize_cache_mp_read_session_request);
47806a99fe3SHajimu UMEMOTO }
47906a99fe3SHajimu UMEMOTO
48006a99fe3SHajimu UMEMOTO struct cache_mp_read_session_request *
get_cache_mp_read_session_request(struct comm_element * element)48106a99fe3SHajimu UMEMOTO get_cache_mp_read_session_request(struct comm_element *element)
48206a99fe3SHajimu UMEMOTO {
48306a99fe3SHajimu UMEMOTO
48406a99fe3SHajimu UMEMOTO TRACE_IN(get_cache_mp_read_session_request);
48506a99fe3SHajimu UMEMOTO assert(element->type == CET_MP_READ_SESSION_REQUEST);
48606a99fe3SHajimu UMEMOTO TRACE_OUT(get_cache_mp_read_session_request);
48706a99fe3SHajimu UMEMOTO return (&element->c_mp_rs_request);
48806a99fe3SHajimu UMEMOTO }
48906a99fe3SHajimu UMEMOTO
49006a99fe3SHajimu UMEMOTO void
init_cache_mp_read_session_response(struct cache_mp_read_session_response * mp_rs_response)49106a99fe3SHajimu UMEMOTO init_cache_mp_read_session_response(
49206a99fe3SHajimu UMEMOTO struct cache_mp_read_session_response *mp_rs_response)
49306a99fe3SHajimu UMEMOTO {
49406a99fe3SHajimu UMEMOTO
49506a99fe3SHajimu UMEMOTO TRACE_IN(init_cache_mp_read_session_response);
49606a99fe3SHajimu UMEMOTO memset(mp_rs_response, 0,
49706a99fe3SHajimu UMEMOTO sizeof(struct cache_mp_read_session_response));
49806a99fe3SHajimu UMEMOTO TRACE_OUT(init_cache_mp_read_session_response);
49906a99fe3SHajimu UMEMOTO }
50006a99fe3SHajimu UMEMOTO
50106a99fe3SHajimu UMEMOTO void
finalize_cache_mp_read_session_response(struct cache_mp_read_session_response * mp_rs_response)50206a99fe3SHajimu UMEMOTO finalize_cache_mp_read_session_response(
50306a99fe3SHajimu UMEMOTO struct cache_mp_read_session_response *mp_rs_response)
50406a99fe3SHajimu UMEMOTO {
50506a99fe3SHajimu UMEMOTO
50606a99fe3SHajimu UMEMOTO TRACE_IN(finalize_cache_mp_read_session_response);
50706a99fe3SHajimu UMEMOTO TRACE_OUT(finalize_cache_mp_read_session_response);
50806a99fe3SHajimu UMEMOTO }
50906a99fe3SHajimu UMEMOTO
51006a99fe3SHajimu UMEMOTO struct cache_mp_read_session_response *
get_cache_mp_read_session_response(struct comm_element * element)51106a99fe3SHajimu UMEMOTO get_cache_mp_read_session_response(struct comm_element *element)
51206a99fe3SHajimu UMEMOTO {
51306a99fe3SHajimu UMEMOTO
51406a99fe3SHajimu UMEMOTO TRACE_IN(get_cache_mp_read_session_response);
51506a99fe3SHajimu UMEMOTO assert(element->type == CET_MP_READ_SESSION_RESPONSE);
51606a99fe3SHajimu UMEMOTO TRACE_OUT(get_cache_mp_read_session_response);
51706a99fe3SHajimu UMEMOTO return (&element->c_mp_rs_response);
51806a99fe3SHajimu UMEMOTO }
51906a99fe3SHajimu UMEMOTO
52006a99fe3SHajimu UMEMOTO void
init_cache_mp_read_session_read_response(struct cache_mp_read_session_read_response * mp_ws_read_response)52106a99fe3SHajimu UMEMOTO init_cache_mp_read_session_read_response(
52206a99fe3SHajimu UMEMOTO struct cache_mp_read_session_read_response *mp_ws_read_response)
52306a99fe3SHajimu UMEMOTO {
52406a99fe3SHajimu UMEMOTO
52506a99fe3SHajimu UMEMOTO TRACE_IN(init_cache_mp_read_session_read_response);
52606a99fe3SHajimu UMEMOTO memset(mp_ws_read_response, 0,
52706a99fe3SHajimu UMEMOTO sizeof(struct cache_mp_read_session_read_response));
52806a99fe3SHajimu UMEMOTO TRACE_OUT(init_cache_mp_read_session_read_response);
52906a99fe3SHajimu UMEMOTO }
53006a99fe3SHajimu UMEMOTO
53106a99fe3SHajimu UMEMOTO void
finalize_cache_mp_read_session_read_response(struct cache_mp_read_session_read_response * mp_rs_read_response)53206a99fe3SHajimu UMEMOTO finalize_cache_mp_read_session_read_response(
53306a99fe3SHajimu UMEMOTO struct cache_mp_read_session_read_response *mp_rs_read_response)
53406a99fe3SHajimu UMEMOTO {
53506a99fe3SHajimu UMEMOTO
53606a99fe3SHajimu UMEMOTO TRACE_IN(finalize_cache_mp_read_session_read_response);
53706a99fe3SHajimu UMEMOTO free(mp_rs_read_response->data);
53806a99fe3SHajimu UMEMOTO TRACE_OUT(finalize_cache_mp_read_session_read_response);
53906a99fe3SHajimu UMEMOTO }
54006a99fe3SHajimu UMEMOTO
54106a99fe3SHajimu UMEMOTO struct cache_mp_read_session_read_response *
get_cache_mp_read_session_read_response(struct comm_element * element)54206a99fe3SHajimu UMEMOTO get_cache_mp_read_session_read_response(struct comm_element *element)
54306a99fe3SHajimu UMEMOTO {
54406a99fe3SHajimu UMEMOTO
54506a99fe3SHajimu UMEMOTO TRACE_IN(get_cache_mp_read_session_read_response);
54606a99fe3SHajimu UMEMOTO assert(element->type == CET_MP_READ_SESSION_READ_RESPONSE);
54706a99fe3SHajimu UMEMOTO TRACE_OUT(get_cache_mp_read_session_read_response);
54806a99fe3SHajimu UMEMOTO return (&element->c_mp_rs_read_response);
54906a99fe3SHajimu UMEMOTO }
550