[PATCH v2 06/14] drivers/common: use portable variadic macros
Andre Muezerie
andremue at linux.microsoft.com
Wed Dec 11 23:07:16 CET 2024
Many places are using a GCC extension related to variadic macros,
where a name prepends the ellipsis. This results in a warning like
the one below when compiling the code with MSVC:
app\test-pmd\testpmd.h(1314): error C2608:
invalid token '...' in macro parameter list
Variadic macros became a standard part of the C language with C99.
GCC, Clang and MSVC handle them properly.
The fix is to remove the prefix name (args... becomes ...) and use
__VA_ARGS__.
Signed-off-by: Andre Muezerie <andremue at linux.microsoft.com>
---
drivers/common/dpaax/compat.h | 16 ++++++++--------
drivers/common/dpaax/dpaax_logs.h | 18 +++++++++---------
drivers/common/idpf/base/idpf_osdep.h | 8 +++++---
3 files changed, 22 insertions(+), 20 deletions(-)
diff --git a/drivers/common/dpaax/compat.h b/drivers/common/dpaax/compat.h
index 7c8d82c2b2..a7df70d5e6 100644
--- a/drivers/common/dpaax/compat.h
+++ b/drivers/common/dpaax/compat.h
@@ -70,28 +70,28 @@
#define ARRAY_SIZE(a) (sizeof(a) / sizeof((a)[0]))
/* Debugging */
-#define prflush(fmt, args...) \
+#define prflush(fmt, ...) \
do { \
- printf(fmt, ##args); \
+ printf(fmt, ##__VA_ARGS__); \
fflush(stdout); \
} while (0)
#ifndef pr_crit
-#define pr_crit(fmt, args...) prflush("CRIT:" fmt, ##args)
+#define pr_crit(fmt, ...) prflush("CRIT:" fmt, ##__VA_ARGS__)
#endif
#ifndef pr_err
-#define pr_err(fmt, args...) prflush("ERR:" fmt, ##args)
+#define pr_err(fmt, ...) prflush("ERR:" fmt, ##__VA_ARGS__)
#endif
#ifndef pr_warn
-#define pr_warn(fmt, args...) prflush("WARN:" fmt, ##args)
+#define pr_warn(fmt, ...) prflush("WARN:" fmt, ##__VA_ARGS__)
#endif
#ifndef pr_info
-#define pr_info(fmt, args...) prflush(fmt, ##args)
+#define pr_info(fmt, ...) prflush(fmt, ##__VA_ARGS__)
#endif
#ifndef pr_debug
#ifdef RTE_LIBRTE_DPAA_DEBUG_BUS
-#define pr_debug(fmt, args...) printf(fmt, ##args)
+#define pr_debug(fmt, ...) printf(fmt, ##__VA_ARGS__)
#else
-#define pr_debug(fmt, args...) {}
+#define pr_debug(fmt, ...) {}
#endif
#endif
diff --git a/drivers/common/dpaax/dpaax_logs.h b/drivers/common/dpaax/dpaax_logs.h
index 6ed29fb2ea..90f0c98863 100644
--- a/drivers/common/dpaax/dpaax_logs.h
+++ b/drivers/common/dpaax/dpaax_logs.h
@@ -11,13 +11,13 @@ extern int dpaax_logger;
#define RTE_LOGTYPE_DPAAX_LOGGER dpaax_logger
#ifdef RTE_LIBRTE_DPAAX_DEBUG
-#define DPAAX_HWWARN(cond, fmt, args...) \
+#define DPAAX_HWWARN(cond, fmt, ...) \
do {\
if (cond) \
- DPAAX_LOG(DEBUG, "WARN: " fmt, ##args); \
+ DPAAX_LOG(DEBUG, "WARN: " fmt, ##__VA_ARGS__); \
} while (0)
#else
-#define DPAAX_HWWARN(cond, fmt, args...) do { } while (0)
+#define DPAAX_HWWARN(cond, fmt, ...) do { } while (0)
#endif
#define DPAAX_LOG(level, ...) \
@@ -27,11 +27,11 @@ extern int dpaax_logger;
#define DPAAX_DEBUG(...) \
RTE_LOG_LINE_PREFIX(DEBUG, DPAAX_LOGGER, "%s(): ", __func__, __VA_ARGS__)
-#define DPAAX_INFO(fmt, args...) \
- DPAAX_LOG(INFO, fmt, ## args)
-#define DPAAX_ERR(fmt, args...) \
- DPAAX_LOG(ERR, fmt, ## args)
-#define DPAAX_WARN(fmt, args...) \
- DPAAX_LOG(WARNING, fmt, ## args)
+#define DPAAX_INFO(fmt, ...) \
+ DPAAX_LOG(INFO, fmt, ## __VA_ARGS__)
+#define DPAAX_ERR(fmt, ...) \
+ DPAAX_LOG(ERR, fmt, ## __VA_ARGS__)
+#define DPAAX_WARN(fmt, ...) \
+ DPAAX_LOG(WARNING, fmt, ## __VA_ARGS__)
#endif /* _DPAAX_LOGS_H_ */
diff --git a/drivers/common/idpf/base/idpf_osdep.h b/drivers/common/idpf/base/idpf_osdep.h
index cf9e553906..250f0ec500 100644
--- a/drivers/common/idpf/base/idpf_osdep.h
+++ b/drivers/common/idpf/base/idpf_osdep.h
@@ -42,7 +42,7 @@ typedef uint64_t s64;
typedef struct idpf_lock idpf_lock;
#define __iomem
-#define hw_dbg(hw, S, A...) do {} while (0)
+#define hw_dbg(hw, S, ...) do {} while (0)
#define upper_32_bits(n) ((u32)(((n) >> 16) >> 16))
#define lower_32_bits(n) ((u32)(n))
#define low_16_bits(x) ((x) & 0xFFFF)
@@ -122,8 +122,10 @@ typedef struct idpf_lock idpf_lock;
##__VA_ARGS__); \
} while (0)
-#define idpf_info(hw, fmt, args...) idpf_debug(hw, IDPF_DBG_ALL, fmt, ##args)
-#define idpf_warn(hw, fmt, args...) idpf_debug(hw, IDPF_DBG_ALL, fmt, ##args)
+#define idpf_info(hw, fmt, ...) \
+ idpf_debug(hw, IDPF_DBG_ALL, fmt, ##__VA_ARGS__)
+#define idpf_warn(hw, fmt, ...) \
+ idpf_debug(hw, IDPF_DBG_ALL, fmt, ##__VA_ARGS__)
#define idpf_debug_array(hw, type, rowsize, groupsize, buf, len) \
do { \
struct idpf_hw *hw_l = hw; \
--
2.47.0.vfs.0.3
More information about the dev
mailing list