diff --git a/common/CMakeLists.txt b/common/CMakeLists.txt index 229c93b043..f58880b04a 100644 --- a/common/CMakeLists.txt +++ b/common/CMakeLists.txt @@ -3,7 +3,7 @@ add_subdirectory(config/yaml) configure_file(oai_version.h.in oai_version.h @ONLY) -add_library(instrumentation INTERFACE instrumentation.h) +add_library(instrumentation INTERFACE) target_include_directories(instrumentation INTERFACE .) if (TRACY_ENABLE) target_link_libraries(instrumentation INTERFACE Tracy::TracyClient) diff --git a/executables/softmodem-common.c b/executables/softmodem-common.c index 9f39612733..2fed359d82 100644 --- a/executables/softmodem-common.c +++ b/executables/softmodem-common.c @@ -105,8 +105,9 @@ void get_common_options(configmodule_interface_t *cfg, uint32_t execmask) paramdef_t cmdline_params[] = CMDLINE_PARAMS_DESC; checkedparam_t cmdline_CheckParams[] = CMDLINE_PARAMS_CHECK_DESC; + static_assert(sizeofArray(cmdline_params) == sizeofArray(cmdline_CheckParams), + "cmdline_params and cmdline_CheckParams should have the same size"); int numparams = sizeofArray(cmdline_params); - AssertFatal(numparams == sizeofArray(cmdline_CheckParams), "Error in arrays size (%d!=%lu)\n", numparams, sizeofArray(cmdline_CheckParams)); config_set_checkfunctions(cmdline_params, cmdline_CheckParams, numparams); config_get(cfg, cmdline_params, numparams, NULL); nfapi_index = config_paramidx_fromname(cmdline_params, numparams, "nfapi"); @@ -115,9 +116,10 @@ void get_common_options(configmodule_interface_t *cfg, uint32_t execmask) paramdef_t cmdline_logparams[] =CMDLINE_LOGPARAMS_DESC ; checkedparam_t cmdline_log_CheckParams[] = CMDLINE_LOGPARAMS_CHECK_DESC; - int numlogparams = sizeofArray(cmdline_logparams); - AssertFatal(numlogparams == sizeofArray(cmdline_log_CheckParams), "Error in arrays size (%d!=%lu)\n", numlogparams, sizeofArray(cmdline_log_CheckParams)); + static_assert(sizeofArray(cmdline_logparams) == sizeofArray(cmdline_log_CheckParams), + "cmdline_logparams and cmdline_log_CheckParams should have the same size"); + int numlogparams = sizeofArray(cmdline_logparams); config_set_checkfunctions(cmdline_logparams, cmdline_log_CheckParams, numlogparams); config_get(cfg, cmdline_logparams, numlogparams, NULL); diff --git a/openair2/E1AP/e1ap_setup.c b/openair2/E1AP/e1ap_setup.c index 4ec94bc9b5..fc59a881fa 100644 --- a/openair2/E1AP/e1ap_setup.c +++ b/openair2/E1AP/e1ap_setup.c @@ -94,6 +94,8 @@ MessageDef *RCconfig_NR_CU_E1(const E1_t *entity) paramlist_def_t PLMNParamList = {GNB_CONFIG_STRING_PLMN_LIST, NULL, 0}; /* map parameter checking array instances to parameter definition array instances */ checkedparam_t config_check_PLMNParams[] = PLMNPARAMS_CHECK; + static_assert(sizeofArray(config_check_PLMNParams) == sizeofArray(PLMNParams), + "config_check_PLMNParams and PLMNParams should have the same size"); for (int I = 0; I < sizeofArray(PLMNParams); ++I) PLMNParams[I].chkPptr = &(config_check_PLMNParams[I]); diff --git a/openair2/ENB_APP/enb_config.c b/openair2/ENB_APP/enb_config.c index 9d0d81cfc8..6daae2907d 100644 --- a/openair2/ENB_APP/enb_config.c +++ b/openair2/ENB_APP/enb_config.c @@ -266,9 +266,13 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc) { paramlist_def_t ENBParamList = {ENB_CONFIG_STRING_ENB_LIST,NULL,0}; checkedparam_t config_check_CCparams[] = CCPARAMS_CHECK; paramdef_t CCsParams[] = CCPARAMS_DESC(ccparams_lte); + static_assert(sizeofArray(config_check_CCparams) == sizeofArray(CCsParams), + "config_check_CCparams and CCsParams should have the same size"); paramlist_def_t CCsParamList = {ENB_CONFIG_STRING_COMPONENT_CARRIERS,NULL,0}; paramdef_t eMTCParams[] = EMTCPARAMS_DESC((&eMTCconfig)); checkedparam_t config_check_eMTCparams[] = EMTCPARAMS_CHECK; + static_assert(sizeofArray(config_check_eMTCparams) == sizeofArray(eMTCParams), + "config_check_eMTCparams and eMTCParamsCCsParams should have the same size"); srb1_params_t srb1_params; memset((void *)&srb1_params,0,sizeof(srb1_params_t)); paramdef_t SRB1Params[] = SRB1PARAMS_DESC(srb1_params); @@ -320,6 +324,8 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc) { paramlist_def_t PLMNParamList = {ENB_CONFIG_STRING_PLMN_LIST, NULL, 0}; /* map parameter checking array instances to parameter definition array instances */ checkedparam_t config_check_PLMNParams [] = PLMNPARAMS_CHECK; + static_assert(sizeofArray(config_check_PLMNParams) == sizeofArray(PLMNParams), + "config_check_PLMNParams and PLMNParams should have the same size"); for (int I = 0; I < sizeofArray(PLMNParams); ++I) PLMNParams[I].chkPptr = &(config_check_PLMNParams[I]); @@ -1910,6 +1916,8 @@ int RCconfig_M2(MessageDef *msg_p, uint32_t i) { paramlist_def_t PLMNParamList = {ENB_CONFIG_STRING_PLMN_LIST, NULL, 0}; /* map parameter checking array instances to parameter definition array instances */ checkedparam_t config_check_PLMNParams [] = PLMNPARAMS_CHECK; + static_assert(sizeofArray(config_check_PLMNParams) == sizeofArray(PLMNParams), + "config_check_PLMNParams and PLMNParams should have the same size"); for (int I = 0; I < sizeofArray(PLMNParams); ++I) PLMNParams[I].chkPptr = &(config_check_PLMNParams[I]); @@ -2159,6 +2167,8 @@ int RCconfig_S1( paramdef_t CCsParams[] = CCPARAMS_DESC(ccparams_lte); /* map parameter checking array instances to parameter definition array instances */ checkedparam_t config_check_CCparams[] = CCPARAMS_CHECK; + static_assert(sizeofArray(config_check_CCparams) == sizeofArray(CCsParams), + "config_check_CCparams and CCsParams should have the same size"); for (int I = 0; I < sizeofArray(CCsParams); I++) { CCsParams[I].chkPptr = &(config_check_CCparams[I]); @@ -2166,6 +2176,8 @@ int RCconfig_S1( /* map parameter checking array instances to parameter definition array instances */ checkedparam_t config_check_PLMNParams [] = PLMNPARAMS_CHECK; + static_assert(sizeofArray(config_check_PLMNParams) == sizeofArray(PLMNParams), + "config_check_PLMNParams and PLMNParams should have the same size"); for (int I = 0; I < sizeofArray(PLMNParams); ++I) { PLMNParams[I].chkPptr = &(config_check_PLMNParams[I]); @@ -2413,6 +2425,8 @@ int RCconfig_X2(MessageDef *msg_p, uint32_t i) { config_get(config_get_if(), ENBSParams, sizeofArray(ENBSParams), NULL); checkedparam_t config_check_CCparams[] = CCPARAMS_CHECK; paramdef_t CCsParams[] = CCPARAMS_DESC(ccparams_lte); + static_assert(sizeofArray(config_check_CCparams) == sizeofArray(CCsParams), + "config_check_CCparams and CCsParams should have the same size"); paramlist_def_t CCsParamList = {ENB_CONFIG_STRING_COMPONENT_CARRIERS, NULL, 0}; /* map parameter checking array instances to parameter definition array instances */ @@ -2450,6 +2464,8 @@ int RCconfig_X2(MessageDef *msg_p, uint32_t i) { paramlist_def_t PLMNParamList = {ENB_CONFIG_STRING_PLMN_LIST, NULL, 0}; /* map parameter checking array instances to parameter definition array instances */ checkedparam_t config_check_PLMNParams [] = PLMNPARAMS_CHECK; + static_assert(sizeofArray(config_check_PLMNParams) == sizeofArray(PLMNParams), + "config_check_PLMNParams and PLMNParams should have the same size"); for (int I = 0; I < sizeofArray(PLMNParams); ++I) PLMNParams[I].chkPptr = &(config_check_PLMNParams[I]); diff --git a/openair2/ENB_APP/enb_paramdef.h b/openair2/ENB_APP/enb_paramdef.h index 5fd4cdce70..7bc8f677d8 100644 --- a/openair2/ENB_APP/enb_paramdef.h +++ b/openair2/ENB_APP/enb_paramdef.h @@ -749,43 +749,6 @@ typedef struct ccparams_lte_s { { { NULL } } , \ { { NULL } } , \ { { NULL } } , \ - { { NULL } } , \ - { { NULL } } , \ - { { NULL } } , \ - { { NULL } } , \ - { { NULL } } , \ - { { NULL } } , \ - { { NULL } } , \ - { { NULL } } , \ - { { NULL } } , \ - { { NULL } } , \ - { { NULL } } , \ - { { NULL } } , \ - { { NULL } } , \ - { { NULL } } , \ - { { NULL } } , \ - { { NULL } } , \ - { { NULL } } , \ - { { NULL } } , \ - { { NULL } } , \ - { { NULL } } , \ - { { NULL } } , \ - { { NULL } } , \ - { { NULL } } , \ - { { NULL } } , \ - { { NULL } } , \ - { { NULL } } , \ - { { NULL } } , \ - { { NULL } } , \ - { { NULL } } , \ - { { NULL } } , \ - { { NULL } } , \ - { { NULL } } , \ - { { NULL } } , \ - { { NULL } } , \ - { { NULL } } , \ - { { NULL } } , \ - { { NULL } } \ } /*-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------*/ diff --git a/openair2/ENB_APP/enb_paramdef_emtc.h b/openair2/ENB_APP/enb_paramdef_emtc.h index 9d7bfb98e0..52f5b2a60f 100644 --- a/openair2/ENB_APP/enb_paramdef_emtc.h +++ b/openair2/ENB_APP/enb_paramdef_emtc.h @@ -351,6 +351,7 @@ typedef struct ccparams_eMTC_s { { {NULL}} , \ { {NULL}} , \ { {NULL}} , \ + { {NULL}} , \ } // clang-format on diff --git a/openair2/GNB_APP/gnb_config.c b/openair2/GNB_APP/gnb_config.c index 7555d1f5d0..3b8981353d 100644 --- a/openair2/GNB_APP/gnb_config.c +++ b/openair2/GNB_APP/gnb_config.c @@ -1118,6 +1118,8 @@ static int read_du_cell_info(configmodule_interface_t *cfg, paramdef_t PLMNParams[] = GNBPLMNPARAMS_DESC; /* map parameter checking array instances to parameter definition array instances */ checkedparam_t config_check_PLMNParams[] = PLMNPARAMS_CHECK; + static_assert(sizeofArray(config_check_PLMNParams) == sizeofArray(PLMNParams), + "config_check_PLMNParams and PLMNParams should have the same size"); for (int I = 0; I < sizeof(PLMNParams) / sizeof(paramdef_t); ++I) PLMNParams[I].chkPptr = &(config_check_PLMNParams[I]); paramlist_def_t PLMNParamList = {GNB_CONFIG_STRING_PLMN_LIST, NULL, 0}; @@ -1151,6 +1153,8 @@ static int read_du_cell_info(configmodule_interface_t *cfg, paramdef_t SNSSAIParams[] = GNBSNSSAIPARAMS_DESC; paramlist_def_t SNSSAIParamList = {GNB_CONFIG_STRING_SNSSAI_LIST, NULL, 0}; checkedparam_t config_check_SNSSAIParams[] = SNSSAIPARAMS_CHECK; + static_assert(sizeofArray(config_check_SNSSAIParams) == sizeofArray(SNSSAIParams), + "config_check_SNSSAIParams and SNSSAIParams should have the same size"); for (int J = 0; J < sizeofArray(SNSSAIParams); ++J) SNSSAIParams[J].chkPptr = &(config_check_SNSSAIParams[J]); char snssaistr[MAX_OPTNAME_SIZE * 2 + 8]; @@ -1288,6 +1292,8 @@ void RCconfig_nr_macrlc(configmodule_interface_t *cfg) paramdef_t GNBParams[] = GNBPARAMS_DESC; /* map parameter checking array instances to parameter definition array instances */ checkedparam_t config_check_GNBParams[] = GNBPARAMS_CHECK; + static_assert(sizeofArray(config_check_GNBParams) == sizeofArray(GNBParams), + "config_check_GNBParams and GNBParams should have the same size"); for (int i = 0; i < sizeofArray(GNBParams); ++i) GNBParams[i].chkPptr = &(config_check_GNBParams[i]); config_getlist(cfg, &GNBParamList, GNBParams, sizeofArray(GNBParams), NULL); @@ -1296,6 +1302,8 @@ void RCconfig_nr_macrlc(configmodule_interface_t *cfg) paramlist_def_t MacRLC_ParamList = {CONFIG_STRING_MACRLC_LIST, NULL, 0}; /* map parameter checking array instances to parameter definition array instances */ checkedparam_t config_check_MacRLCParams[] = MACRLCPARAMS_CHECK; + static_assert(sizeofArray(config_check_MacRLCParams) == sizeofArray(MacRLC_Params), + "config_check_MacRLCParams and MacRLC_Params should have the same size"); for (int i = 0; i < sizeofArray(MacRLC_Params); ++i) MacRLC_Params[i].chkPptr = &(config_check_MacRLCParams[i]); config_getlist(config_get_if(), &MacRLC_ParamList, MacRLC_Params, sizeofArray(MacRLC_Params), NULL); @@ -1906,6 +1914,8 @@ gNB_RRC_INST *RCconfig_NRRRC() paramlist_def_t PLMNParamList = {GNB_CONFIG_STRING_PLMN_LIST, NULL, 0}; /* map parameter checking array instances to parameter definition array instances */ checkedparam_t config_check_PLMNParams [] = PLMNPARAMS_CHECK; + static_assert(sizeofArray(config_check_PLMNParams) == sizeofArray(PLMNParams), + "config_check_PLMNParams and PLMNParams should have the same size"); for (int I = 0; I < sizeofArray(PLMNParams); ++I) PLMNParams[I].chkPptr = &(config_check_PLMNParams[I]); @@ -2013,7 +2023,11 @@ int RCconfig_NR_NG(MessageDef *msg_p, uint32_t i) { paramlist_def_t SNSSAIParamList = {GNB_CONFIG_STRING_SNSSAI_LIST, NULL, 0}; /* map parameter checking array instances to parameter definition array instances */ checkedparam_t config_check_PLMNParams [] = PLMNPARAMS_CHECK; + static_assert(sizeofArray(config_check_PLMNParams) == sizeofArray(PLMNParams), + "config_check_PLMNParams and PLMNParams should have the same size"); checkedparam_t config_check_SNSSAIParams [] = SNSSAIPARAMS_CHECK; + static_assert(sizeofArray(config_check_SNSSAIParams) == sizeofArray(SNSSAIParams), + "config_check_SNSSAIParams and SNSSAIParams should have the same size"); for (int I = 0; I < sizeofArray(PLMNParams); ++I) PLMNParams[I].chkPptr = &(config_check_PLMNParams[I]); @@ -2277,6 +2291,8 @@ int RCconfig_NR_X2(MessageDef *msg_p, uint32_t i) { paramlist_def_t PLMNParamList = {GNB_CONFIG_STRING_PLMN_LIST, NULL, 0}; /* map parameter checking array instances to parameter definition array instances */ checkedparam_t config_check_PLMNParams [] = PLMNPARAMS_CHECK; + static_assert(sizeofArray(config_check_PLMNParams) == sizeofArray(PLMNParams), + "config_check_PLMNParams and PLMNParams should have the same size"); for (int I = 0; I < sizeofArray(PLMNParams); ++I) PLMNParams[I].chkPptr = &(config_check_PLMNParams[I]); diff --git a/openair2/UTIL/OPT/probe.c b/openair2/UTIL/OPT/probe.c index 25d1b6b1ec..06c02f1654 100644 --- a/openair2/UTIL/OPT/probe.c +++ b/openair2/UTIL/OPT/probe.c @@ -529,8 +529,9 @@ void trace_pdu_implementation(ws_trace_t *t) int init_opt(void) { paramdef_t opt_params[] = OPT_PARAMS_DESC ; checkedparam_t opt_checkParams[] = OPTPARAMS_CHECK_DESC; + static_assert(sizeofArray(opt_params) == sizeofArray(opt_checkParams), + "opt_params and opt_checkParams should have the same size"); int sz=sizeofArray(opt_params); - AssertFatal(sz == sizeofArray(opt_checkParams), "Error in arrays size (%d!=%lu)\n", sz, sizeofArray(opt_checkParams)); config_set_checkfunctions(opt_params, opt_checkParams, sz); config_get(config_get_if(), opt_params, sz, OPT_CONFIGPREFIX); subframesSinceCaptureStart = 0;