1 | /* SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) */ |
2 | // Copyright (C) 2018 Facebook |
3 | |
4 | #ifndef _NETLINK_DUMPER_H_ |
5 | #define _NETLINK_DUMPER_H_ |
6 | |
7 | #define NET_START_OBJECT \ |
8 | { \ |
9 | if (json_output) \ |
10 | jsonw_start_object(json_wtr); \ |
11 | } |
12 | |
13 | #define NET_START_OBJECT_NESTED(name) \ |
14 | { \ |
15 | if (json_output) { \ |
16 | jsonw_name(json_wtr, name); \ |
17 | jsonw_start_object(json_wtr); \ |
18 | } else { \ |
19 | fprintf(stdout, "%s {", name); \ |
20 | } \ |
21 | } |
22 | |
23 | #define NET_START_OBJECT_NESTED2 \ |
24 | { \ |
25 | if (json_output) \ |
26 | jsonw_start_object(json_wtr); \ |
27 | else \ |
28 | fprintf(stdout, "{"); \ |
29 | } |
30 | |
31 | #define NET_END_OBJECT_NESTED \ |
32 | { \ |
33 | if (json_output) \ |
34 | jsonw_end_object(json_wtr); \ |
35 | else \ |
36 | fprintf(stdout, "}"); \ |
37 | } |
38 | |
39 | #define NET_END_OBJECT \ |
40 | { \ |
41 | if (json_output) \ |
42 | jsonw_end_object(json_wtr); \ |
43 | } |
44 | |
45 | #define NET_END_OBJECT_FINAL \ |
46 | { \ |
47 | if (json_output) \ |
48 | jsonw_end_object(json_wtr); \ |
49 | else \ |
50 | fprintf(stdout, "\n"); \ |
51 | } |
52 | |
53 | #define NET_START_ARRAY(name, fmt_str) \ |
54 | { \ |
55 | if (json_output) { \ |
56 | jsonw_name(json_wtr, name); \ |
57 | jsonw_start_array(json_wtr); \ |
58 | } else { \ |
59 | fprintf(stdout, fmt_str, name); \ |
60 | } \ |
61 | } |
62 | |
63 | #define NET_END_ARRAY(endstr) \ |
64 | { \ |
65 | if (json_output) \ |
66 | jsonw_end_array(json_wtr); \ |
67 | else \ |
68 | fprintf(stdout, "%s", endstr); \ |
69 | } |
70 | |
71 | #define NET_DUMP_UINT(name, fmt_str, val) \ |
72 | { \ |
73 | if (json_output) \ |
74 | jsonw_uint_field(json_wtr, name, val); \ |
75 | else \ |
76 | fprintf(stdout, fmt_str, val); \ |
77 | } |
78 | |
79 | #define NET_DUMP_UINT_ONLY(str) \ |
80 | { \ |
81 | if (json_output) \ |
82 | jsonw_uint(json_wtr, str); \ |
83 | else \ |
84 | fprintf(stdout, "%u ", str); \ |
85 | } |
86 | |
87 | #define NET_DUMP_STR(name, fmt_str, str) \ |
88 | { \ |
89 | if (json_output) \ |
90 | jsonw_string_field(json_wtr, name, str);\ |
91 | else \ |
92 | fprintf(stdout, fmt_str, str); \ |
93 | } |
94 | |
95 | #define NET_DUMP_STR_ONLY(str) \ |
96 | { \ |
97 | if (json_output) \ |
98 | jsonw_string(json_wtr, str); \ |
99 | else \ |
100 | fprintf(stdout, "%s ", str); \ |
101 | } |
102 | |
103 | #endif |
104 | |