[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <1579775551-22659-2-git-send-email-rondi@mellanox.com>
Date: Thu, 23 Jan 2020 12:32:26 +0200
From: Ron Diskin <rondi@...lanox.com>
To: Stephen Hemminger <stephen@...workplumber.org>,
David Ahern <dsahern@...il.com>
Cc: Jiri Pirko <jiri@...lanox.com>, Moshe Shemesh <moshe@...lanox.com>,
netdev@...r.kernel.org, Ron Diskin <rondi@...lanox.com>
Subject: [PATCH iproute2 1/6] json_print: Introduce print_#type_name_value
Until now print_#type functions supported printing constant names and
unknown (variable) values only.
Add functions to allow printing when the name is also sent to the
function as a variable.
Signed-off-by: Ron Diskin <rondi@...lanox.com>
Reviewed-by: Moshe Shemesh <moshe@...lanox.com>
Reviewed-by: Jiri Pirko <jiri@...lanox.com>
---
include/json_print.h | 7 +++++++
lib/json_print.c | 13 +++++++++++++
2 files changed, 20 insertions(+)
diff --git a/include/json_print.h b/include/json_print.h
index 6695654f..fd76cf75 100644
--- a/include/json_print.h
+++ b/include/json_print.h
@@ -72,4 +72,11 @@ _PRINT_FUNC(lluint, unsigned long long)
_PRINT_FUNC(float, double)
#undef _PRINT_FUNC
+#define _PRINT_NAME_VALUE_FUNC(type_name, type, format_char) \
+ void print_##type_name##_name_value(const char *name, type value); \
+
+_PRINT_NAME_VALUE_FUNC(uint, unsigned int, u)
+_PRINT_NAME_VALUE_FUNC(string, const char*, s)
+#undef _PRINT_NAME_VALUE_FUNC
+
#endif /* _JSON_PRINT_H_ */
diff --git a/lib/json_print.c b/lib/json_print.c
index 43ea69bb..fb5f0e5d 100644
--- a/lib/json_print.c
+++ b/lib/json_print.c
@@ -127,6 +127,19 @@ _PRINT_FUNC(lluint, unsigned long long);
_PRINT_FUNC(float, double);
#undef _PRINT_FUNC
+#define _PRINT_NAME_VALUE_FUNC(type_name, type, format_char) \
+ void print_##type_name##_name_value(const char *name, type value)\
+ { \
+ SPRINT_BUF(format); \
+ \
+ snprintf(format, SPRINT_BSIZE, \
+ "%s %%"#format_char, name); \
+ print_##type_name(PRINT_ANY, name, format, value); \
+ }
+_PRINT_NAME_VALUE_FUNC(uint, unsigned int, u);
+_PRINT_NAME_VALUE_FUNC(string, const char*, s);
+#undef _PRINT_NAME_VALUE_FUNC
+
void print_color_string(enum output_type type,
enum color_attr color,
const char *key,
--
2.19.1
Powered by blists - more mailing lists