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