forked from tbarbette/fastclick
-
Notifications
You must be signed in to change notification settings - Fork 0
/
config.h.in
372 lines (284 loc) · 10.8 KB
/
config.h.in
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
/* Process this file with configure to produce config.h. -*- mode: c -*- */
#ifndef CLICK_CONFIG_H
#define CLICK_CONFIG_H
/* Define to 1 if type `char' is unsigned and you are not using gcc. */
#ifndef __CHAR_UNSIGNED__
# undef __CHAR_UNSIGNED__
#endif
#define CLICK_BIG_ENDIAN 4321
#define CLICK_LITTLE_ENDIAN 1234
#define CLICK_NO_ENDIAN 0
/* Define to byte order of target machine. */
#undef CLICK_BYTE_ORDER
/* Define to enable debugging support for Click scheduling. */
#undef CLICK_DEBUG_SCHEDULING
/* Define for Click memory allocation debugging. */
#undef CLICK_DMALLOC
/* Define to add epoch tracking to hash iterators. */
#undef CLICK_HASH_ITERATOR_EPOCHS
/* Define for forcing expensive packet operations. */
#undef CLICK_FORCE_EXPENSIVE
/* Define to generate smaller object files. */
#undef CLICK_OPTIMIZE_SIZE
/* Version number of package */
#undef CLICK_VERSION
/* Version number of package, in CLICK_MAKE_VERSION_CODE format */
#undef CLICK_VERSION_CODE
/* Define to desired statistics level. */
#undef CLICK_STATS
/* Define if PollDevice should run fast to get good benchmark numbers */
#undef CLICK_WARP9
/* Define if you have the __builtin_clz function. */
#undef HAVE___BUILTIN_CLZ
/* Define if you have the __builtin_clzl function. */
#undef HAVE___BUILTIN_CLZL
/* Define if you have the __builtin_clzll function. */
#undef HAVE___BUILTIN_CLZLL
/* Define if you have the __builtin_ffs function. */
#undef HAVE___BUILTIN_FFS
/* Define if you have the __builtin_ffsl function. */
#undef HAVE___BUILTIN_FFSL
/* Define if you have the __builtin_ffsll function. */
#undef HAVE___BUILTIN_FFSLL
/* Define if you have the __has_trivial_copy compiler intrinsic. */
#undef HAVE___HAS_TRIVIAL_COPY
/* Define if you have the __sync_synchronize function. */
#undef HAVE___SYNC_SYNCHRONIZE
/* Define if the __sync_synchronize function supports arguments. */
#undef HAVE___SYNC_SYNCHRONIZE_ARGUMENTS
/* Define if the va_list type is addressable. */
#undef HAVE_ADDRESSABLE_VA_LIST
/* Define if right shift of signed integers acts by sign extension. */
#undef HAVE_ARITHMETIC_RIGHT_SHIFT
/* Define if Port::push/Port::pull should use bound function pointers. */
#undef HAVE_BOUND_PORT_TRANSFER
/* Define if the C++ compiler understands constexpr. */
#undef HAVE_CXX_CONSTEXPR
/* Define if the C++ compiler understands #pragma interface. */
#undef HAVE_CXX_PRAGMA_INTERFACE
/* Define if the C++ compiler understands rvalue references. */
#undef HAVE_CXX_RVALUE_REFERENCES
/* Define if the C++ compiler understands static_assert. */
#undef HAVE_CXX_STATIC_ASSERT
/* Define if the C++ compiler understands template alias. */
#undef HAVE_CXX_TEMPLATE_ALIAS
/* Define if the machine is indifferent to alignment. */
#undef HAVE_INDIFFERENT_ALIGNMENT
/* Define if you want to use Intel-specific instructions. */
#undef HAVE_INTEL_CPU
/* Define if 64-bit integer types are enabled. */
#undef HAVE_INT64_TYPES
/* Define if Batching support is enabled. */
#undef HAVE_BATCH
/* Define if Nonatomic access to packets when single-threaded fullpush is detected is enabled. */
#undef HAVE_FULLPUSH_NONATOMIC
/* Define if warnings and information about batching are enabled. */
#undef HAVE_VERBOSE_BATCH
#define AUTO_BATCH_PORT 1
#define AUTO_BATCH_LIST 2
#define AUTO_BATCH_JUMP 3
/* Define if make vanilla elements batch-compatible automatically */
#undef HAVE_AUTO_BATCH
/* Define if IPv6 support is enabled. */
#undef HAVE_IP6
/* Define if IPsec support is enabled. */
#undef HAVE_IPSEC
/* Define if Json support is enabled. */
#undef HAVE_JSON
/* Define to 1 if the system has the type `long long'. */
#undef HAVE_LONG_LONG
/* Define if nanosecond-granularity timestamps are enabled. */
#undef HAVE_NANOTIMESTAMP_ENABLED
/* Define if user-provided clock system is supported. */
#undef HAVE_USER_TIMING
/* Define if you want to use the stride scheduler. */
#undef HAVE_STRIDE_SCHED
/* Define to 1 since we have Strings. */
#define HAVE_STRING 1
/* Define to 1 if the system has the type `struct timespec'. */
#undef HAVE_STRUCT_TIMESPEC
#ifdef HAVE_STRIDE_SCHED
/* Define if you want task scheduling to use a heap, not a linked list. */
#undef HAVE_TASK_HEAP
#endif
/* Define if compiled with task statistics. */
#undef HAVE_TASK_STATS
/* The size of a `int', as computed by sizeof. */
#undef SIZEOF_INT
/* The size of a `long', as computed by sizeof. */
#undef SIZEOF_LONG
/* The size of a `long long', as computed by sizeof. */
#undef SIZEOF_LONG_LONG
/* The size of a `size_t', as computed by sizeof. */
#undef SIZEOF_SIZE_T
/* The size of a `struct timespec', as computed by sizeof. */
#undef SIZEOF_STRUCT_TIMESPEC
/* The size of a `struct timeval', as computed by sizeof. */
#undef SIZEOF_STRUCT_TIMEVAL
/* The size of a `ptrdiff_t', as computed by sizeof. */
#undef SIZEOF_PTRDIFF_T
/* The size of a `void *', as computed by sizeof. */
#undef SIZEOF_VOID_P
/* Define if you want to run multithreaded Click. */
#undef __MTCLICK__
/* Define inline, if necessary. C only. */
#ifndef __cplusplus
#undef inline
#endif
/* Define constexpr to const under C or old C++. */
#if !defined(__cplusplus) || !HAVE_CXX_CONSTEXPR
# define constexpr const
#endif
/* Define CLICK_DEBUG_SCHEDULING to 0 if disabled. */
#ifndef CLICK_DEBUG_SCHEDULING
# define CLICK_DEBUG_SCHEDULING 0
#endif
/* Define macro for creating Click version codes (a la Linux version codes). */
#define CLICK_MAKE_VERSION_CODE(major, minor, patch) \
(((major) << 16) | ((minor) << 8) | (patch))
/* Define macro for aligning variables. */
#if __GNUC__
# define CLICK_ALIGNED(x) __attribute__((aligned(x)))
#else
# define CLICK_ALIGNED(x) /* nothing */
#endif
/* Define macro for size of a cache line. */
#define CLICK_CACHE_LINE_SIZE 64
/* Define macro for the difference between 'x' and the next higher multiple
of CLICK_CACHE_LINE_SIZE (between 0 and CLICK_CACHE_LINE_SIZE - 1). */
#define CLICK_CACHE_LINE_PAD_BYTES(x) \
((((x) + CLICK_CACHE_LINE_SIZE - 1) / CLICK_CACHE_LINE_SIZE) * CLICK_CACHE_LINE_SIZE - (x))
/* Define macro for deprecated functions. */
#if __GNUC__ < 3 || (__GNUC__ == 3 && __GNUC_MINOR__ == 0)
# define CLICK_DEPRECATED /* nothing */
#else
# define CLICK_DEPRECATED __attribute__((deprecated))
#endif
/* Define macro for deprecated functions with message. */
#if __GNUC__ < 3 || (__GNUC__ == 3 && __GNUC_MINOR__ == 0)
# define CLICK_DEPRECATED_MSG(m) /* nothing */
#elif __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ <= 4)
# define CLICK_DEPRECATED_MSG(m) __attribute__((deprecated))
#else
# define CLICK_DEPRECATED_MSG(m) __attribute__((deprecated(m)))
#endif
/* Define macro for deprecated enumerations. */
#if __GNUC__ < 3 || (__GNUC__ == 3 && __GNUC_MINOR__ < 4)
# define CLICK_DEPRECATED_ENUM /* nothing */
#else
# define CLICK_DEPRECATED_ENUM __attribute__((deprecated))
#endif
/* Define macros for marking types as may-alias. */
#if __GNUC__ < 3 || (__GNUC__ == 3 && __GNUC_MINOR__ < 3)
# define CLICK_MAY_ALIAS /* nothing */
#else
# define CLICK_MAY_ALIAS __attribute__((__may_alias__))
#endif
/* Define macro for marking functions noninlinable. */
#ifdef CLICK_LINUXMODULE
# define CLICK_NOINLINE noinline
#elif __GNUC__
# define CLICK_NOINLINE __attribute__((noinline))
#else
# define CLICK_NOINLINE /* nothing */
#endif
/* Define macro for funtions that should be inline-able even if compiling without optimization. */
#if __GNUC__
# define CLICK_ALWAYS_INLINE __attribute__((always_inline))
#else
# define CLICK_ALWAYS_INLINE /* nothing */
#endif
#if CLICK_LINUXMODULE
# define CLICK_CACHE_ALIGN ____cacheline_aligned;
#elif CLICK_USERLEVEL
# define CLICK_CACHE_ALIGN __attribute__((aligned(CLICK_CACHE_LINE_SIZE)))
#else
# define CLICK_CACHE_ALIGN
#endif
/* Define macros for declaring packed structures. */
#ifdef __GNUC__
# define CLICK_PACKED_STRUCTURE(open, close) open close __attribute__((packed))
# define CLICK_SIZE_PACKED_STRUCTURE(open, close) open close __attribute__((packed)) /* deprecated */
# define CLICK_SIZE_PACKED_ATTRIBUTE __attribute__((packed))
#else
# define CLICK_PACKED_STRUCTURE(open, close) _Cannot_pack_structure__Use_GCC
# define CLICK_SIZE_PACKED_STRUCTURE(open, close) open close /* deprecated */
# define CLICK_SIZE_PACKED_ATTRIBUTE
#endif
/* Define macro for functions whose results should not be ignored. */
#if __GNUC__ < 3 || (__GNUC__ == 3 && __GNUC_MINOR__ < 4)
# define CLICK_WARN_UNUSED_RESULT /* nothing */
#else
# define CLICK_WARN_UNUSED_RESULT __attribute__((warn_unused_result))
#endif
/* Define macro for cold (rarely used) functions. */
#if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 3)
# define CLICK_COLD /* nothing */
#else
# define CLICK_COLD __attribute__((cold))
#endif
/* Define ARCH_IS_BIG_ENDIAN based on CLICK_BYTE_ORDER. */
#if CLICK_BYTE_ORDER == CLICK_BIG_ENDIAN
# define ARCH_IS_BIG_ENDIAN 1
#elif CLICK_BYTE_ORDER == CLICK_LITTLE_ENDIAN
# define ARCH_IS_BIG_ENDIAN 0
#endif
/* Define macro for htons() on constants (allows htons() in switch cases). */
#if CLICK_BYTE_ORDER == CLICK_BIG_ENDIAN
# define click_constant_htons(x) (x)
#elif CLICK_BYTE_ORDER == CLICK_LITTLE_ENDIAN
# define click_constant_htons(x) ((((x) >> 8) & 255) | (((x) & 255) << 8))
#endif
/* EXPORT_ELEMENT, ELEMENT_REQUIRES, ELEMENT_PROVIDES, ELEMENT_HEADER,
ELEMENT_LIBS, and ELEMENT_MT_SAFE are noops. */
#define EXPORT_ELEMENT(x)
#define ELEMENT_REQUIRES(x)
#define ELEMENT_PROVIDES(x)
#define ELEMENT_HEADER(x)
#define ELEMENT_LIBS(x)
#define ELEMENT_MT_SAFE(x)
/* Assume CLICK_USERLEVEL unless otherwise defined. */
#if !defined(CLICK_USERLEVEL) && !defined(CLICK_TOOL) && !defined(CLICK_LINUXMODULE) && !defined(CLICK_BSDMODULE) && !defined(CLICK_MINIOS)
# define CLICK_USERLEVEL 1
#endif
/* Define stuff under a Linux module. */
#ifdef CLICK_LINUXMODULE
# include <click/config-linuxmodule.h>
#endif
/* Define stuff under a FreeBSD module. */
#ifdef CLICK_BSDMODULE
# include <click/config-bsdmodule.h>
#endif
/* Define stuff under nsclick. */
#ifdef CLICK_NS
# include <click/config-ns.h>
#endif
/* Define stuff under tools or a user-level driver. */
#if defined(CLICK_USERLEVEL) || defined(CLICK_TOOL)
# include <click/config-userlevel.h>
#endif
/* Define stuff under a MiniOS application. */
#ifdef CLICK_MINIOS
# include <click/config-minios.h>
#endif
/* Ensure declaration of DefaultArg template. */
#ifdef __cplusplus
CLICK_DECLS
template <typename T> struct DefaultArg;
/** @class uninitialized_type
@brief Type tag indicating an object should not be initialized. */
struct uninitialized_type {
};
CLICK_ENDDECLS
#endif
/* Define aliasing versions of integer and pointer types. */
typedef uint16_t click_aliasable_uint16_t CLICK_MAY_ALIAS;
typedef int16_t click_aliasable_int16_t CLICK_MAY_ALIAS;
typedef uint32_t click_aliasable_uint32_t CLICK_MAY_ALIAS;
typedef int32_t click_aliasable_int32_t CLICK_MAY_ALIAS;
#if HAVE_INT64_TYPES
typedef uint64_t click_aliasable_uint64_t CLICK_MAY_ALIAS;
typedef int64_t click_aliasable_int64_t CLICK_MAY_ALIAS;
#endif
typedef void *click_aliasable_void_pointer_t CLICK_MAY_ALIAS;
#endif /* CLICK_CONFIG_H */