NDN-DPDK
High-Speed Named Data Networking Forwarder
Main Page
Related Pages
Data Structures
Data Structures
Data Structure Index
Data Fields
All
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
z
Functions
Variables
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
z
Files
File List
Globals
All
_
a
b
c
d
e
f
g
h
i
l
m
n
p
r
s
t
u
v
w
Functions
_
b
c
d
e
f
h
i
l
m
n
p
r
s
t
u
Variables
_
b
c
d
e
f
g
i
l
m
p
r
s
t
v
w
Typedefs
b
c
d
e
f
g
h
i
l
m
n
p
r
s
t
u
v
Enumerations
Enumerator
b
c
d
e
f
g
h
i
l
m
n
p
r
s
t
u
v
Macros
a
b
c
d
f
h
i
l
m
n
p
r
s
t
u
•
All
Data Structures
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Pages
csrc
core
common.h
Go to the documentation of this file.
1
7
#ifndef NDNDPDK_CORE_COMMON_H
8
#define NDNDPDK_CORE_COMMON_H
9
12
#if __INTELLISENSE__
13
// https://github.com/microsoft/vscode-cpptools/issues/4503
14
#pragma diag_suppress 1094
15
#endif
16
17
#include <assert.h>
18
#include <inttypes.h>
19
#include <limits.h>
20
#include <memory.h>
21
#include <stdatomic.h>
22
#include <stdbool.h>
23
#include <stddef.h>
24
#include <stdio.h>
25
#include <stdlib.h>
26
#include <string.h>
27
28
#define ALLOW_EXPERIMENTAL_API
29
#include <rte_config.h>
30
31
#include <rte_bitops.h>
32
#include <rte_branch_prediction.h>
33
#include <rte_common.h>
34
35
#ifndef __BPF__
36
37
#include <float.h>
38
#include <math.h>
39
40
#include <urcu/list.h>
41
42
#include <rte_byteorder.h>
43
#include <rte_cycles.h>
44
#include <rte_debug.h>
45
#include <rte_errno.h>
46
#include <rte_lcore_var.h>
47
#include <rte_malloc.h>
48
#include <rte_memcpy.h>
49
50
#include <spdk/util.h>
51
52
#ifdef NDEBUG
53
#define NDNDPDK_ASSERT(x) \
54
do { \
55
if (__builtin_constant_p((x)) && !(x)) { \
56
__builtin_unreachable(); \
57
} \
58
} while (false)
59
#else
60
#define NDNDPDK_ASSERT(x) RTE_VERIFY((x))
61
#endif
62
64
#define LCORE_VAR_SAFE(handle) \
65
__extension__({ \
66
unsigned lc = rte_lcore_id(); \
67
RTE_LCORE_VAR_LCORE(lc == LCORE_ID_ANY ? RTE_MAX_LCORE - 1 : lc, handle); \
68
})
69
70
#endif
// __BPF__
71
72
#define STATIC_ASSERT_FUNC_TYPE(typ, func) \
73
static_assert(__builtin_types_compatible_p(typ, typeof(&func)), ""
)
74
75
#ifdef NDEBUG
76
#define NULLize(x) RTE_SET_USED(x)
77
#else
79
#define NULLize(x) \
80
do { \
81
(x) = NULL; \
82
} while (false)
83
#endif
84
85
#ifdef NDNDPDK_POISON
86
#define POISON_2_(x, size) memset(x, 0x99, size)
87
#else
88
#define POISON_2_(x, size) \
89
do { \
90
RTE_SET_USED(x); \
91
RTE_SET_USED(size); \
92
} while (false)
93
#endif
94
#define POISON_1_(x) POISON_2_((x), sizeof(*(x)))
95
#define POISON_Arg3_(a1, a2, a3, ...) a3
96
#define POISON_Choose_(...) POISON_Arg3_(__VA_ARGS__, POISON_2_, POISON_1_)
104
#define POISON(...) POISON_Choose_(__VA_ARGS__)(__VA_ARGS__)
105
106
#define CLAMP(x, lo, hi) RTE_MAX((lo), RTE_MIN((hi), (x)))
107
108
#endif
// NDNDPDK_CORE_COMMON_H
Generated by
1.9.1