104 lines · c
1/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) */2// Copyright (C) 2018 Facebook3 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#endif104