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