libnl  3.6.0
types.h
1 /* SPDX-License-Identifier: LGPL-2.1-only */
2 /*
3  * Copyright (c) 2003-2012 Thomas Graf <tgraf@suug.ch>
4  */
5 
6 #ifndef __NETLINK_TYPES_H_
7 #define __NETLINK_TYPES_H_
8 
9 #include <stdio.h>
10 
11 /**
12  * @ingroup utils
13  * Enumeration of dumping variations (dp_type)
14  */
16  NL_DUMP_LINE, /**< Dump object briefly on one line */
17  NL_DUMP_DETAILS, /**< Dump all attributes but no statistics */
18  NL_DUMP_STATS, /**< Dump all attributes including statistics */
19  __NL_DUMP_MAX,
20 };
21 #define NL_DUMP_MAX (__NL_DUMP_MAX - 1)
22 
23 /**
24  * @ingroup utils
25  * Dumping parameters
26  */
28 {
29  /**
30  * Specifies the type of dump that is requested.
31  */
32  enum nl_dump_type dp_type;
33 
34  /**
35  * Specifies the number of whitespaces to be put in front
36  * of every new line (indentation).
37  */
38  int dp_prefix;
39 
40  /**
41  * Causes the cache index to be printed for each element.
42  */
44 
45  /**
46  * Causes each element to be prefixed with the message type.
47  */
49 
50  /**
51  * A callback invoked for output
52  *
53  * Passed arguments are:
54  * - dumping parameters
55  * - string to append to the output
56  */
57  void (*dp_cb)(struct nl_dump_params *, char *);
58 
59  /**
60  * A callback invoked for every new line, can be used to
61  * customize the indentation.
62  *
63  * Passed arguments are:
64  * - dumping parameters
65  * - line number starting from 0
66  */
67  void (*dp_nl_cb)(struct nl_dump_params *, int);
68 
69  /**
70  * User data pointer, can be used to pass data to callbacks.
71  */
72  void *dp_data;
73 
74  /**
75  * File descriptor the dumping output should go to
76  */
77  FILE * dp_fd;
78 
79  /**
80  * Alternatively the output may be redirected into a buffer
81  */
82  char * dp_buf;
83 
84  /**
85  * Length of the buffer dp_buf
86  */
87  size_t dp_buflen;
88 
89  /**
90  * PRIVATE
91  * Set if a dump was performed prior to the actual dump handler.
92  */
94 
95  /**
96  * PRIVATE
97  * Owned by the current caller
98  */
99  int dp_ivar;
100 
101  unsigned int dp_line;
102 };
103 
104 #endif
nl_dump_type
Enumeration of dumping variations (dp_type)
Definition: types.h:15
@ NL_DUMP_STATS
Dump all attributes including statistics.
Definition: types.h:18
@ NL_DUMP_LINE
Dump object briefly on one line.
Definition: types.h:16
@ NL_DUMP_DETAILS
Dump all attributes but no statistics.
Definition: types.h:17
Dumping parameters.
Definition: types.h:28
int dp_pre_dump
PRIVATE Set if a dump was performed prior to the actual dump handler.
Definition: types.h:93
void * dp_data
User data pointer, can be used to pass data to callbacks.
Definition: types.h:72
int dp_print_index
Causes the cache index to be printed for each element.
Definition: types.h:43
void(* dp_cb)(struct nl_dump_params *, char *)
A callback invoked for output.
Definition: types.h:57
size_t dp_buflen
Length of the buffer dp_buf.
Definition: types.h:87
int dp_prefix
Specifies the number of whitespaces to be put in front of every new line (indentation).
Definition: types.h:38
int dp_dump_msgtype
Causes each element to be prefixed with the message type.
Definition: types.h:48
char * dp_buf
Alternatively the output may be redirected into a buffer.
Definition: types.h:82
enum nl_dump_type dp_type
Specifies the type of dump that is requested.
Definition: types.h:32
int dp_ivar
PRIVATE Owned by the current caller.
Definition: types.h:99
FILE * dp_fd
File descriptor the dumping output should go to.
Definition: types.h:77
void(* dp_nl_cb)(struct nl_dump_params *, int)
A callback invoked for every new line, can be used to customize the indentation.
Definition: types.h:67