cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

netlink_dumper.h (1866B)


      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_STR(name, fmt_str, str)		\
     80{							\
     81	if (json_output)				\
     82		jsonw_string_field(json_wtr, name, str);\
     83	else						\
     84		fprintf(stdout, fmt_str, str);		\
     85}
     86
     87#define NET_DUMP_STR_ONLY(str)				\
     88{							\
     89	if (json_output)				\
     90		jsonw_string(json_wtr, str);		\
     91	else						\
     92		fprintf(stdout, "%s ", str);		\
     93}
     94
     95#endif