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