Clean up logging module debug flags
cleanup debug/dump flags by avoiding repetitions in the source code and enable compiler checks. Add a help text if we set a wrong debug trace option.
This commit is contained in:
committed by
Robert Schmidt
parent
ca37e0c123
commit
536b5d8760
+60
-30
@@ -88,7 +88,7 @@ extern "C" {
|
||||
#define NUM_LOG_LEVEL 6 /*!< \brief the number of message levels users have with LOG (OAILOG_DISABLE is not available to user as a level, so it is not included)*/
|
||||
/** @}*/
|
||||
|
||||
#define SET_LOG_OPTION(O) g_log->flag = (g_log->flag | O)
|
||||
#define SET_LOG_OPTION(O) g_log->flag = (g_log->flag | O)
|
||||
#define CLEAR_LOG_OPTION(O) g_log->flag = (g_log->flag & (~O))
|
||||
|
||||
/** @defgroup macros to identify a debug entity
|
||||
@@ -99,28 +99,37 @@ extern "C" {
|
||||
* server.
|
||||
* @brief
|
||||
* @{*/
|
||||
#define DEBUG_PRACH (1<<0)
|
||||
#define DEBUG_RU (1<<1)
|
||||
#define DEBUG_UE_PHYPROC (1<<2)
|
||||
#define DEBUG_LTEESTIM (1<<3)
|
||||
#define DEBUG_DLCELLSPEC (1<<4)
|
||||
#define DEBUG_ULSCH (1<<5)
|
||||
#define DEBUG_RRC (1<<6)
|
||||
#define DEBUG_PDCP (1<<7)
|
||||
#define DEBUG_DFT (1<<8)
|
||||
#define DEBUG_ASN1 (1<<9)
|
||||
#define DEBUG_CTRLSOCKET (1<<10)
|
||||
#define DEBUG_SECURITY (1<<11)
|
||||
#define DEBUG_NAS (1<<12)
|
||||
#define DEBUG_RLC (1<<13)
|
||||
#define DEBUG_DLSCH_DECOD (1<<14)
|
||||
#define UE_TIMING (1<<20)
|
||||
|
||||
#define SET_LOG_DEBUG(B) g_log->debug_mask = (g_log->debug_mask | B)
|
||||
#define CLEAR_LOG_DEBUG(B) g_log->debug_mask = (g_log->debug_mask & (~B))
|
||||
#define FOREACH_FLAG(FLAG_DEF) \
|
||||
FLAG_DEF(PRACH) \
|
||||
FLAG_DEF(UE_PHYPROC) \
|
||||
FLAG_DEF(LTEESTIM) \
|
||||
FLAG_DEF(DLCELLSPEC) \
|
||||
FLAG_DEF(ULSCH) \
|
||||
FLAG_DEF(RRC) \
|
||||
FLAG_DEF(PDCP) \
|
||||
FLAG_DEF(DFT) \
|
||||
FLAG_DEF(ASN1) \
|
||||
FLAG_DEF(CTRLSOCKET) \
|
||||
FLAG_DEF(SECURITY) \
|
||||
FLAG_DEF(NAS) \
|
||||
FLAG_DEF(DLSCH_DECOD) \
|
||||
FLAG_DEF(UE_TIMING) \
|
||||
FLAG_DEF(F1AP)
|
||||
|
||||
#define SET_LOG_DUMP(B) g_log->dump_mask = (g_log->dump_mask | B)
|
||||
#define CLEAR_LOG_DUMP(B) g_log->dump_mask = (g_log->dump_mask & (~B))
|
||||
#define FLAG_BITF(flag) uint64_t DEBUG_##flag: 1;
|
||||
typedef struct {
|
||||
FOREACH_FLAG(FLAG_BITF)
|
||||
} debug_flags_t;
|
||||
|
||||
#define FLAG_TEXT(flag) #flag,
|
||||
static const char *const flag_name[] = {FOREACH_FLAG(FLAG_TEXT) ""};
|
||||
|
||||
#define SET_LOG_DEBUG(B) g_log->debug_mask.B = true
|
||||
#define CLEAR_LOG_DEBUG(B) g_log->debug_mask.B = false
|
||||
|
||||
#define SET_LOG_DUMP(B) g_log->dump_mask.B = true
|
||||
#define CLEAR_LOG_DUMP(B) g_log->dump_mask.B = false
|
||||
|
||||
#define FOREACH_COMP(COMP_DEF) \
|
||||
COMP_DEF(PHY, log) \
|
||||
@@ -215,8 +224,8 @@ typedef struct {
|
||||
char level2string[NUM_LOG_LEVEL];
|
||||
int flag;
|
||||
char *filelog_name;
|
||||
uint64_t debug_mask;
|
||||
uint64_t dump_mask;
|
||||
debug_flags_t debug_mask;
|
||||
debug_flags_t dump_mask;
|
||||
} log_t;
|
||||
|
||||
#ifdef LOG_MAIN
|
||||
@@ -230,7 +239,28 @@ extern "C" {
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#define FLAG_DEBUG_SET(flag) \
|
||||
if (strcmp(name, #flag) == 0) { \
|
||||
g_log->debug_mask.DEBUG_##flag = val; \
|
||||
return true; \
|
||||
};
|
||||
static inline bool set_log_debug(char *name, bool val)
|
||||
{
|
||||
FOREACH_FLAG(FLAG_DEBUG_SET);
|
||||
printf("Error: setting log debug of %s option, not existing\n", name);
|
||||
return false;
|
||||
}
|
||||
#define FLAG_DUMP_SET(flag) \
|
||||
if (strcmp(name, #flag) == 0) { \
|
||||
g_log->dump_mask.DEBUG_##flag = val; \
|
||||
return true; \
|
||||
};
|
||||
static inline bool set_log_dump(char *name, bool val)
|
||||
{
|
||||
FOREACH_FLAG(FLAG_DUMP_SET);
|
||||
printf("Error: setting log dump of %s option, not existing\n", name);
|
||||
return false;
|
||||
}
|
||||
/*----------------------------------------------------------------------------*/
|
||||
int logInit (void);
|
||||
void logTerm (void);
|
||||
@@ -418,15 +448,15 @@ int32_t write_file_matlab(const char *fname, const char *vname, void *data, int
|
||||
/* macro used to dump a buffer or a message as in openair2/RRC/LTE/RRC_eNB.c, replaces LOG_F macro */
|
||||
#define LOG_DUMPMSG(c, f, b, s, x...) \
|
||||
do { \
|
||||
if (g_log->dump_mask & f) \
|
||||
if (g_log->dump_mask.f) \
|
||||
log_dump(c, b, s, LOG_DUMP_CHAR, x); \
|
||||
} while (0)
|
||||
|
||||
/* bitmask dependent macros, to isolate debugging code */
|
||||
#define LOG_DEBUGFLAG(D) (g_log->debug_mask & D)
|
||||
#define LOG_DEBUGFLAG(D) (g_log->debug_mask.D)
|
||||
|
||||
/* bitmask dependent macros, to generate debug file such as matlab file or message dump */
|
||||
#define LOG_DUMPFLAG(D) (g_log->dump_mask & D)
|
||||
#define LOG_DUMPFLAG(D) (g_log->dump_mask.D)
|
||||
|
||||
#define LOG_M(file, vector, data, len, dec, format) \
|
||||
do { \
|
||||
@@ -529,11 +559,11 @@ int32_t write_file_matlab(const char *fname, const char *vname, void *data, int
|
||||
} while (0)
|
||||
|
||||
#define nfapi_log(FILE, FNC, LN, COMP, LVL, FMT...)
|
||||
#define LOG_DEBUGFLAG(D) (g_log->debug_mask & D)
|
||||
#define LOG_DUMPFLAG(D) (g_log->dump_mask & D)
|
||||
#define LOG_DEBUGFLAG(D) (g_log->debug_mask.D)
|
||||
#define LOG_DUMPFLAG(D) (g_log->dump_mask.D)
|
||||
#define LOG_DUMPMSG(c, f, b, s, x...) \
|
||||
do { \
|
||||
if (g_log->dump_mask & f) \
|
||||
if (g_log->dump_mask.f) \
|
||||
log_dump(c, b, s, LOG_DUMP_CHAR, x); \
|
||||
} while (0) /* */
|
||||
|
||||
|
||||
Reference in New Issue
Block a user