diff options
author | Ron Diskin <rondi@mellanox.com> | 2020-01-23 12:32:26 +0200 |
---|---|---|
committer | Stephen Hemminger <stephen@networkplumber.org> | 2020-01-27 05:43:54 -0800 |
commit | 31ca29b2bec4020929686eb240fa1abd963819a4 (patch) | |
tree | c10801662c79c5b24c2bbecd555059d56012a82f | |
parent | 919046d326bacd3d5fd76801cc71294fe2cfcbc7 (diff) | |
download | iproute2-31ca29b2bec4020929686eb240fa1abd963819a4.tar.gz |
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@mellanox.com>
Reviewed-by: Moshe Shemesh <moshe@mellanox.com>
Reviewed-by: Jiri Pirko <jiri@mellanox.com>
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
-rw-r--r-- | include/json_print.h | 7 | ||||
-rw-r--r-- | lib/json_print.c | 13 |
2 files changed, 20 insertions, 0 deletions
diff --git a/include/json_print.h b/include/json_print.h index 6695654f7..fcc28d5e2 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 43ea69bbf..fb5f0e5d9 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, |