From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id CF97845E6F; Wed, 11 Dec 2024 03:06:54 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 33D9C40665; Wed, 11 Dec 2024 03:06:26 +0100 (CET) Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182]) by mails.dpdk.org (Postfix) with ESMTP id 785B94042C for ; Wed, 11 Dec 2024 03:06:16 +0100 (CET) Received: by linux.microsoft.com (Postfix, from userid 1213) id 35CD0204722F; Tue, 10 Dec 2024 18:06:15 -0800 (PST) DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com 35CD0204722F DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com; s=default; t=1733882775; bh=/WgJXbbKfAvUlf3cB43Yahezl3+5hDedx1rkZ5Iu68Q=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=khQY5+fdda1ifpJ3/HxGv6RIsrf+8bIDxlJOyfbQ2n+unfM5FZJ6unIavxQgZBDCB FhQA0lGwvQzyYWD6clun7OFi+3lWVgLdFBTKXdjNLduLmU6zNKbd9jk3LZyhWplkdl mND3oy99xdaX+WIgjcJYt/zx8HufizcUPTZgoj0o= From: Andre Muezerie To: Nipun Gupta , Nikhil Agarwal , Hemant Agrawal , Sachin Saxena , Rosen Xu , Chengwen Feng Cc: dev@dpdk.org, Andre Muezerie Subject: [PATCH 06/21] drivers/bus: use portable variadic macros Date: Tue, 10 Dec 2024 18:05:36 -0800 Message-Id: <1733882751-29598-7-git-send-email-andremue@linux.microsoft.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1733882751-29598-1-git-send-email-andremue@linux.microsoft.com> References: <1733882751-29598-1-git-send-email-andremue@linux.microsoft.com> X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org 1) Use portable variadic macros 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__. 2) Add "do { } while (0)" to macros used to remove logging calls, to ensure there's no code structure change when enabling/disabling logging. Signed-off-by: Andre Muezerie --- drivers/bus/cdx/cdx_logs.h | 12 ++++++------ drivers/bus/dpaa/include/fman.h | 4 ++-- drivers/bus/dpaa/rte_dpaa_logs.h | 18 +++++++++--------- drivers/bus/fslmc/fslmc_logs.h | 12 ++++++------ drivers/bus/fslmc/qbman/include/compat.h | 18 +++++++++--------- drivers/bus/ifpga/ifpga_logs.h | 16 ++++++++-------- drivers/bus/uacce/uacce.c | 8 ++++---- 7 files changed, 44 insertions(+), 44 deletions(-) diff --git a/drivers/bus/cdx/cdx_logs.h b/drivers/bus/cdx/cdx_logs.h index 18b4010746..2d5c213417 100644 --- a/drivers/bus/cdx/cdx_logs.h +++ b/drivers/bus/cdx/cdx_logs.h @@ -15,11 +15,11 @@ extern int cdx_logtype_bus; #define CDX_BUS_DEBUG(...) \ RTE_LOG_LINE_PREFIX(DEBUG, CDX_BUS, "%s(): ", __func__, __VA_ARGS__) -#define CDX_BUS_INFO(fmt, args...) \ - CDX_BUS_LOG(INFO, fmt, ## args) -#define CDX_BUS_ERR(fmt, args...) \ - CDX_BUS_LOG(ERR, fmt, ## args) -#define CDX_BUS_WARN(fmt, args...) \ - CDX_BUS_LOG(WARNING, fmt, ## args) +#define CDX_BUS_INFO(fmt, ...) \ + CDX_BUS_LOG(INFO, fmt, ## __VA_ARGS__) +#define CDX_BUS_ERR(fmt, ...) \ + CDX_BUS_LOG(ERR, fmt, ## __VA_ARGS__) +#define CDX_BUS_WARN(fmt, ...) \ + CDX_BUS_LOG(WARNING, fmt, ## __VA_ARGS__) #endif /* CDX_LOGS_H */ diff --git a/drivers/bus/dpaa/include/fman.h b/drivers/bus/dpaa/include/fman.h index 01ef503117..134f0dc8ff 100644 --- a/drivers/bus/dpaa/include/fman.h +++ b/drivers/bus/dpaa/include/fman.h @@ -477,10 +477,10 @@ extern int fman_ccsr_map_fd; #define fman_if_for_each_bpool(bp, __if) \ list_for_each_entry(bp, &(__if)->bpool_list, node) -#define FMAN_ERR(rc, fmt, args...) \ +#define FMAN_ERR(rc, fmt, ...) \ do { \ _errno = (rc); \ - RTE_LOG_LINE(ERR, DPAA_BUS, fmt "(%d)", ##args, errno); \ + RTE_LOG_LINE(ERR, DPAA_BUS, fmt "(%d)", ##__VA_ARGS__, errno); \ } while (0) #define FMAN_IP_REV_1 0xC30C4 diff --git a/drivers/bus/dpaa/rte_dpaa_logs.h b/drivers/bus/dpaa/rte_dpaa_logs.h index 1e61b4e76b..235c617edd 100644 --- a/drivers/bus/dpaa/rte_dpaa_logs.h +++ b/drivers/bus/dpaa/rte_dpaa_logs.h @@ -16,13 +16,13 @@ extern int dpaa_logtype_bus; RTE_LOG_LINE(level, DPAA_BUS, __VA_ARGS__) #ifdef RTE_LIBRTE_DPAA_DEBUG_BUS -#define DPAA_BUS_HWWARN(cond, fmt, args...) \ +#define DPAA_BUS_HWWARN(cond, fmt, ...) \ do {\ if (cond) \ - DPAA_BUS_LOG(DEBUG, "WARN: " fmt, ##args); \ + DPAA_BUS_LOG(DEBUG, "WARN: " fmt, ##__VA_ARGS__); \ } while (0) #else -#define DPAA_BUS_HWWARN(cond, fmt, args...) do { } while (0) +#define DPAA_BUS_HWWARN(cond, fmt, ...) do { } while (0) #endif #define DPAA_BUS_DEBUG(...) \ @@ -30,11 +30,11 @@ extern int dpaa_logtype_bus; #define BUS_INIT_FUNC_TRACE() DPAA_BUS_DEBUG(" >>") -#define DPAA_BUS_INFO(fmt, args...) \ - DPAA_BUS_LOG(INFO, fmt, ## args) -#define DPAA_BUS_ERR(fmt, args...) \ - DPAA_BUS_LOG(ERR, fmt, ## args) -#define DPAA_BUS_WARN(fmt, args...) \ - DPAA_BUS_LOG(WARNING, fmt, ## args) +#define DPAA_BUS_INFO(fmt, ...) \ + DPAA_BUS_LOG(INFO, fmt, ## __VA_ARGS__) +#define DPAA_BUS_ERR(fmt, ...) \ + DPAA_BUS_LOG(ERR, fmt, ## __VA_ARGS__) +#define DPAA_BUS_WARN(fmt, ...) \ + DPAA_BUS_LOG(WARNING, fmt, ## __VA_ARGS__) #endif /* _DPAA_LOGS_H_ */ diff --git a/drivers/bus/fslmc/fslmc_logs.h b/drivers/bus/fslmc/fslmc_logs.h index ac0cd3dc29..412d160d11 100644 --- a/drivers/bus/fslmc/fslmc_logs.h +++ b/drivers/bus/fslmc/fslmc_logs.h @@ -17,11 +17,11 @@ extern int dpaa2_logtype_bus; #define DPAA2_BUS_DEBUG(...) \ RTE_LOG_LINE_PREFIX(DEBUG, DPAA2_BUS, "%s(): ", __func__, __VA_ARGS__) -#define DPAA2_BUS_INFO(fmt, args...) \ - DPAA2_BUS_LOG(INFO, fmt, ## args) -#define DPAA2_BUS_ERR(fmt, args...) \ - DPAA2_BUS_LOG(ERR, fmt, ## args) -#define DPAA2_BUS_WARN(fmt, args...) \ - DPAA2_BUS_LOG(WARNING, fmt, ## args) +#define DPAA2_BUS_INFO(fmt, ...) \ + DPAA2_BUS_LOG(INFO, fmt, ## __VA_ARGS__) +#define DPAA2_BUS_ERR(fmt, ...) \ + DPAA2_BUS_LOG(ERR, fmt, ## __VA_ARGS__) +#define DPAA2_BUS_WARN(fmt, ...) \ + DPAA2_BUS_LOG(WARNING, fmt, ## __VA_ARGS__) #endif /* _FSLMC_LOGS_H_ */ diff --git a/drivers/bus/fslmc/qbman/include/compat.h b/drivers/bus/fslmc/qbman/include/compat.h index 4ac3254bc7..842b6c6b0a 100644 --- a/drivers/bus/fslmc/qbman/include/compat.h +++ b/drivers/bus/fslmc/qbman/include/compat.h @@ -30,15 +30,15 @@ typedef uint64_t dma_addr_t; /* Debugging */ -#define prflush(fmt, args...) \ +#define prflush(fmt, ...) \ do { \ - printf(fmt, ##args); \ + printf(fmt, ##__VA_ARGS__); \ fflush(stdout); \ } while (0) -#define pr_crit(fmt, args...) prflush("CRIT:" fmt, ##args) -#define pr_err(fmt, args...) prflush("ERR:" fmt, ##args) -#define pr_warn(fmt, args...) prflush("WARN:" fmt, ##args) -#define pr_info(fmt, args...) prflush(fmt, ##args) +#define pr_crit(fmt, ...) prflush("CRIT:" fmt, ##__VA_ARGS__) +#define pr_err(fmt, ...) prflush("ERR:" fmt, ##__VA_ARGS__) +#define pr_warn(fmt, ...) prflush("WARN:" fmt, ##__VA_ARGS__) +#define pr_info(fmt, ...) prflush(fmt, ##__VA_ARGS__) #ifdef RTE_LIBRTE_DPAA2_DEBUG_BUS @@ -54,7 +54,7 @@ typedef uint64_t dma_addr_t; #ifdef pr_debug #undef pr_debug #endif -#define pr_debug(fmt, args...) printf(fmt, ##args) +#define pr_debug(fmt, ...) printf(fmt, ##__VA_ARGS__) #define QBMAN_BUG_ON(c) \ do { \ static int warned_##__LINE__; \ @@ -64,8 +64,8 @@ do { \ } \ } while (0) #else -#define QBMAN_BUG_ON(c) {} -#define pr_debug(fmt, args...) {} +#define QBMAN_BUG_ON(c) do { } while (0) +#define pr_debug(...) do { } while (0) #endif /* Other miscellaneous interfaces our APIs depend on; */ diff --git a/drivers/bus/ifpga/ifpga_logs.h b/drivers/bus/ifpga/ifpga_logs.h index 154405a590..4289d9774b 100644 --- a/drivers/bus/ifpga/ifpga_logs.h +++ b/drivers/bus/ifpga/ifpga_logs.h @@ -15,13 +15,13 @@ extern int ifpga_bus_logtype; #define IFPGA_BUS_FUNC_TRACE() IFPGA_BUS_LOG(DEBUG, ">>") -#define IFPGA_BUS_DEBUG(fmt, args...) \ - IFPGA_BUS_LOG(DEBUG, fmt, ## args) -#define IFPGA_BUS_INFO(fmt, args...) \ - IFPGA_BUS_LOG(INFO, fmt, ## args) -#define IFPGA_BUS_ERR(fmt, args...) \ - IFPGA_BUS_LOG(ERR, fmt, ## args) -#define IFPGA_BUS_WARN(fmt, args...) \ - IFPGA_BUS_LOG(WARNING, fmt, ## args) +#define IFPGA_BUS_DEBUG(fmt, ...) \ + IFPGA_BUS_LOG(DEBUG, fmt, ## __VA_ARGS__) +#define IFPGA_BUS_INFO(fmt, ...) \ + IFPGA_BUS_LOG(INFO, fmt, ## __VA_ARGS__) +#define IFPGA_BUS_ERR(fmt, ...) \ + IFPGA_BUS_LOG(ERR, fmt, ## __VA_ARGS__) +#define IFPGA_BUS_WARN(fmt, ...) \ + IFPGA_BUS_LOG(WARNING, fmt, ## __VA_ARGS__) #endif /* _IFPGA_BUS_LOGS_H_ */ diff --git a/drivers/bus/uacce/uacce.c b/drivers/bus/uacce/uacce.c index c1529c38c0..9ca048122d 100644 --- a/drivers/bus/uacce/uacce.c +++ b/drivers/bus/uacce/uacce.c @@ -62,10 +62,10 @@ extern int uacce_bus_logtype; #define RTE_LOGTYPE_UACCE_BUS uacce_bus_logtype #define UACCE_BUS_LOG(level, ...) \ RTE_LOG_LINE(level, UACCE_BUS, __VA_ARGS__) -#define UACCE_BUS_ERR(fmt, args...) UACCE_BUS_LOG(ERR, fmt, ##args) -#define UACCE_BUS_WARN(fmt, args...) UACCE_BUS_LOG(WARNING, fmt, ##args) -#define UACCE_BUS_INFO(fmt, args...) UACCE_BUS_LOG(INFO, fmt, ##args) -#define UACCE_BUS_DEBUG(fmt, args...) UACCE_BUS_LOG(DEBUG, fmt, ##args) +#define UACCE_BUS_ERR(fmt, ...) UACCE_BUS_LOG(ERR, fmt, ##__VA_ARGS__) +#define UACCE_BUS_WARN(fmt, ...) UACCE_BUS_LOG(WARNING, fmt, ##__VA_ARGS__) +#define UACCE_BUS_INFO(fmt, ...) UACCE_BUS_LOG(INFO, fmt, ##__VA_ARGS__) +#define UACCE_BUS_DEBUG(fmt, ...) UACCE_BUS_LOG(DEBUG, fmt, ##__VA_ARGS__) static struct rte_devargs * -- 2.47.0.vfs.0.3