From 013400c3e10a83527713791fb139a93f4e005bce Mon Sep 17 00:00:00 2001 From: Dustin Brown Date: Thu, 16 Nov 2017 13:29:24 -0800 Subject: [PATCH] qcacmn: Add several QDF logging APIs For use by various QDF features, add the following convenience logging APIs. These APIs mirror logging helpers used by other components. * qdf_alert * qdf_err * qdf_warn * qdf_info * qdf_vtrace_msg Change-Id: I0e9194eeaf34ffca2b2130c4a7e62300e2e41ecc CRs-Fixed: 2144969 --- qdf/inc/qdf_types.h | 37 +++++++++++++++++++++++++++++++++---- qdf/linux/src/i_qdf_trace.h | 2 ++ qdf/linux/src/qdf_trace.c | 7 +++++++ 3 files changed, 42 insertions(+), 4 deletions(-) diff --git a/qdf/inc/qdf_types.h b/qdf/inc/qdf_types.h index e0c51476820d..89334bfa0739 100644 --- a/qdf/inc/qdf_types.h +++ b/qdf/inc/qdf_types.h @@ -42,6 +42,7 @@ /* Include Files */ #include +#include /* Preprocessor definitions and constants */ #define QDF_MAX_SGLIST 4 @@ -543,17 +544,45 @@ enum tQDF_GLOBAL_CON_MODE { */ void __printf(3, 4) qdf_trace_msg(QDF_MODULE_ID module, QDF_TRACE_LEVEL level, char *str_format, ...); +/** + * qdf_vtrace_msg() - the va_list version of qdf_trace_msg + * @module: the calling module's Id + * @level: the logging level to log using + * @str_format: the log format string + * @val: the va_list containing the values to format according to str_format + * + * Return: None + */ +void qdf_vtrace_msg(QDF_MODULE_ID module, QDF_TRACE_LEVEL level, + char *str_format, va_list val); #ifdef CONFIG_MCL #define qdf_print(args...) \ QDF_TRACE(QDF_MODULE_ID_QDF, QDF_TRACE_LEVEL_ERROR, ## args) -#define qdf_debug(args...) \ - QDF_TRACE(QDF_MODULE_ID_QDF, QDF_TRACE_LEVEL_DEBUG, ## args) +#define qdf_logfl(level, format, args...) \ + QDF_TRACE(QDF_MODULE_ID_QDF, level, FL(format), ## args) + +#define qdf_alert(format, args...) \ + qdf_logfl(QDF_TRACE_LEVEL_FATAL, format, ## args) +#define qdf_err(format, args...) \ + qdf_logfl(QDF_TRACE_LEVEL_ERROR, format, ## args) +#define qdf_warn(format, args...) \ + qdf_logfl(QDF_TRACE_LEVEL_WARN, format, ## args) +#define qdf_info(format, args...) \ + qdf_logfl(QDF_TRACE_LEVEL_INFO, format, ## args) +#define qdf_debug(format, args...) \ + qdf_logfl(QDF_TRACE_LEVEL_DEBUG, format, ## args) + +#else /* CONFIG_MCL */ -#else -#define qdf_debug printk #define qdf_print printk +#define qdf_alert printk +#define qdf_err printk +#define qdf_warn printk +#define qdf_info printk +#define qdf_debug printk + #endif /* CONFIG_MCL */ #define qdf_vprint __qdf_vprint diff --git a/qdf/linux/src/i_qdf_trace.h b/qdf/linux/src/i_qdf_trace.h index 8ed6b0285685..d727d705b375 100644 --- a/qdf/linux/src/i_qdf_trace.h +++ b/qdf/linux/src/i_qdf_trace.h @@ -56,6 +56,7 @@ */ #if defined(WLAN_DEBUG) || defined(DEBUG) #define QDF_TRACE qdf_trace_msg +#define QDF_VTRACE qdf_vtrace_msg #define QDF_TRACE_HEX_DUMP qdf_trace_hex_dump #define QDF_TRACE_RATE_LIMITED(rate, module, level, format, ...)\ do {\ @@ -68,6 +69,7 @@ } while (0) #else #define QDF_TRACE(arg ...) +#define QDF_VTRACE(arg ...) #define QDF_TRACE_HEX_DUMP(arg ...) #define QDF_TRACE_RATE_LIMITED(arg ...) #endif diff --git a/qdf/linux/src/qdf_trace.c b/qdf/linux/src/qdf_trace.c index eab0d013c13e..231cfa03e7d6 100644 --- a/qdf/linux/src/qdf_trace.c +++ b/qdf/linux/src/qdf_trace.c @@ -321,6 +321,13 @@ void qdf_trace_msg(QDF_MODULE_ID module, QDF_TRACE_LEVEL level, } EXPORT_SYMBOL(qdf_trace_msg); +void qdf_vtrace_msg(QDF_MODULE_ID module, QDF_TRACE_LEVEL level, + char *str_format, va_list val) +{ + qdf_trace_msg_cmn(qdf_pidx, module, level, str_format, val); +} +EXPORT_SYMBOL(qdf_vtrace_msg); + #define ROW_SIZE 16 /* Buffer size = data bytes(2 hex chars plus space) + NULL */ #define BUFFER_SIZE ((ROW_SIZE * 3) + 1)