Files
openairinterface5g/openair2/RRC/CELLULAR/rrc_util_config.c
T
2013-06-25 09:05:02 +00:00

470 lines
21 KiB
C
Executable File

/***************************************************************************
rrc_util_config.c -
-------------------
copyright : (C) 2002, 2010 by Eurecom
created by : michelle.wetterwald@eurecom.fr
raymond.knopp@eurecom.fr
lionel.gauthier@eurecom.fr
**************************************************************************
Utilitiesfor config compression ...
WARNING 08/07/2010 : NOT Compiled yet - rrc_xx_dummies.c is used instead
***************************************************************************/
/********************
//OpenAir definitions
********************/
#include "LAYER2/MAC/extern.h"
#include "UTIL/MEM/mem_block.h"
/********************
// RRC definitions
********************/
#include "rrc_ue_vars.h"
#include "rrc_nas_sap.h"
#include "rrc_msg_constant.h"
//-----------------------------------------------------------------------------
#include "rrc_proto_int.h"
//-----------------------------------------------------------------------------
// WARNING 08/07/2010 : NOT Compiled yet - rrc_xx_dummies.c is used instead
void rrc_compress_config (MT_CONFIG * config, char *dest_buffer, int *dest_length){
//-----------------------------------------------------------------------------
int i, j, k, el;
char *outbuf = dest_buffer;
#ifdef DEBUG_LOAD_CONFIG
msg ("[RRC][CONFIG][COMPRESS] config size = %d -> %p\n", sizeof (MT_CONFIG), dest_buffer);
#endif
*outbuf++ = config->nb_commands;
memcpy (outbuf, &config->rrm_commands[0], config->nb_commands * sizeof (RRM_COMMAND_MT));
outbuf += config->nb_commands * sizeof (RRM_COMMAND_MT);
for (i = 0; i < JRRM_MAX_COMMANDS_PER_TRANSACTION; i++) {
el = config->rrm_commands[i].rrm_element_index;
switch (config->rrm_commands[i].rrm_action) {
case ACTION_ADD:
case ACTION_MODIFY:
#ifdef DEBUG_LOAD_CONFIG
msg ("[RRC][CONFIG][COMPRESS] Command %d : action %d element %d index %d\n", i, config->rrm_commands[i].rrm_action, config->rrm_commands[i].rrm_element, el);
#endif
switch (config->rrm_commands[i].rrm_element) {
//-------------------------------------------
case SIGNALLING_RADIO_BEARER:
case RADIO_ACCESS_BEARER:
//-------------------------------------------
#ifdef DEBUG_LOAD_CONFIG
msg ("[RRC][CONFIG][COMPRESS] RB (%d)\n", (int) outbuf - (int) dest_buffer);
#endif
memcpy (outbuf, (void *) &config->bearer_dl[el], sizeof (RADIOBEARER));
outbuf += sizeof (RADIOBEARER);
memcpy (outbuf, (void *) &config->bearer_ul[el], sizeof (RADIOBEARER));
outbuf += sizeof (RADIOBEARER);
break;
//-------------------------------------------
case TRCH_UL:
//-------------------------------------------
#ifdef DEBUG_LOAD_CONFIG
msg ("[RRC][CONFIG][COMPRESS] TRCH_UL (%d)\n", (int) outbuf - (int) dest_buffer);
#endif
memcpy ((void *) outbuf, (void *) &config->trch_ul[el].peer_id, sizeof (u8));
outbuf += sizeof (u8);
memcpy ((void *) outbuf, (void *) &config->trch_ul[el].type, sizeof (u8));
outbuf += sizeof (u8);
#ifdef DEBUG_LOAD_CONFIG
msg ("[RRC][CONFIG][COMPRESS] TRCH_TYPE = %d (%d)\n", config->trch_ul[el].type, (int) outbuf - (int) dest_buffer);
#endif
*outbuf++ = config->trch_ul[el].cctrch;
#ifdef DEBUG_LOAD_CONFIG
msg ("[RRC][CONFIG][COMPRESS] TRCH_CCTRCH = %d (%d)\n", config->trch_ul[el].cctrch, (int) outbuf - (int) dest_buffer);
#endif
*outbuf++ = config->trch_ul[el].tti;
#ifdef DEBUG_LOAD_CONFIG
msg ("[RRC][CONFIG][COMPRESS] TRCH_TTI = %d (%d)\n", config->trch_ul[el].tti, (int) outbuf - (int) dest_buffer);
#endif
*outbuf++ = config->trch_ul[el].code;
#ifdef DEBUG_LOAD_CONFIG
msg ("[RRC][CONFIG][COMPRESS] TRCH_CODE = %d (%d)\n", config->trch_ul[el].code, (int) outbuf - (int) dest_buffer);
#endif
memcpy ((void *) outbuf, (void *) &config->trch_ul[el].num_tf, sizeof (u8));
outbuf += sizeof (u8);
#ifdef DEBUG_LOAD_CONFIG
msg ("[RRC][CONFIG][COMPRESS] TRCH_NUM_TF = %d (%d)\n", config->trch_ul[el].num_tf, (int) outbuf - (int) dest_buffer);
#endif
memcpy (outbuf, (void *) &config->trch_ul[el].tf, config->trch_ul[el].num_tf * sizeof (TF));
outbuf += config->trch_ul[el].num_tf * sizeof (TF);
break;
//-------------------------------------------
case TRCH_DL:
//-------------------------------------------
#ifdef DEBUG_LOAD_CONFIG
msg ("[RRC][CONFIG][COMPRESS] TRCH_DL (%d)\n", (int) outbuf - (int) dest_buffer);
#endif
memcpy (outbuf, (void *) &config->trch_dl[el].peer_id, sizeof (u8));
outbuf += sizeof (u8);
memcpy (outbuf, (void *) &config->trch_dl[el].type, sizeof (u8));
outbuf += sizeof (u8);
#ifdef DEBUG_LOAD_CONFIG
msg ("[RRC][CONFIG][COMPRESS] TRCH_TYPE = %d (%d)\n", config->trch_dl[el].type, (int) outbuf - (int) dest_buffer);
#endif
*outbuf++ = config->trch_dl[el].cctrch;
#ifdef DEBUG_LOAD_CONFIG
msg ("[RRC][CONFIG][COMPRESS] TRCH_CCTRCH = %d (%d)\n", config->trch_dl[el].cctrch, (int) outbuf - (int) dest_buffer);
#endif
*outbuf++ = config->trch_dl[el].tti;
#ifdef DEBUG_LOAD_CONFIG
msg ("[RRC][CONFIG][COMPRESS] TRCH_TTI = %d (%d)\n", config->trch_dl[el].tti, (int) outbuf - (int) dest_buffer);
#endif
*outbuf++ = config->trch_dl[el].code;
#ifdef DEBUG_LOAD_CONFIG
msg ("[RRC][CONFIG][COMPRESS] TRCH_CODE = %d (%d)\n", config->trch_dl[el].code, (int) outbuf - (int) dest_buffer);
#endif
memcpy (outbuf, (void *) &config->trch_dl[el].num_tf, sizeof (u8));
outbuf += sizeof (u8);
#ifdef DEBUG_LOAD_CONFIG
msg ("[RRC][CONFIG][COMPRESS] TRCH_NUM_TF = %d (%d)\n", config->trch_dl[el].num_tf, (int) outbuf - (int) dest_buffer);
#endif
memcpy (outbuf, (void *) &config->trch_dl[el].tf, config->trch_dl[el].num_tf * sizeof (TF));
outbuf += config->trch_dl[el].num_tf * sizeof (TF);
break;
//-------------------------------------------
case CCTRCH_UL:
//-------------------------------------------
#ifdef DEBUG_LOAD_CONFIG
msg ("[RRC][CONFIG][COMPRESS] CCTRCH_UL (%d,%d)\n", (int) outbuf - (int) dest_buffer, (int) &config->cctrch_ul[el] - (int) config);
#endif
#ifdef DEBUG_LOAD_CONFIG
msg ("[RRC][CONFIG][COMPRESS] num tfc %d\n", config->cctrch_ul[el].tfcs.num_tfc);
#endif
memcpy (outbuf, (void *) &config->cctrch_ul[el].tfcs.num_tfc, sizeof (u8));
outbuf += sizeof (u8);
#ifdef DEBUG_LOAD_CONFIG
msg ("[RRC][CONFIG][COMPRESS] num trch %d\n", config->cctrch_ul[el].num_trch);
#endif
memcpy (outbuf, (void *) &config->cctrch_ul[el].num_trch, sizeof (u8));
outbuf += sizeof (u8);
for (j = 0; j < config->cctrch_ul[el].tfcs.num_tfc; j++)
for (k = 0; k < config->cctrch_ul[el].num_trch; k++) {
#ifdef DEBUG_LOAD_CONFIG
msg ("[RRC][CONFIG][COMPRESS] tfc %d %d\n", j, k);
#endif
*outbuf++ = config->cctrch_ul[el].tfcs.tfc[j][k];
}
memcpy (outbuf, (void *) &config->cctrch_ul[el].trch_id, config->cctrch_ul[el].num_trch);
outbuf += config->cctrch_ul[el].num_trch;
*outbuf++ = config->cctrch_ul[el].type;
*outbuf++ = config->cctrch_ul[el].pl;
*outbuf++ = config->cctrch_ul[el].num_tfci_bits;
*outbuf++ = config->cctrch_ul[el].tti;
*outbuf++ = config->cctrch_ul[el].num_pch;
memcpy (outbuf, (void *) &config->cctrch_ul[el].pch[0], sizeof (PCH) * config->cctrch_ul[el].num_pch);
outbuf += sizeof (PCH) * config->cctrch_ul[el].num_pch;
*outbuf++ = config->cctrch_ul[el].DSP_FLAG;
memcpy (outbuf, (void *) &config->cctrch_ul[el].gain_adjust, sizeof (u16));
outbuf += sizeof (u16);
*outbuf++ = config->cctrch_ul[el].sec_interl;
break;
//-------------------------------------------
case CCTRCH_DL:
//-------------------------------------------
msg ("[RRC][CONFIG][COMPRESS] CCTRCH_DL (%d,%d)\n", (int) outbuf - (int) dest_buffer, (int) &config->cctrch_dl[el] - (int) config);
#ifdef DEBUG_LOAD_CONFIG
msg ("[RRC][CONFIG][COMPRESS] num tfc %d\n", config->cctrch_dl[el].tfcs.num_tfc);
#endif
memcpy (outbuf, (void *) &config->cctrch_dl[el].tfcs.num_tfc, sizeof (u8));
outbuf += sizeof (u8);
#ifdef DEBUG_LOAD_CONFIG
msg ("[RRC][CONFIG][COMPRESS] num trch %d\n", config->cctrch_dl[el].num_trch);
#endif
memcpy (outbuf, (void *) &config->cctrch_dl[el].num_trch, sizeof (u8));
outbuf += sizeof (u8);
for (j = 0; j < config->cctrch_dl[el].tfcs.num_tfc; j++)
for (k = 0; k < config->cctrch_dl[el].num_trch; k++) {
msg ("[RRC][CONFIG][COMPRESS] tfc %d %d\n", j, k);
*outbuf++ = config->cctrch_dl[el].tfcs.tfc[j][k];
}
memcpy (outbuf, (void *) &config->cctrch_dl[el].trch_id, config->cctrch_dl[el].num_trch);
outbuf += config->cctrch_dl[el].num_trch;
*outbuf++ = config->cctrch_dl[el].type;
*outbuf++ = config->cctrch_dl[el].pl;
*outbuf++ = config->cctrch_dl[el].num_tfci_bits;
*outbuf++ = config->cctrch_dl[el].tti;
*outbuf++ = config->cctrch_dl[el].num_pch;
memcpy (outbuf, (void *) &config->cctrch_dl[el].pch[0], sizeof (PCH) * config->cctrch_dl[el].num_pch);
outbuf += sizeof (PCH) * config->cctrch_dl[el].num_pch;
*outbuf++ = config->cctrch_dl[el].DSP_FLAG;
memcpy (outbuf, (void *) &config->cctrch_dl[el].gain_adjust, sizeof (u16));
outbuf += sizeof (u16);
*outbuf++ = config->cctrch_dl[el].sec_interl;
break;
}
break;
//-------------------------------------------
default:
//-------------------------------------------
break;
}
}
*dest_length = (int) outbuf - (int) dest_buffer;
msg ("[RRC][CONFIG][COMPRESS] : Compressed config length = %d end @ %p\n", *dest_length, outbuf);
}
//-----------------------------------------------------------------------------
// WARNING 08/07/2010 : NOT Compiled yet - rrc_xx_dummies.c is used instead
void rrc_uncompress_config (MT_CONFIG * config, char *source_buffer){
//-----------------------------------------------------------------------------
int i, j, k, el;
char *inbuf = source_buffer;
config->nb_commands = *inbuf++;
#ifdef DEBUG_LOAD_CONFIG
msg ("[RRC][CONFIG][EXPAND] config %p\n", source_buffer);
msg ("[RRC][CONFIG][EXPAND] RRM_COMMAND_MT = 1\n TRCH_DL = %d \n TRCH_UL = %d\n CCTRCH_DL = %d\n CCTRCH_UL = %d\n RADIOBEARER_DL = %d\n RADIOBEARER_UL = %d\n L3= %d\n\n",
1 + JRRM_MAX_COMMANDS_PER_TRANSACTION * sizeof (RRM_COMMAND_MT),
1 + JRRM_MAX_COMMANDS_PER_TRANSACTION * sizeof (RRM_COMMAND_MT) + JRRM_MAX_TRCH_MOBILE * sizeof (TRCH),
1 + JRRM_MAX_COMMANDS_PER_TRANSACTION * sizeof (RRM_COMMAND_MT) + 2 * JRRM_MAX_TRCH_MOBILE * sizeof (TRCH),
1 + JRRM_MAX_COMMANDS_PER_TRANSACTION * sizeof (RRM_COMMAND_MT) + 2 * JRRM_MAX_TRCH_MOBILE * sizeof (TRCH) + JRRM_MAX_CCTRCH_MOBILE * sizeof (CCTRCH),
1 + JRRM_MAX_COMMANDS_PER_TRANSACTION * sizeof (RRM_COMMAND_MT) + 2 * JRRM_MAX_TRCH_MOBILE * sizeof (TRCH) + 2 * JRRM_MAX_CCTRCH_MOBILE * sizeof (CCTRCH),
1 + JRRM_MAX_COMMANDS_PER_TRANSACTION * sizeof (RRM_COMMAND_MT) + 2 * JRRM_MAX_TRCH_MOBILE * sizeof (TRCH) + 2 * JRRM_MAX_CCTRCH_MOBILE * sizeof (CCTRCH) +
JRRM_MAX_RB_MOBILE * sizeof (RADIOBEARER),
1 + JRRM_MAX_COMMANDS_PER_TRANSACTION * sizeof (RRM_COMMAND_MT) + 2 * JRRM_MAX_TRCH_MOBILE * sizeof (TRCH) + 2 * JRRM_MAX_CCTRCH_MOBILE * sizeof (CCTRCH) +
2 * JRRM_MAX_RB_MOBILE * sizeof (RADIOBEARER));
msg ("[RRC][CONFIG][EXPAND] nb_commands = %d\n", config->nb_commands);
#endif
memcpy ((void *) &config->rrm_commands[0], inbuf, config->nb_commands * sizeof (RRM_COMMAND_MT));
inbuf += config->nb_commands * sizeof (RRM_COMMAND_MT);
for (i = 0; i < JRRM_MAX_COMMANDS_PER_TRANSACTION; i++) {
el = config->rrm_commands[i].rrm_element_index;
switch (config->rrm_commands[i].rrm_action) {
case ACTION_ADD:
case ACTION_MODIFY:
#ifdef DEBUG_LOAD_CONFIG
msg ("[RRC][CONFIG][EXPAND] Command %d : action %d element %d index %d\n", i, config->rrm_commands[i].rrm_action, config->rrm_commands[i].rrm_element, el);
#endif
switch (config->rrm_commands[i].rrm_element) {
//-------------------------------------------
case SIGNALLING_RADIO_BEARER:
case RADIO_ACCESS_BEARER:
//-------------------------------------------
#ifdef DEBUG_LOAD_CONFIG
msg ("[RRC][CONFIG][EXPAND] RB %d (%d)\n", el, (int) inbuf - (int) source_buffer);
#endif
memcpy ((void *) &config->bearer_dl[el], inbuf, sizeof (RADIOBEARER));
inbuf += sizeof (RADIOBEARER);
memcpy ((void *) &config->bearer_ul[el], inbuf, sizeof (RADIOBEARER));
inbuf += sizeof (RADIOBEARER);
break;
//-------------------------------------------
case TRCH_UL:
//-------------------------------------------
#ifdef DEBUG_LOAD_CONFIG
msg ("[RRC][CONFIG][EXPAND] TRCH_UL %d (%d)\n", el, (int) inbuf - (int) source_buffer);
#endif
memcpy ((void *) &config->trch_ul[el].peer_id, inbuf, sizeof (u8));
inbuf += sizeof (u8);
memcpy ((void *) &config->trch_ul[el].type, inbuf, sizeof (u8));
inbuf += sizeof (u8);
#ifdef DEBUG_LOAD_CONFIG
msg ("[RRC][CONFIG][EXPAND] TRCH_TYPE = %d (%d)\n", config->trch_ul[el].type, (int) inbuf - (int) source_buffer);
#endif
config->trch_ul[el].cctrch = *inbuf++;
#ifdef DEBUG_LOAD_CONFIG
msg ("[RRC][CONFIG][EXPAND] TRCH_CCTRCH = %d (%d)\n", config->trch_ul[el].cctrch, (int) inbuf - (int) source_buffer);
#endif
config->trch_ul[el].tti = *inbuf++;
#ifdef DEBUG_LOAD_CONFIG
msg ("[RRC][CONFIG][EXPAND] TRCH_TTI = %d (%d)\n", config->trch_ul[el].tti, (int) inbuf - (int) source_buffer);
#endif
config->trch_ul[el].code = *inbuf++;
#ifdef DEBUG_LOAD_CONFIG
msg ("[RRC][CONFIG][EXPAND] TRCH_CODE = %d (%d)\n", config->trch_ul[el].code, (int) inbuf - (int) source_buffer);
#endif
memcpy ((void *) &config->trch_ul[el].num_tf, inbuf, sizeof (u8));
inbuf += sizeof (u8);
#ifdef DEBUG_LOAD_CONFIG
msg ("[RRC][CONFIG][EXPAND] TRCH_NUM_TF = %d (%d)\n", config->trch_ul[el].num_tf, (int) inbuf - (int) source_buffer);
#endif
memcpy ((void *) &config->trch_ul[el].tf, inbuf, config->trch_ul[el].num_tf * sizeof (TF));
inbuf += config->trch_ul[el].num_tf * sizeof (TF);
break;
//-------------------------------------------
case TRCH_DL:
//-------------------------------------------
msg ("[RRC][CONFIG][EXPAND] TRCH_DL %d (%d)\n", el, (int) inbuf - (int) source_buffer);
memcpy ((void *) &config->trch_dl[el].peer_id, inbuf, sizeof (u8));
inbuf += sizeof (u8);
memcpy ((void *) &config->trch_dl[el].type, inbuf, sizeof (u8));
inbuf += sizeof (u8);
#ifdef DEBUG_LOAD_CONFIG
msg ("[RRC][CONFIG][EXPAND] TRCH_TYPE = %d (%d)\n", config->trch_dl[el].type, (int) inbuf - (int) source_buffer);
#endif
config->trch_dl[el].cctrch = *inbuf++;
#ifdef DEBUG_LOAD_CONFIG
msg ("[RRC][CONFIG][EXPAND] TRCH_CCTRCH = %d (%d)\n", config->trch_dl[el].cctrch, (int) inbuf - (int) source_buffer);
#endif
config->trch_dl[el].tti = *inbuf++;
#ifdef DEBUG_LOAD_CONFIG
msg ("[RRC][CONFIG][EXPAND] TRCH_TTI = %d (%d)\n", config->trch_dl[el].tti, (int) inbuf - (int) source_buffer);
#endif
config->trch_dl[el].code = *inbuf++;
#ifdef DEBUG_LOAD_CONFIG
msg ("[RRC][CONFIG][EXPAND] TRCH_CODE = %d (%d)\n", config->trch_dl[el].code, (int) inbuf - (int) source_buffer);
#endif
memcpy ((void *) &config->trch_dl[el].num_tf, inbuf, sizeof (u8));
inbuf += sizeof (u8);
#ifdef DEBUG_LOAD_CONFIG
msg ("[RRC][CONFIG][EXPAND] TRCH_NUM_TF = %d (%d)\n", config->trch_dl[el].num_tf, (int) inbuf - (int) source_buffer);
#endif
memcpy ((void *) &config->trch_dl[el].tf, inbuf, config->trch_dl[el].num_tf * sizeof (TF));
inbuf += config->trch_dl[el].num_tf * sizeof (TF);
break;
//-------------------------------------------
case CCTRCH_UL:
//-------------------------------------------
#ifdef DEBUG_LOAD_CONFIG
msg ("[RRC][CONFIG][EXPAND] CCTRCH_UL %d (%d)\n", el, (int) inbuf - (int) source_buffer);
#endif
memcpy ((void *) &config->cctrch_ul[el].tfcs.num_tfc, inbuf, sizeof (u8));
inbuf += sizeof (u8);
#ifdef DEBUG_LOAD_CONFIG
msg ("[RRC][CONFIG][EXPAND] NumTFC = %d\n", config->cctrch_ul[el].tfcs.num_tfc);
#endif
memcpy ((void *) &config->cctrch_ul[el].num_trch, inbuf, sizeof (u8));
inbuf += sizeof (u8);
#ifdef DEBUG_LOAD_CONFIG
msg ("[RRC][CONFIG][EXPAND] NumTrCh = %d\n", config->cctrch_ul[el].num_trch);
#endif
for (j = 0; j < config->cctrch_ul[el].tfcs.num_tfc; j++)
for (k = 0; k < config->cctrch_ul[el].num_trch; k++) {
#ifdef DEBUG_LOAD_CONFIG
msg ("[RRC][CONFIG][EXPAND] tfc %d %d\n", j, k);
#endif
config->cctrch_ul[el].tfcs.tfc[j][k] = *inbuf++;
}
memcpy ((void *) &config->cctrch_ul[el].trch_id, inbuf, config->cctrch_ul[el].num_trch);
inbuf += config->cctrch_ul[el].num_trch;
config->cctrch_ul[el].type = *inbuf++;
config->cctrch_ul[el].pl = *inbuf++;
config->cctrch_ul[el].num_tfci_bits = *inbuf++;
config->cctrch_ul[el].tti = *inbuf++;
config->cctrch_ul[el].num_pch = *inbuf++;
memcpy ((void *) &config->cctrch_ul[el].pch, inbuf, config->cctrch_ul[el].num_pch * sizeof (PCH));
inbuf += config->cctrch_ul[el].num_pch * sizeof (PCH);
config->cctrch_ul[el].DSP_FLAG = *inbuf++;
memcpy ((void *) &config->cctrch_ul[el].gain_adjust, inbuf, sizeof (u16));
inbuf += sizeof (u16);
config->cctrch_ul[el].sec_interl = *inbuf++;
break;
//-------------------------------------------
case CCTRCH_DL:
//-------------------------------------------
#ifdef DEBUG_LOAD_CONFIG
msg ("[RRC][CONFIG][EXPAND] CCTRCH_DL %d (%d)\n", el, (int) inbuf - (int) source_buffer);
#endif
memcpy ((void *) &config->cctrch_dl[el].tfcs.num_tfc, inbuf, sizeof (u8));
inbuf += sizeof (u8);
memcpy ((void *) &config->cctrch_dl[el].num_trch, inbuf, sizeof (u8));
inbuf += sizeof (u8);
#ifdef DEBUG_LOAD_CONFIG
msg ("[RRC][CONFIG][EXPAND] NumTrCh = %d\n", config->cctrch_dl[el].num_trch);
#endif
for (j = 0; j < config->cctrch_dl[el].tfcs.num_tfc; j++)
for (k = 0; k < config->cctrch_dl[el].num_trch; k++) {
#ifdef DEBUG_LOAD_CONFIG
msg ("[RRC][CONFIG][EXPAND] tfc %d %d\n", j, k);
#endif
config->cctrch_dl[el].tfcs.tfc[j][k] = *inbuf++;
}
memcpy ((void *) &config->cctrch_dl[el].trch_id, inbuf, config->cctrch_dl[el].num_trch);
inbuf += config->cctrch_dl[el].num_trch;
config->cctrch_dl[el].type = *inbuf++;
config->cctrch_dl[el].pl = *inbuf++;
config->cctrch_dl[el].num_tfci_bits = *inbuf++;
config->cctrch_dl[el].tti = *inbuf++;
config->cctrch_dl[el].num_pch = *inbuf++;
memcpy ((void *) &config->cctrch_dl[el].pch, inbuf, config->cctrch_dl[el].num_pch * sizeof (PCH));
inbuf += config->cctrch_dl[el].num_pch * sizeof (PCH);
config->cctrch_dl[el].DSP_FLAG = *inbuf++;
memcpy ((void *) &config->cctrch_dl[el].gain_adjust, inbuf, sizeof (u16));
inbuf += sizeof (u16);
config->cctrch_dl[el].sec_interl = *inbuf++;
break;
}
break;
//-------------------------------------------
default:
//-------------------------------------------
break;
}
}
}