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