[PATCH v4 00/22] stop using variadic argument pack extension
Tyler Retzlaff
roretzla at linux.microsoft.com
Thu Feb 29 20:53:31 CET 2024
RTE_LOG_LINE cannot be augmented with a prefix format and arguments
without the user of RTE_LOG_LINE using the args... and ## args compiler
extension to conditionally remove trailing comma when the macro receives
only a single argument.
Provide a new/similar macro RTE_LOG_LINE_PREFIX that accepts the prefix
format and arguments as separate parameters allowing them to be expanded
at the correct locations inside of RTE_FMT() allowing the rest of the
non-prefix format string and arguments to be collapsed to the argument
pack which can be directly forwarded with __VA_ARGS__ avoiding the need
for conditional comma removal.
I've done my best to manually check expansions (preprocessed) and compiled
printf of the logs to validate correct output.
v4:
* remove unintended addition of prefix to bpf log helper.
* use RTE_LOG_LINE_PREFIX in other places using RTE_FMT_HEAD
and RTE_FMT_TAIL.
* add a checkpatch check to prevent reintroduction of ##args.
v3:
* remove leading _ from RTE_LOG_COMMA the macro is not internal
* add doxygen comment for existing RTE_LOG{,DP}_LINE function-like
macros, based on RTE_LOG{,DP} comments.
* add doxygen comment for new RTE_LOG{,DP}_LINE_PREFIX function-like
macros, based on RTE_LOG{,DP} comments.
* merge 2 vhost patches into a single patch (mistake in previous
submission)
v2:
* revamp entire series to be ISO C99 compliant, stop using variadic
argument pack extension.
Tyler Retzlaff (22):
log: add a per line log helper with parameterized prefix
cfgfile: stop using variadic argument pack extension
cmdline: stop using variadic argument pack extension
compressdev: stop using variadic argument pack extension
metrics: stop using variadic argument pack extension
mldev: stop using variadic argument pack extension
net: stop using variadic argument pack extension
pdump: stop using variadic argument pack extension
power: stop using variadic argument pack extension
rawdev: stop using variadic argument pack extension
rcu: stop using variadic argument pack extension
stack: stop using variadic argument pack extension
eal: stop using variadic argument pack extension
vhost: stop using variadic argument pack extension
ip_frag: stop using variadic argument pack extension
bpf: stop using variadic argument pack extension
cryptodev: stop using variadic argument pack extension
eventdev: stop using variadic argument pack extension
graph: stop using variadic argument pack extension
member: stop using variadic argument pack extension
node: stop using variadic argument pack extension
devtools: forbid use argument variadic pack extension
devtools/checkpatches.sh | 8 +++
lib/bpf/bpf_impl.h | 4 +-
lib/cfgfile/rte_cfgfile.c | 5 +-
lib/cmdline/cmdline_parse.c | 2 +-
lib/cmdline/cmdline_parse_num.c | 4 +-
lib/compressdev/rte_compressdev_internal.h | 4 +-
lib/cryptodev/rte_cryptodev.h | 15 ++---
lib/eal/common/eal_trace.h | 8 +--
lib/eal/windows/include/rte_windows.h | 5 +-
lib/eventdev/eventdev_pmd.h | 10 ++-
lib/eventdev/rte_event_timer_adapter.c | 5 +-
lib/graph/graph_private.h | 5 +-
lib/ip_frag/ip_frag_common.h | 4 +-
lib/log/rte_log.h | 97 ++++++++++++++++++++++++++++++
lib/member/member.h | 5 +-
lib/metrics/rte_metrics_telemetry.c | 12 ++--
lib/mldev/rte_mldev.h | 4 +-
lib/net/rte_net_crc.c | 4 +-
lib/node/node_private.h | 6 +-
lib/pdump/rte_pdump.c | 4 +-
lib/power/power_common.h | 6 +-
lib/rawdev/rte_rawdev_pmd.h | 17 +++---
lib/rcu/rte_rcu_qsbr.c | 4 +-
lib/rcu/rte_rcu_qsbr.h | 12 ++--
lib/stack/stack_pvt.h | 16 ++---
lib/vhost/vhost.h | 8 +--
lib/vhost/vhost_crypto.c | 21 ++++---
27 files changed, 196 insertions(+), 99 deletions(-)
--
1.8.3.1
More information about the dev
mailing list