Merge remote-tracking branch 'origin/cppcheck-errors' into integration_2025_w37 (!3566)

fix 600 cppcheck notifications

With my fedora 42, using the CI command for cpp check i get 1900 errors.
This change set fixes some of them.
This commit is contained in:
Robert Schmidt
2025-09-10 16:58:25 +02:00
33 changed files with 176 additions and 210 deletions
+5 -1
View File
@@ -300,12 +300,16 @@ configmodule_interface_t *load_configmodule(int argc,
cfgmode = strdup(CONFIG_LIBCONFIGFILE);
}
}
static configmodule_interface_t *cfgptr;
static configmodule_interface_t *cfgptr = NULL;
if (cfgptr)
fprintf(stderr, "ERROR: Call load_configmodule more than one time\n");
// The macros are not thread safe print_params and similar
cfgptr = calloc(sizeof(configmodule_interface_t), 1);
if (!cfgptr) {
fprintf(stderr, "ERROR: cannot allocate a memory for configuration\n");
return NULL;
}
/* argv_info is used to memorize command line options which have been recognized */
/* and to detect unrecognized command line options which might have been specified */
cfgptr->argv_info = calloc(sizeof(int32_t), argc+10);
+10 -10
View File
@@ -375,32 +375,32 @@ char *telnet_getvarvalue(telnetshell_vardef_t *var, int varindex)
char *val;
switch (var[varindex].vartype) {
case TELNET_VARTYPE_INT32:
val = malloc(64);
val = calloc_or_fail(1, 64);
snprintf(val, 64, "%i", *(int32_t *)(var[varindex].varvalptr));
break;
case TELNET_VARTYPE_INT64:
val = malloc(128);
val = calloc_or_fail(1, 128);
snprintf(val, 128, "%lli", (long long)*(int64_t *)(var[varindex].varvalptr));
break;
case TELNET_VARTYPE_INT16:
val = malloc(16);
val = calloc_or_fail(1, 16);
snprintf(val, 16, "%hi", *(short *)(var[varindex].varvalptr));
break;
case TELNET_VARTYPE_INT8:
val = malloc(16);
val = calloc_or_fail(1, 16);
snprintf(val, 16, "%i", (int)(*(int8_t *)(var[varindex].varvalptr)));
break;
case TELNET_VARTYPE_UINT:
val = malloc(64);
val = calloc_or_fail(1, 64);
snprintf(val, 64, "%u", *(unsigned int *)(var[varindex].varvalptr));
break;
case TELNET_VARTYPE_DOUBLE:
val = malloc(32);
val = calloc_or_fail(1, 32);
snprintf(val, 32, "%g\n", *(double *)(var[varindex].varvalptr));
break;
@@ -409,7 +409,7 @@ char *telnet_getvarvalue(telnetshell_vardef_t *var, int varindex)
break;
default:
val = malloc(64);
val = calloc_or_fail(1, 64);
snprintf(val, 64, "ERR:var %i unknown type", varindex);
break;
}
@@ -927,7 +927,7 @@ int add_telnetcmd(char *modulename, telnetshell_vardef_t *var, telnetshell_cmdde
for (int j = 0; cmd[j].cmdfunc != NULL; j++) {
if (cmd[j].cmdflags & TELNETSRV_CMDFLAG_PUSHINTPOOLQ) {
if (afifo == NULL) {
afifo = malloc(sizeof(notifiedFIFO_t));
afifo = calloc_or_fail(1, sizeof(notifiedFIFO_t));
initNotifiedFIFO(afifo);
}
cmd[j].qptr = afifo;
@@ -956,8 +956,8 @@ int telnetsrv_checkbuildver(char *mainexec_buildversion, char **shlib_buildvers
}
int telnetsrv_getfarray(loader_shlibfunc_t **farray) {
int const num_func_tln_srv = 3;
*farray = malloc(sizeof(loader_shlibfunc_t) * num_func_tln_srv);
int const num_func_tln_srv = 3;
*farray = calloc_or_fail(num_func_tln_srv, sizeof(loader_shlibfunc_t));
(*farray)[0].fname=TELNET_ADDCMD_FNAME;
(*farray)[0].fptr=(int (*)(void) )add_telnetcmd;
(*farray)[1].fname=TELNET_POLLCMDQ_FNAME;
@@ -86,7 +86,7 @@ int get_measurgroups(telnet_measurgroupdef_t **measurgroups) {
void measurcmd_display_phycpu(telnet_printfunc_t prnt) {
PHY_VARS_NR_UE *UE = PHY_vars_UE_g[0][0];
telnet_cpumeasurdef_t cpumeasur[MAX_CPU_STAT_TYPE];
telnet_cpumeasurdef_t cpumeasur[MAX_CPU_STAT_TYPE] = {};
for (int i = 0; i < MAX_CPU_STAT_TYPE; i++) {
sprintf(cpumeasur[i].statname, "%s", UE->phy_cpu_stats.cpu_time_stats[i].meas_name);
cpumeasur[i].astatptr = &UE->phy_cpu_stats.cpu_time_stats[i];
@@ -160,7 +160,7 @@ void measurcmd_display_rlcstats(telnet_printfunc_t prnt) {
UE_info_t *UE_info = &(RC.mac[eNB_id]->UE_info);
telnet_ltemeasurdef_t statsptr[]=LTE_RLCMEASURE;
int num_rlcmeasure = sizeof(statsptr)/sizeof(telnet_ltemeasurdef_t );
unsigned int *rlcstats = malloc(num_rlcmeasure*sizeof(unsigned int));
unsigned int *rlcstats = calloc_or_fail(num_rlcmeasure,sizeof(unsigned int));
eNB_MAC_INST *eNB = RC.mac[eNB_id];
for(int i=0; i <num_rlcmeasure ; i++) {
+2 -1
View File
@@ -1229,7 +1229,8 @@ void init_eNB()
LOG_I(PHY,"Initializing eNB %d CC_id %d\n",inst,CC_id);
LOG_I(PHY,"Initializing eNB %d CC_id %d\n",inst,CC_id);
LOG_I(PHY,"Registering with MAC interface module\n");
AssertFatal((eNB->if_inst = IF_Module_init(inst))!=NULL,"Cannot register interface");
eNB->if_inst = IF_Module_init(inst);
AssertFatal(eNB->if_inst, "Cannot register interface");
eNB->if_inst->schedule_response = schedule_response;
eNB->if_inst->PHY_config_req = phy_config_request;
eNB->if_inst->PHY_config_update_sib2_req = phy_config_update_sib2_request;
+2 -3
View File
@@ -2786,11 +2786,10 @@ RU_t **RCconfig_RU(int nb_RU,int nb_L1_inst,PHY_VARS_eNB ***eNB,uint64_t *ru_mas
config_getlist(config_get_if(), &RUParamList, RUParams, sizeofArray(RUParams), NULL);
RU_t **ru=NULL;
if ( RUParamList.numelt > 0) {
ru = (RU_t **)malloc(nb_RU*sizeof(RU_t *));
ru = malloc_or_fail(nb_RU * sizeof(RU_t *));
for (int j = 0; j < nb_RU; j++) {
ru[j] = (RU_t *)malloc(sizeof(RU_t));
memset((void *)ru[j],0,sizeof(RU_t));
ru[j] = calloc_or_fail(1,sizeof(RU_t));
ru[j]->idx = j;
LOG_I(PHY,"Creating ru[%d]:%p\n", j, ru[j]);
ru[j]->if_timing = synch_to_ext_device;
@@ -77,7 +77,7 @@ int wls_fapi_nr_pnf_start()
_this = (pnf_t *)(cfg);
_this->terminate = 0;
// Init PNF config
nfapi_pnf_phy_config_t *phy = (nfapi_pnf_phy_config_t *)malloc(sizeof(nfapi_pnf_phy_config_t));
nfapi_pnf_phy_config_t *phy = malloc_or_fail(sizeof(nfapi_pnf_phy_config_t));
memset(phy, 0, sizeof(nfapi_pnf_phy_config_t));
phy->state = NFAPI_PNF_PHY_IDLE;
+25 -37
View File
@@ -202,20 +202,16 @@ void pnf_handle_pnf_config_request(pnf_t* pnf, void *pRecvMsg, int recvMsgLen)
nfapi_pnf_phy_config_delete_all(&pnf->_public);
// create the phy records
if (req.pnf_phy_rf_config.tl.tag == NFAPI_PNF_PHY_RF_TAG)
{
int i = 0;
for(i = 0; i < req.pnf_phy_rf_config.number_phy_rf_config_info; ++i)
{
nfapi_pnf_phy_config_t* phy = (nfapi_pnf_phy_config_t*)malloc(sizeof(nfapi_pnf_phy_config_t));
memset(phy, 0, sizeof(nfapi_pnf_phy_config_t));
if (req.pnf_phy_rf_config.tl.tag == NFAPI_PNF_PHY_RF_TAG) {
for(int i = 0; i < req.pnf_phy_rf_config.number_phy_rf_config_info; ++i) {
nfapi_pnf_phy_config_t* phy = calloc_or_fail(1,sizeof(nfapi_pnf_phy_config_t));
phy->state = NFAPI_PNF_PHY_IDLE;
phy->phy_id = req.pnf_phy_rf_config.phy_rf_config[i].phy_id;
phy->state = NFAPI_PNF_PHY_IDLE;
phy->phy_id = req.pnf_phy_rf_config.phy_rf_config[i].phy_id;
nfapi_pnf_phy_config_add(&(pnf->_public), phy);
}
}
nfapi_pnf_phy_config_add(&(pnf->_public), phy);
}
}
if(pnf->_public.pnf_config_req)
{
@@ -269,19 +265,13 @@ void pnf_nr_handle_pnf_config_request(pnf_t* pnf, void *pRecvMsg, int recvMsgLen
nfapi_pnf_phy_config_delete_all(&pnf->_public);
// create the phy records
if (req.pnf_phy_rf_config.tl.tag == NFAPI_PNF_PHY_RF_TAG)
{
int i = 0;
for(i = 0; i < req.pnf_phy_rf_config.number_phy_rf_config_info; ++i)
{
nfapi_pnf_phy_config_t* phy = (nfapi_pnf_phy_config_t*)malloc(sizeof(nfapi_pnf_phy_config_t));
memset(phy, 0, sizeof(nfapi_pnf_phy_config_t));
phy->state = NFAPI_PNF_PHY_IDLE;
phy->phy_id = req.pnf_phy_rf_config.phy_rf_config[i].phy_id;
nfapi_pnf_phy_config_add(&(pnf->_public), phy);
}
if (req.pnf_phy_rf_config.tl.tag == NFAPI_PNF_PHY_RF_TAG) {
for(int i = 0; i < req.pnf_phy_rf_config.number_phy_rf_config_info; ++i) {
nfapi_pnf_phy_config_t* phy = calloc_or_fail(1,sizeof(nfapi_pnf_phy_config_t));
phy->state = NFAPI_PNF_PHY_IDLE;
phy->phy_id = req.pnf_phy_rf_config.phy_rf_config[i].phy_id;
nfapi_pnf_phy_config_add(&(pnf->_public), phy);
}
}
if(pnf->_public.pnf_nr_config_req)
@@ -2024,21 +2014,19 @@ int pnf_read_dispatch_message(pnf_t* pnf)
// now have the size of the mesage
}
if(message_size > stack_buffer_size)
{
dynamic_buffer = (uint8_t*)malloc(message_size);
if(message_size > stack_buffer_size) {
dynamic_buffer = malloc_or_fail(message_size);
if(dynamic_buffer == NULL)
{
// todo : add error mesage
NFAPI_TRACE(NFAPI_TRACE_INFO, "PNF Failed to allocate dynamic buffer for sctp_recvmsg size:%d\n", message_size);
return -1;
}
if (dynamic_buffer == NULL) {
// todo : add error mesage
NFAPI_TRACE(NFAPI_TRACE_INFO, "PNF Failed to allocate dynamic buffer for sctp_recvmsg size:%d\n", message_size);
return -1;
}
read_buffer = dynamic_buffer;
}
read_buffer = dynamic_buffer;
}
{
{
int flags = 0;
(void)memset(&sndrcvinfo, 0, sizeof(struct sctp_sndrcvinfo));
+2 -2
View File
@@ -450,7 +450,7 @@ t_interleaver_codebook *f1f2mat;
short *il_tb;
__attribute__((constructor)) static void init_interleaver(void) {
int totSize=0;
f1f2mat=(t_interleaver_codebook*) malloc(sizeof(*f1f2mat) * sizeof(f1f2) / sizeof(*f1f2));
f1f2mat = malloc_or_fail(sizeof(*f1f2mat) * sizeof(f1f2) / sizeof(*f1f2));
for (int i=0; i < sizeof(f1f2)/sizeof(*f1f2) ; i++) {
f1f2mat[i].nb_bits=f1f2[i].nb_bits;
f1f2mat[i].f1=f1f2[i].f1;
@@ -458,7 +458,7 @@ __attribute__((constructor)) static void init_interleaver(void) {
f1f2mat[i].beg_index=totSize;
totSize+=f1f2mat[i].nb_bits;
}
il_tb=(short*)malloc(sizeof(*il_tb)*totSize);
il_tb = malloc_or_fail(sizeof(*il_tb) * totSize);
int idx=0;
for (int i=0; i < sizeof(f1f2)/sizeof(*f1f2) ; i++)
for (uint64_t j=0; j<f1f2[i].nb_bits; j++)
@@ -1385,7 +1385,7 @@ void compute_beta(llr_t *alpha,llr_t *beta,llr_t *m_11,llr_t *m_10,unsigned shor
#else
#ifdef DEBUG_LOGMAP
printf("beta0 %u: %03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d\n",
printf("beta0 %d: %03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d\n",
(frame_length >> 4),
simde_mm_extract_epi8(beta_ptr[0], 0),
simde_mm_extract_epi8(beta_ptr[0], 1),
@@ -1403,7 +1403,7 @@ void compute_beta(llr_t *alpha,llr_t *beta,llr_t *m_11,llr_t *m_10,unsigned shor
simde_mm_extract_epi8(beta_ptr[0], 13),
simde_mm_extract_epi8(beta_ptr[0], 14),
simde_mm_extract_epi8(beta_ptr[0], 15));
printf("beta1 %u: %03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d\n",
printf("beta1 %d: %03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d\n",
(frame_length >> 4),
simde_mm_extract_epi8(beta_ptr[1], 0),
simde_mm_extract_epi8(beta_ptr[1], 1),
@@ -1421,7 +1421,7 @@ void compute_beta(llr_t *alpha,llr_t *beta,llr_t *m_11,llr_t *m_10,unsigned shor
simde_mm_extract_epi8(beta_ptr[1], 13),
simde_mm_extract_epi8(beta_ptr[1], 14),
simde_mm_extract_epi8(beta_ptr[1], 15));
printf("beta2 %u: %03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d\n",
printf("beta2 %d: %03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d\n",
(frame_length >> 4),
simde_mm_extract_epi8(beta_ptr[2], 0),
simde_mm_extract_epi8(beta_ptr[2], 1),
@@ -1439,7 +1439,7 @@ void compute_beta(llr_t *alpha,llr_t *beta,llr_t *m_11,llr_t *m_10,unsigned shor
simde_mm_extract_epi8(beta_ptr[2], 13),
simde_mm_extract_epi8(beta_ptr[2], 14),
simde_mm_extract_epi8(beta_ptr[2], 15));
printf("beta3 %u: %03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d\n",
printf("beta3 %d: %03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d\n",
(frame_length >> 4),
simde_mm_extract_epi8(beta_ptr[3], 0),
simde_mm_extract_epi8(beta_ptr[3], 1),
@@ -1457,7 +1457,7 @@ void compute_beta(llr_t *alpha,llr_t *beta,llr_t *m_11,llr_t *m_10,unsigned shor
simde_mm_extract_epi8(beta_ptr[3], 13),
simde_mm_extract_epi8(beta_ptr[3], 14),
simde_mm_extract_epi8(beta_ptr[3], 15));
printf("beta4 %u: %03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d\n",
printf("beta4 %d: %03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d\n",
(frame_length >> 4),
simde_mm_extract_epi8(beta_ptr[4], 0),
simde_mm_extract_epi8(beta_ptr[4], 1),
@@ -1475,7 +1475,7 @@ void compute_beta(llr_t *alpha,llr_t *beta,llr_t *m_11,llr_t *m_10,unsigned shor
simde_mm_extract_epi8(beta_ptr[4], 13),
simde_mm_extract_epi8(beta_ptr[4], 14),
simde_mm_extract_epi8(beta_ptr[4], 15));
printf("beta5 %u: %03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d\n",
printf("beta5 %d: %03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d\n",
(frame_length >> 4),
simde_mm_extract_epi8(beta_ptr[5], 0),
simde_mm_extract_epi8(beta_ptr[5], 1),
@@ -1493,7 +1493,7 @@ void compute_beta(llr_t *alpha,llr_t *beta,llr_t *m_11,llr_t *m_10,unsigned shor
simde_mm_extract_epi8(beta_ptr[5], 13),
simde_mm_extract_epi8(beta_ptr[5], 14),
simde_mm_extract_epi8(beta_ptr[5], 15));
printf("beta6 %u: %03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d\n",
printf("beta6 %d: %03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d\n",
(frame_length >> 4),
simde_mm_extract_epi8(beta_ptr[6], 0),
simde_mm_extract_epi8(beta_ptr[6], 1),
@@ -1511,7 +1511,7 @@ void compute_beta(llr_t *alpha,llr_t *beta,llr_t *m_11,llr_t *m_10,unsigned shor
simde_mm_extract_epi8(beta_ptr[6], 13),
simde_mm_extract_epi8(beta_ptr[6], 14),
simde_mm_extract_epi8(beta_ptr[6], 15));
printf("beta7 %u: %03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d\n",
printf("beta7 %d: %03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d\n",
(frame_length >> 4),
simde_mm_extract_epi8(beta_ptr[7], 0),
simde_mm_extract_epi8(beta_ptr[7], 1),
@@ -30,7 +30,7 @@ const uint8_t **crc24c_generator_matrix(uint16_t payloadSizeBits)
uint8_t temp1[crcPolynomialSize], temp2[crcPolynomialSize];
uint8_t **crc_generator_matrix =
malloc(payloadSizeBits * sizeof(uint8_t *) + payloadSizeBits * crcPolynomialSize * sizeof(uint8_t));
malloc_or_fail(payloadSizeBits * sizeof(uint8_t *) + payloadSizeBits * crcPolynomialSize * sizeof(uint8_t));
if (crc_generator_matrix)
for (int i = 0; i < payloadSizeBits; i++)
crc_generator_matrix[i] = ((uint8_t *)&crc_generator_matrix[payloadSizeBits]) + i * crcPolynomialSize;
+3 -3
View File
@@ -63,9 +63,9 @@ void lte_param_init(PHY_VARS_eNB **eNBp,
PHY_VARS_UE *UE;
RU_t *ru;
printf("Start lte_param_init\n");
*eNBp = malloc(sizeof(PHY_VARS_eNB));
*UEp = malloc(sizeof(PHY_VARS_UE));
*rup = malloc(sizeof(RU_t));
*eNBp = malloc_or_fail(sizeof(PHY_VARS_eNB));
*UEp = malloc_or_fail(sizeof(PHY_VARS_UE));
*rup = malloc_or_fail(sizeof(RU_t));
eNB = *eNBp;
UE = *UEp;
ru = *rup;
-11
View File
@@ -519,17 +519,6 @@ static void sl_generate_psbch_dmrs_qpsk_sequences(PHY_VARS_NR_UE *UE, struct com
idx = (((sl_dmrs_sequence[(m << 1) >> 5]) >> ((m << 1) & 0x1f)) & 3);
modulated_dmrs_sym[m].r = mod_table[idx].r;
modulated_dmrs_sym[m].i = mod_table[idx].i;
#ifdef SL_DEBUG_INIT_DATA
printf("m:%d gold seq: %d b0-b1: %d-%d DMRS Symbols: %d %d\n",
m,
sl_dmrs_sequence[(m << 1) >> 5],
(((sl_dmrs_sequence[(m << 1) >> 5]) >> ((m << 1) & 0x1f)) & 1),
(((sl_dmrs_sequence[((m << 1) + 1) >> 5]) >> (((m << 1) + 1) & 0x1f)) & 1),
modulated_dmrs_sym[m].r,
modulated_dmrs_sym[m].i);
printf("idx:%d, qpsk_table.r:%d, qpsk_table.i:%d\n", idx, mod_table[idx].r, mod_table[idx].i);
#endif
}
#ifdef SL_DUMP_INIT_SAMPLES
+4 -1
View File
@@ -418,7 +418,10 @@ uint8_t generate_dci_top(uint8_t num_pdcch_symbols,
// if REG is allocated to PHICH, skip it
if (check_phich_reg(frame_parms,kprime,lprime,mi) == 1) {
#ifdef DEBUG_DCI_ENCODING
printf("generate_dci: skipping REG %d (kprime %u, lprime %u)\n",(lprime==0)?(kprime/6) : (kprime>>2),kprime,lprime);
printf("generate_dci: skipping REG %u (kprime %u, lprime %u)\n",
(lprime == 0) ? (kprime / 6) : (kprime >> 2),
kprime,
lprime);
#endif
} else {
// Copy REG to TX buffer
+2
View File
@@ -1993,6 +1993,7 @@ int get_narrowband_index(int N_RB_UL,int rb) {
default:
AssertFatal(1==0,"Impossible N_RB_UL %d\n",N_RB_UL);
return 0;
break;
}
}
@@ -2128,6 +2129,7 @@ int get_first_rb_in_narrowband(int N_RB_UL,
default:
AssertFatal(1==0,"Impossible N_RB_UL %d\n",N_RB_UL);
return 0;
break;
}
}
@@ -202,7 +202,7 @@ void dlsch_unscrambling(LTE_DL_FRAME_PARMS *frame_parms,
for (i=0; i<(1+(G>>5)); i++) {
for (j=0; j<32; j++,k++) {
#ifdef DEBUG_SCRAMBLING
printf("unscrambling %d : %d xor %d =",k,llr[k],(s>>j)&1);
printf("unscrambling %d : %d xor %u =", k, llr[k], (s >> j) & 1);
#endif
llr[k] = ((2*((s>>j)&1))-1)*llr[k];
#ifdef DEBUG_SCRAMBLING
+14 -15
View File
@@ -262,7 +262,6 @@ void generate_mdci_top(PHY_VARS_eNB *eNB, int frame, int subframe, int16_t amp,
mDCI_ALLOC_t *mdci;
int coded_bits;
LTE_DL_FRAME_PARMS *fp = &eNB->frame_parms;
int i;
int gain_lin_QPSK;
uint16_t *mpdcchtab;
uint32_t x1 = 0, x2 = 0, s = 0;
@@ -277,7 +276,7 @@ void generate_mdci_top(PHY_VARS_eNB *eNB, int frame, int subframe, int16_t amp,
int *w;
LOG_D(PHY, "generate_mdci_top: num_dci %d\n", mpdcch->num_dci);
for (i = 0; i < mpdcch->num_dci; i++) {
for (int i = 0; i < mpdcch->num_dci; i++) {
mdci = &mpdcch->mdci_alloc[i];
AssertFatal(fp->frame_type == FDD, "TDD is not yet supported for MPDCCH\n");
AssertFatal(fp->Ncp == NORMAL, "Extended Prefix not yet supported for MPDCCH\n");
@@ -358,14 +357,14 @@ void generate_mdci_top(PHY_VARS_eNB *eNB, int frame, int subframe, int16_t amp,
if (re_offset > fp->ofdm_symbol_size)
re_offset -= (fp->ofdm_symbol_size - 1);
int32_t *txF = &txdataF[0][symbol_offset+re_offset];
int32_t yIQ;
c16_t *txF = (c16_t *)&txdataF[0][symbol_offset + re_offset];
c16_t yIQ;
for (i = 0; i < (coded_bits >> 1); i++) {
for (int i = 0; i < (coded_bits >> 1); i++) {
// QPSK modulation to yIQ
((int16_t *) & yIQ)[0] = (*e_ptr == 1) ? -gain_lin_QPSK : gain_lin_QPSK;
yIQ.r = *e_ptr == 1 ? -gain_lin_QPSK : gain_lin_QPSK;
e_ptr++;
((int16_t *) & yIQ)[1] = (*e_ptr == 1) ? -gain_lin_QPSK : gain_lin_QPSK;
yIQ.i = *e_ptr == 1 ? -gain_lin_QPSK : gain_lin_QPSK;
e_ptr++;
txF[mpdcchtab[i]] = yIQ;
/*
@@ -406,7 +405,7 @@ void generate_mdci_top(PHY_VARS_eNB *eNB, int frame, int subframe, int16_t amp,
int last_prb = (mdci->narrowband*6) + nb_i0 + 5;
int soffset[4] = {5,6,12,13};
for (int lprime=0,i=0; lprime<4; lprime++) {
for (int lprime=0,ii=0; lprime<4; lprime++) {
for (int nprb=0; nprb<110; nprb++) {
if (nprb<fp->N_RB_DL) {
re_offset = fp->first_carrier_offset + (12 * nprb);
@@ -414,11 +413,11 @@ void generate_mdci_top(PHY_VARS_eNB *eNB, int frame, int subframe, int16_t amp,
if (re_offset > fp->ofdm_symbol_size)
re_offset -= (fp->ofdm_symbol_size - 1);
txF = &txdataF[0][symbol_offset + re_offset + fp->ofdm_symbol_size*soffset[lprime]];
txF = (c16_t *)&txdataF[0][symbol_offset + re_offset + fp->ofdm_symbol_size * soffset[lprime]];
}
for (int mprime=0; mprime<3; mprime++,i+=2) {
if ((i & 0x1f) == 0) {
for (int mprime=0; mprime<3; mprime++,ii+=2) {
if ((ii & 0x1f) == 0) {
s = lte_gold_generic(&x1, &x2, reset);
reset = 0;
}
@@ -426,8 +425,8 @@ void generate_mdci_top(PHY_VARS_eNB *eNB, int frame, int subframe, int16_t amp,
// select PRBs corresponding to narrowband
if ((nprb>= first_prb) &&
(nprb<= last_prb)) {
((int16_t *) & yIQ)[0] = (((s >> (i & 0x1f)) & 1) == 1) ? -gain_lin_QPSK : gain_lin_QPSK;
((int16_t *) & yIQ)[1] = (((s >> ((i + 1) & 0x1f)) & 1) == 1) ? -gain_lin_QPSK : gain_lin_QPSK;
yIQ.r = (s >> (ii & 0x1f)) & 1 ? -gain_lin_QPSK : gain_lin_QPSK;
yIQ.i = (s >> ((ii + 1) & 0x1f)) & 1 ? -gain_lin_QPSK : gain_lin_QPSK;
AssertFatal(mdci->transmission_type==1,"transmission_type %d!=1, handle this ...\n",mdci->transmission_type);
if (mdci->transmission_type==1) { // same thing on both 107 and 109
@@ -435,9 +434,9 @@ void generate_mdci_top(PHY_VARS_eNB *eNB, int frame, int subframe, int16_t amp,
txF[1+(5*mprime)] = yIQ;
} else { // put on selected antenna port with w sequence
if (((mprime+nprb)&1) == 0)
txF[off+(5*mprime)] = yIQ*w[lprime];
txF[off + (5 * mprime)] = (c16_t){yIQ.r * w[lprime], yIQ.i * w[lprime]};
else
txF[off+(5*mprime)] = yIQ*w[3-lprime];
txF[off + (5 * mprime)] = (c16_t){yIQ.r * w[3 - lprime], yIQ.i * w[3 - lprime]};
}
/*
+5 -1
View File
@@ -390,7 +390,11 @@ void generate_phich_reg_mapping(LTE_DL_FRAME_PARMS *frame_parms) {
frame_parms->phich_reg[1+(mprime<<1)][1] = ((frame_parms->Nid_cell*n1/n0) + mprime + (n1/3))%n1;
frame_parms->phich_reg[1+(mprime<<1)][2] = ((frame_parms->Nid_cell*n2/n0) + mprime + (2*n2/3))%n2;
//#ifdef DEBUG_PHICH
printf("phich_reg :%u => %d,%d,%d\n",mprime<<1,frame_parms->phich_reg[mprime<<1][0],frame_parms->phich_reg[mprime][1],frame_parms->phich_reg[mprime][2]);
printf("phich_reg :%d => %d,%d,%d\n",
mprime << 1,
frame_parms->phich_reg[mprime << 1][0],
frame_parms->phich_reg[mprime][1],
frame_parms->phich_reg[mprime][2]);
printf("phich_reg :%d => %d,%d,%d\n",1+(mprime<<1),frame_parms->phich_reg[1+(mprime<<1)][0],frame_parms->phich_reg[1+(mprime<<1)][1],frame_parms->phich_reg[1+(mprime<<1)][2]);
//#endif
}
+24 -13
View File
@@ -346,20 +346,31 @@ void rx_prach0(PHY_VARS_eNB *eNB,
}
}
if ((eNB==NULL) && ru->function == NGFI_RRU_IF4p5) {
/// **** send_IF4 of rxsigF to RAU **** ///
if (br_flag == 1)
send_IF4p5(ru, frame_prach, subframe, IF4p5_PRACH+1+ce_level);
else
send_IF4p5(ru, frame_prach, subframe, IF4p5_PRACH);
return;
} else if (eNB!=NULL) {
if (LOG_DEBUGFLAG(DEBUG_PRACH)) {
int en = dB_fixed(signal_energy((int32_t *)&rxsigF[0][0],840));
if ((en > 10)&&(br_flag==1)) LOG_I(PHY,"PRACH (br_flag %d,ce_level %d, n_ra_prb %d, k %d): Frame %d, Subframe %d => %d dB\n",br_flag,ce_level,n_ra_prb,k,frame_prach,subframe,en);
if (!eNB) {
if (ru->function == NGFI_RRU_IF4p5) {
/// **** send_IF4 of rxsigF to RAU **** ///
if (br_flag == 1)
send_IF4p5(ru, frame_prach, subframe, IF4p5_PRACH + 1 + ce_level);
else
send_IF4p5(ru, frame_prach, subframe, IF4p5_PRACH);
} else {
LOG_E(PHY, "inconsistent case\n");
}
return;
}
if (LOG_DEBUGFLAG(DEBUG_PRACH)) {
int en = dB_fixed(signal_energy((int32_t *)&rxsigF[0][0], 840));
if ((en > 10) && (br_flag == 1))
LOG_I(PHY,
"PRACH (br_flag %d,ce_level %d, n_ra_prb %d, k %d): Frame %d, Subframe %d => %d dB\n",
br_flag,
ce_level,
n_ra_prb,
k,
frame_prach,
subframe,
en);
}
// in case of RAU and prach received rx_thread wakes up prach
+3 -2
View File
@@ -304,8 +304,9 @@ const uint16_t prach_root_sequence_map4[138] = {
57, 82, 58, 81, 59, 80, 60, 79, 61, 78, 62, 77, 63, 76, 64, 75, 65, 74, 66, 73, 67, 72, 68, 71, 69, 70};
void dump_prach_config(LTE_DL_FRAME_PARMS *frame_parms,uint8_t subframe) {
FILE *fd;
fd = fopen("prach_config.txt","w");
FILE *fd = fopen("prach_config.txt", "w");
if (!fd)
return;
fprintf(fd,"prach_config: subframe = %d\n",subframe);
fprintf(fd,"prach_config: N_RB_UL = %d\n",frame_parms->N_RB_UL);
fprintf(fd,"prach_config: frame_type = %s\n",(frame_parms->frame_type==1) ? "TDD":"FDD");
+2 -1
View File
@@ -665,7 +665,7 @@ unsigned int ulsch_decoding(PHY_VARS_eNB *eNB,
}
#ifdef DEBUG_ULSCH_DECODING
printf("ulsch_decoding.c: ACK i %u, r %d, j %u, ColumnSet[j] %d\n",i,r,j,columnset[j]);
printf("ulsch_decoding.c: ACK i %d, r %d, j %d, ColumnSet[j] %d\n", i, r, j, columnset[j]);
#endif
j=(j+3)&3;
}
@@ -1040,6 +1040,7 @@ void dump_ulsch_stats(FILE *fd,PHY_VARS_eNB *eNB,int frame) {
char output[16384];
char *str = output;
*str = 0;
for (eNB_SCH_STATS_t *st = eNB->ulsch_stats; st < eNB->ulsch_stats + sizeofArray(eNB->ulsch_stats); st++)
if (st->rnti > 0 && st->round_trials[0] > 100) {
for (int aa = 0; aa < eNB->frame_parms.nb_antennas_rx; aa++)
+3 -2
View File
@@ -124,7 +124,7 @@ static int errorRB(int rb, char * table, int line) {
return 0;
}
#define rbAllocCheck(RBalL, TabLe) (RBalL) > sizeof(TabLe)/sizeof(*TabLe) ? errorRB(RBalL, #TabLe, __LINE__) : TabLe[RBalL]
#define rbAllocCheck(RBalL, TabLe) (RBalL) >= sizeof(TabLe) / sizeof(*TabLe) ? errorRB(RBalL, #TabLe, __LINE__) : TabLe[RBalL]
void extract_dci1A_info(uint8_t N_RB_DL, frame_type_t frame_type, void *dci_pdu, DCI_INFO_EXTRACTED_t *pdci_info_extarcted)
{
uint8_t harq_pid=0;
@@ -4965,7 +4965,8 @@ double sinr_eff_cqi_calc(PHY_VARS_UE *ue, uint8_t eNB_id, uint8_t subframe)
}
}
s_dB[count] = 10*log10(abs_channel/2) - meas->n0_power_avg_dB;
if (abs_channel > 0)
s_dB[count] = 10 * log10(abs_channel / 2.0) - meas->n0_power_avg_dB;
}
break;
@@ -22,7 +22,7 @@ data storage. */
#include <lapacke_utils.h>
#include <lapacke.h>
//#define DEBUG_PREPROC
#include "common/utils/utils.h"
void transpose (int N, float complex *A, float complex *Result)
{
@@ -43,14 +43,14 @@ void transpose (int N, float complex *A, float complex *Result)
int ldb = col_opB;
if (transb == CblasNoTrans) {
B = (float complex*)calloc(ldb*col_opB,sizeof(float complex));
B = calloc_or_fail(ldb * col_opB, sizeof(float complex));
col_B= col_opB;
}
else {
B = (float complex*)calloc(ldb*col_opA, sizeof(float complex));
B = calloc_or_fail(ldb * col_opA, sizeof(float complex));
col_B = col_opA;
}
float complex* C = (float complex*)malloc(ldc*col_opB*sizeof(float complex));
float complex* C = malloc_or_fail(ldc * col_opB * sizeof(float complex));
for (i=0; i<lda*col_B; i+=N+1)
B[i]=1.0+I*0;
@@ -82,14 +82,14 @@ void conjugate_transpose (int N, float complex *A, float complex *Result)
int ldb = col_opB;
if (transb == CblasNoTrans) {
B = (float complex*)calloc(ldb*col_opB,sizeof(float complex));
B = calloc_or_fail(ldb * col_opB, sizeof(float complex));
col_B= col_opB;
}
else {
B = (float complex*)calloc(ldb*col_opA, sizeof(float complex));
B = calloc_or_fail(ldb * col_opA, sizeof(float complex));
col_B = col_opA;
}
float complex* C = (float complex*)malloc(ldc*col_opB*sizeof(float complex));
float complex* C = malloc_or_fail(ldc * col_opB * sizeof(float complex));
for (i=0; i<lda*col_B; i+=N+1)
B[i]=1.0+I*0;
@@ -117,7 +117,7 @@ void H_hermH_plus_sigma2I (int N, int M, float complex *A, float sigma2, float c
int ldc = col_opA;
int i;
float complex* C = (float complex*)calloc(ldc*col_opB, sizeof(float complex));
float complex* C = calloc_or_fail(ldc * col_opB, sizeof(float complex));
for (i=0; i<lda*col_C; i+=N+1)
C[i]=sigma2*(1.0+I*0);
@@ -141,7 +141,7 @@ void H_hermH_plus_sigma2I (int N, int M, float complex *A, float sigma2, float c
int ldc = M;
int i;
float complex* C = (float complex*)calloc(M*M, sizeof(float complex));
float complex* C = calloc_or_fail(M * M, sizeof(float complex));
for (i=0; i<M*M; i+=M+1)
C[i]=1.0+I*0;
@@ -163,7 +163,7 @@ void eigen_vectors_values (int N, float complex *A, float complex *Vectors, floa
int order_A = N;
int lda = N;
int i;
float* Values = (float*)malloc(sizeof(float)*1*N);
float* Values = malloc_or_fail(sizeof(float) * 1 * N);
LAPACKE_cheev(LAPACK_ROW_MAJOR, jobz, uplo, order_A, A, lda, Values);
@@ -183,7 +183,7 @@ void eigen_vectors_values (int N, float complex *A, float complex *Vectors, floa
int nrhs = N;
char transa = 'N';
int* IPIV = malloc(N*N*sizeof(int));
int* IPIV = malloc_or_fail(N * N * sizeof(int));
// Compute LU-factorization
LAPACKE_cgetrf(LAPACK_ROW_MAJOR, n, nrhs, A, lda, IPIV);
@@ -267,8 +267,8 @@ void mutl_matrix_matrix_col_based(float complex* M0, float complex* M1, int rows
void compute_MMSE(float complex* H, int order_H, float sigma2, float complex* W_MMSE)
{
int N = order_H;
float complex* H_hermH_sigmaI = malloc(N*N*sizeof(float complex));
float complex* H_herm = malloc(N*N*sizeof(float complex));
float complex* H_hermH_sigmaI = malloc_or_fail(N * N * sizeof(float complex));
float complex* H_herm = malloc_or_fail(N * N * sizeof(float complex));
H_hermH_plus_sigma2I(N, N, H, sigma2, H_hermH_sigmaI);
@@ -309,18 +309,18 @@ void compute_white_filter(float complex* H_re,
int N = n_tx;
int sigma2=noise_power;
float complex *H0_re = malloc(n_rx*(n_tx>>2)*sizeof(float complex));
float complex *H1_re = malloc(n_rx*(n_tx>>2)*sizeof(float complex));
float complex *R_corr_col_n_0_re = malloc(n_rx*n_tx*sizeof(float complex));
float complex *R_corr_col_n_1_re = malloc(n_rx*n_tx*sizeof(float complex));
float complex *U_0_re = malloc(n_rx*n_tx*sizeof(float complex));
float complex *U_1_re = malloc(n_rx*n_tx*sizeof(float complex));
float complex *U_0_herm_re = malloc(n_rx*n_tx*sizeof(float complex));
float complex *U_1_herm_re = malloc(n_rx*n_tx*sizeof(float complex));
float complex *D_0_re = malloc(n_rx*n_tx*sizeof(float complex));
float complex *D_1_re = malloc(n_rx*n_tx*sizeof(float complex));
float complex *W_Wh_0_re = malloc(n_rx*n_tx*sizeof(float complex));
float complex *W_Wh_1_re = malloc(n_rx*n_tx*sizeof(float complex));
float complex *H0_re = malloc_or_fail(n_rx*(n_tx>>2)*sizeof(float complex));
float complex *H1_re = malloc_or_fail(n_rx*(n_tx>>2)*sizeof(float complex));
float complex *R_corr_col_n_0_re = malloc_or_fail(n_rx*n_tx*sizeof(float complex));
float complex *R_corr_col_n_1_re = malloc_or_fail(n_rx*n_tx*sizeof(float complex));
float complex *U_0_re = malloc_or_fail(n_rx*n_tx*sizeof(float complex));
float complex *U_1_re = malloc_or_fail(n_rx*n_tx*sizeof(float complex));
float complex *U_0_herm_re = malloc_or_fail(n_rx*n_tx*sizeof(float complex));
float complex *U_1_herm_re = malloc_or_fail(n_rx*n_tx*sizeof(float complex));
float complex *D_0_re = malloc_or_fail(n_rx*n_tx*sizeof(float complex));
float complex *D_1_re = malloc_or_fail(n_rx*n_tx*sizeof(float complex));
float complex *W_Wh_0_re = malloc_or_fail(n_rx*n_tx*sizeof(float complex));
float complex *W_Wh_1_re = malloc_or_fail(n_rx*n_tx*sizeof(float complex));
for (aatx=0; aatx<n_tx/2; aatx++){
for (aarx=0; aarx<n_rx; aarx++) {
+1 -1
View File
@@ -414,7 +414,7 @@ void nr_layer_mapping(int nbCodes,
}
#ifdef DEBUG_LAYER_MAPPING
printf("\nsymb %d/%d\n", i << 3, n_symbs);
printf("\nsymb %d/%u\n", i << 3, n_symbs);
printf(" layer 0:\t");
for (int j = 0; j < 8 * 6; j += 6) {
printf("%d %d ", ((int16_t *)&mod[i << 3])[j], ((int16_t *)&mod[i << 3])[j + 1]);
-9
View File
@@ -220,15 +220,6 @@ static void nr_generate_dci(PHY_VARS_gNB *gNB,
} else { // DCI payload
txdataF[l * frame_parms->ofdm_symbol_size + k] = c16mulRealShift(mod_dci[dci_idx], amp, 15);
#ifdef DEBUG_DCI
LOG_I(NR_PHY_DCI,
"PDCCH: l %d position %d => (%d,%d)\n",
l,
k,
txdataF[l * frame_parms->ofdm_symbol_size + k].r,
txdataF[l * frame_parms->ofdm_symbol_size + k].i;
#endif
dci_idx++;
}
-19
View File
@@ -65,16 +65,6 @@ void nr_generate_pbch_dmrs(uint32_t *gold_pbch_dmrs,
for (int m=0; m<NR_PBCH_DMRS_LENGTH; m++) {
idx = (((gold_pbch_dmrs[(m<<1)>>5])>>((m<<1)&0x1f))&3);
mod_dmrs[m] = nr_qpsk_mod_table[idx];
#ifdef DEBUG_PBCH_DMRS
printf("m %d idx %d gold seq %u b0-b1 %d-%d mod_dmrs %d %d\n",
m,
idx,
gold_pbch_dmrs[(m << 1) >> 5],
(((gold_pbch_dmrs[(m << 1) >> 5]) >> ((m << 1) & 0x1f)) & 1),
(((gold_pbch_dmrs[((m << 1) + 1) >> 5]) >> (((m << 1) + 1) & 0x1f)) & 1),
mod_dmrs[m].r,
mod_dmrs[m].i);
#endif
}
/// Resource mapping
@@ -165,9 +155,6 @@ static void nr_pbch_encoded_scrambling(uint32_t *pbch_e,
#ifdef DEBUG_PBCH_ENCODING
printf("Scrambling params: nushift %d M %d length %d offset %d\n", nushift, M, length, info.offset);
#endif
#ifdef DEBUG_PBCH_ENCODING
printf("s: %04x\t", s);
#endif
for (int i = 0; i < length; ++i) {
if (((i + info.offset) & 0x1f) == 0)
@@ -189,9 +176,6 @@ static uint32_t nr_pbch_scrambling(uint32_t pbch_a_interleaved,
uint32_t *s = gold_cache(Nid, info.len);
#ifdef DEBUG_PBCH_ENCODING
printf("Scrambling params: nushift %d M %d length %d offset %d\n", nushift, M, length, info.offset);
#endif
#ifdef DEBUG_PBCH_ENCODING
printf("s: %04x\t", s);
#endif
int goldIdx = info.goldIdx;
for (int i = 0; i < length; ++i) {
@@ -280,9 +264,6 @@ void nr_generate_pbch(PHY_VARS_gNB *gNB,
uint8_t *interleaver = gNB->nr_pbch_interleaver;
for (int i = 0; i < NR_POLAR_PBCH_PAYLOAD_BITS; i++) {
pbch_a_interleaved |= ((pbch_a >> i) & 1) << (*(interleaver + i));
#ifdef DEBUG_PBCH_ENCODING
printf("i %d out 0x%08x ilv %d (in>>i)&1) %d\n", i, pbch_a_interleaved, *(interleaver+i), (pbch_a >> i) & 1);
#endif
}
#ifdef DEBUG_PBCH_ENCODING
@@ -78,19 +78,6 @@ static int sl_nr_pss_correlation(PHY_VARS_NR_UE *UE, int frame_index)
const c64_t r64 = {.r = result.r, .i = result.i};
psss_corr_value += squaredMod(r64);
#ifdef SL_DEBUG
pss_corr_debug_values[pss_index][n] = psss_corr_value;
printf("frame:%d n:%d, pss_index:%d, pss_for_correlation[pss_index][0]:%x, rxdata[n]:%x\n",
frame_index,
n,
pss_index,
pss_for_correlation[pss_index][0],
rxdata[ar][n + frame_index * sl_fp->samples_per_frame]);
printf("result %lld, pss_corr_values[%d][%d]:%ld\n", result, pss_index, n, pss_corr_debug_values[pss_index][n]);
printf("pss_index %d: n %6u peak_value %15llu\n", pss_index, n, (unsigned long long)pss_corr_debug_values[pss_index][n]);
printf("peak_value:%ld, peak_position:%d, pss_source:%d\n", peak_value, peak_position, pss_source);
#endif
}
// calculate the absolute value of sync_corr[n]
@@ -99,10 +86,6 @@ static int sl_nr_pss_correlation(PHY_VARS_NR_UE *UE, int frame_index)
peak_value = psss_corr_value;
peak_position = n;
pss_source = pss_index;
#ifdef SL_DEBUG
printf("pss_index %d: n %6u peak_value %15llu\n", pss_index, n, (unsigned long long)psss_corr_value);
#endif
}
}
}
+1 -5
View File
@@ -263,11 +263,7 @@ void nr_pbch_unscrambling(int16_t *demod_pbch_e,
*pbch_a_interleaved ^= ((unscrambling_mask >> i) & 1)
? ((pbch_a_prime >> i) & 1) << i
: (((pbch_a_prime >> i) & 1) ^ ((seq[idxGold] >> ((k + offset) & 0x1f)) & 1)) << i;
k += (!((unscrambling_mask>>i)&1));
#ifdef DEBUG_PBCH_ENCODING
printf("i %d k %d offset %d (unscrambling_mask>>i)&1) %d s: %08x\t pbch_a_interleaved 0x%08x (!((unscrambling_mask>>i)&1)) %d\n", i, k, offset, (unscrambling_mask>>i)&1, s, *pbch_a_interleaved,
(!((unscrambling_mask>>i)&1)));
#endif
k += (!((unscrambling_mask >> i) & 1));
} else {
if (((i + offset) & 0x1f) == 0)
idxGold++;
@@ -40,11 +40,6 @@ void sl_psbch_scrambling(uint32_t *output, uint32_t id, uint16_t length)
// x1 is set in lte_gold_generic
x2 = id; // C_INIT
#ifdef SL_DEBUG
printf("SIDELINK: Function %s\n", __func__);
printf("Scrambling params: length %d id %d \n", length, id);
#endif
#ifdef SL_DEBUG
for (int i = 0; i < 56; i++) {
printf("\nBEFORE SCRAMBLING output[%d]:0x%x\n", i, output[i]);
@@ -334,10 +329,6 @@ void nr_tx_psbch(PHY_VARS_NR_UE *UE, uint32_t frame_tx, uint32_t slot_tx, sl_nr_
psbch_payload |= (slot_tx << 10) & 0x10000;
psbch_payload |= (slot_tx << 26) & 0xFC000000;
#ifdef SL_DEBUG
printf("DEBUG PSBCH TX: DFN, SLOT included. psbch_a :0x%08x, frame:%d, slot:%d\n", psbch_payload, frame_tx, slot_tx);
#endif
LOG_D(PHY, "PSBCH TX: Frame.Slot %d.%d. Payload::0x%08x, slssid:%d\n", frame_tx, slot_tx, psbch_payload, slss_id);
// GENERATE Sidelink PSS,SSS Sequences, PSBCH DMRS Symbols, PSBCH Symbols
+6 -1
View File
@@ -506,7 +506,12 @@ static inline void nr_pucch2_3_4_scrambling(uint16_t M_bit, uint16_t rnti, uint1
uint8_t c = (uint8_t)((s >> i) & 1);
btildep[i] = (((B>>i)&1) ^ c);
#ifdef DEBUG_NR_PUCCH_TX
printf("\t\t\t btilde[%d]=%x from unscrambled bit %d and scrambling %d (%x)\n",i+(iprime<<5),btilde[i],((B>>i)&1),c,s>>i);
printf("\t\t\t btilde[%d]=%x from unscrambled bit %u and scrambling %d (%x)\n",
i + (iprime << 5),
btilde[i],
((B >> i) & 1),
c,
s >> i);
#endif
}
}
+3 -3
View File
@@ -67,7 +67,7 @@ static void drawsymbol(FL_OBJECT *obj, int id,
static void commonGraph(OAIgraph_t *graph, int type, FL_Coord x, FL_Coord y, FL_Coord w, FL_Coord h, const char *label, FL_COLOR pointColor) {
if (type==WATERFALL) {
graph->waterFallh=h-15;
graph->waterFallAvg=malloc(sizeof(*graph->waterFallAvg) * graph->waterFallh);
graph->waterFallAvg = malloc_or_fail(sizeof(*graph->waterFallAvg) * graph->waterFallh);
for (int i=0; i< graph->waterFallh; i++)
graph->waterFallAvg[i]=0;
@@ -309,7 +309,7 @@ static void puschIQ (OAIgraph_t *graph, calibData_t *context) {
static OAI_phy_scope_t *createScopeCalibration(calibData_t * context) {
FL_OBJECT *obj;
OAI_phy_scope_t *fdui = calloc(( sizeof *fdui ),1);
OAI_phy_scope_t *fdui = calloc_or_fail((sizeof *fdui), 1);
fdui->context=context;
// Define form
fdui->phy_scope = fl_bgn_form( FL_NO_BOX, 800, 800 );
@@ -380,7 +380,7 @@ static void *scopeThread(void *arg) {
void CalibrationInitScope(void ** samplesRx,openair0_device *rfdevice) {
pthread_t forms_thread;
calibData_t * tmp=(calibData_t *) malloc(sizeof(*tmp));
calibData_t *tmp = (calibData_t *)malloc_or_fail(sizeof(*tmp));
tmp->samplesRx=samplesRx;
tmp->rfdevice=rfdevice;
threadCreate(&forms_thread, scopeThread, (void*) tmp, "scope", -1, OAI_PRIORITY_RT_LOW);
+5 -5
View File
@@ -614,7 +614,7 @@ static void puschThroughtput (OAIgraph_t *graph, scopeData_t *p, int nb_UEs) {
STATICFORXSCOPE OAI_phy_scope_t *create_phy_scope_gnb(void)
{
FL_OBJECT *obj;
OAI_phy_scope_t *fdui = calloc(( sizeof *fdui ),1);
OAI_phy_scope_t *fdui = calloc_or_fail((sizeof *fdui), 1);
// Define form
fdui->phy_scope = fl_bgn_form( FL_NO_BOX, 800, 800 );
fl_set_form_dblbuffer(fdui->phy_scope, 1);
@@ -739,7 +739,7 @@ static void scopeUpdaterGnb(enum PlotTypeGnbIf plotType, int numElt)
STATICFORXSCOPE void gNBinitScope(scopeParms_t *p)
{
AssertFatal(p->gNB->scopeData = calloc(sizeof(scopeData_t), 1), "");
AssertFatal(p->gNB->scopeData = calloc_or_fail(sizeof(scopeData_t), 1), "");
scopeData_t *scope=(scopeData_t *) p->gNB->scopeData;
scope->argc=p->argc;
scope->argv=p->argv;
@@ -998,7 +998,7 @@ static void uePdschThroughput (scopeGraphData_t **data, OAIgraph_t *graph, PHY_
STATICFORXSCOPE OAI_phy_scope_t *create_phy_scope_nrue(int ID)
{
FL_OBJECT *obj;
OAI_phy_scope_t *fdui = calloc(( sizeof *fdui ),1);
OAI_phy_scope_t *fdui = calloc_or_fail((sizeof *fdui), 1);
// Define form
fdui->phy_scope = fl_bgn_form( FL_NO_BOX, 800, 900 );
fl_set_form_dblbuffer(fdui->phy_scope, 1);
@@ -1139,7 +1139,7 @@ static void *nrUEscopeThread(void *arg) {
STATICFORXSCOPE void nrUEinitScope(PHY_VARS_NR_UE *ue)
{
AssertFatal(ue->scopeData = calloc(sizeof(scopeData_t), 1), "");
AssertFatal(ue->scopeData = calloc_or_fail(sizeof(scopeData_t), 1), "");
scopeData_t *scope=(scopeData_t *) ue->scopeData;
scope->copyData = copyData;
#ifndef WEBSRVSCOPE
@@ -1185,7 +1185,7 @@ static void reset_stats_gNB(FL_OBJECT *button,
}
static FD_stats_form *create_form_stats_form(int ID) {
FL_OBJECT *obj;
FD_stats_form *fdui = calloc(( sizeof *fdui ),1);
FD_stats_form *fdui = calloc_or_fail(( sizeof *fdui ),1);
fdui->vdata = fdui->cdata = NULL;
fdui->ldata = 0;
fdui->stats_form = fl_bgn_form( FL_NO_BOX, 1115, 900 );
+16
View File
@@ -61,6 +61,8 @@ int smbv_init_config(const char* fname, uint16_t sequence_length)
int k;
f_ptr = fopen(fname,"w");
if (!f_ptr)
return -1;
if (sequence_length>4) {
msg("ERROR invalid sequence length: %d, maximum is 4\n", sequence_length);
@@ -101,6 +103,8 @@ int smbv_write_config_from_frame_parms(const char* fname, LTE_DL_FRAME_PARMS *fr
FILE *f_ptr;
f_ptr = fopen(fname,"a");
if (!f_ptr)
return -1;
fprintf(f_ptr, "BB:EUTR:SLEN %d\n",slen);
@@ -188,6 +192,8 @@ int smbv_configure_datalist_for_alloc(const char* fname, uint8_t alloc, uint8_t
{
FILE *f_ptr;
f_ptr = fopen(fname,"a");
if (!f_ptr)
return -1;
char strbuf[(8<<1)+1];
int i,k;
strbuf[0] = '\0';
@@ -245,6 +251,8 @@ int smbv_configure_datalist_for_user(const char* fname, uint8_t user, uint8_t *b
{
FILE *f_ptr;
f_ptr = fopen(fname,"a");
if (!f_ptr)
return -1;
char strbuf[(8<<1)+1];
int i,k;
@@ -284,6 +292,8 @@ int smbv_configure_user(const char* fname, uint8_t user, uint8_t transmission_mo
{
FILE *f_ptr;
f_ptr = fopen(fname,"a");
if (!f_ptr)
return -1;
fprintf(f_ptr, "BB:EUTR:DL:USER%d:TXM M1\n",user);
fprintf(f_ptr, "BB:EUTR:DL:USER%d:UEC USER\n",user);
@@ -302,6 +312,8 @@ int smbv_configure_pdcch(const char* fname,uint8_t subframe,uint8_t num_pdcch_sy
FILE *f_ptr;
f_ptr = fopen(fname,"a");
if (!f_ptr)
return -1;
fprintf(f_ptr, "BB:EUTR:DL:SUBF%d:ENCC:PCF:CREG %d\n",subframe,num_pdcch_symbols);
fprintf(f_ptr, "BB:EUTR:DL:SUBF%d:ENCC:PDCC:FORM VAR\n",subframe);
@@ -325,6 +337,8 @@ int smbv_configure_common_dci(const char* fname, uint8_t subframe, const char* t
void *dci_pdu = &dci_alloc->dci_pdu[0];
f_ptr = fopen(fname,"a");
if (!f_ptr)
return -1;
fprintf(f_ptr, "BB:EUTR:DL:SUBF%d:ENCC:STAT ON\n",subframe);
@@ -383,6 +397,8 @@ int smbv_configure_ue_spec_dci(const char* fname, uint8_t subframe, uint8_t user
void *dci_pdu = &dci_alloc->dci_pdu[0];
f_ptr = fopen(fname,"a");
if (!f_ptr)
return -1;
fprintf(f_ptr, "BB:EUTR:DL:SUBF%d:ENCC:STAT ON\n",subframe);
fprintf(f_ptr, "BB:EUTR:DL:SUBF%d:ENCC:PDCC:EXTC:ITEM%d:USER USER%d\n",subframe,item,user);