2 * netlink/netlink-types.h Netlink Types
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
9 * Copyright (c) 2003-2006 Thomas Graf <tgraf@suug.ch>
12 #ifndef __NETLINK_TYPES_H_
13 #define __NETLINK_TYPES_H_
18 * Dumping types (dp_type)
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_ENV
, /**< Dump all attribtues as env variables */
28 #define NL_DUMP_MAX (__NL_DUMP_MAX - 1)
37 * Specifies the type of dump that is requested.
39 enum nl_dump_type dp_type
;
42 * Specifies the number of whitespaces to be put in front
43 * of every new line (indentation).
48 * Causes the cache index to be printed for each element.
53 * Causes each element to be prefixed with the message type.
58 * A callback invoked for output
60 * Passed arguments are:
61 * - dumping parameters
62 * - string to append to the output
64 void (*dp_cb
)(struct nl_dump_params
*, char *);
67 * A callback invoked for every new line, can be used to
68 * customize the indentation.
70 * Passed arguments are:
71 * - dumping parameters
72 * - line number starting from 0
74 void (*dp_nl_cb
)(struct nl_dump_params
*, int);
77 * User data pointer, can be used to pass data to callbacks.
82 * File descriptor the dumping output should go to
87 * Alternatively the output may be redirected into a buffer
92 * Length of the buffer dp_buf
98 * Set if a dump was performed prior to the actual dump handler.
104 * Owned by the current caller
108 unsigned int dp_line
;
112 #define __extension__
115 #define min_t(type,x,y) \
116 __extension__({ type __x = (x); type __y = (y); __x < __y ? __x: __y; })
117 #define max_t(type,x,y) \
118 __extension__({ type __x = (x); type __y = (y); __x > __y ? __x: __y; })