DPDK
24.11.4
Toggle main menu visibility
Loading...
Searching...
No Matches
rte_trace_point_register.h
1
/* SPDX-License-Identifier: BSD-3-Clause
2
* Copyright(C) 2020 Marvell International Ltd.
3
*/
4
5
#ifndef _RTE_TRACE_POINT_REGISTER_H_
6
#define _RTE_TRACE_POINT_REGISTER_H_
7
8
#ifdef _RTE_TRACE_POINT_H_
9
#error for registration, include this file first before <rte_trace_point.h>
10
#endif
11
12
#include <
rte_per_lcore.h
>
13
#include <
rte_trace_point.h
>
14
15
#ifdef __cplusplus
16
extern
"C"
{
17
#endif
18
19
RTE_DECLARE_PER_LCORE
(
volatile
int
, trace_point_sz);
20
21
#define RTE_TRACE_POINT_REGISTER(trace, name) \
22
rte_trace_point_t __rte_section("__rte_trace_point") __##trace; \
23
static const char __##trace##_name[] = RTE_STR(name); \
24
RTE_INIT(trace##_init) \
25
{ \
26
if (!rte_trace_feature_is_enabled()) \
27
return; \
28
__rte_trace_point_register(&__##trace, __##trace##_name, \
29
(void (*)(void)) trace); \
30
}
31
32
#define __rte_trace_point_emit_header_generic(t) \
33
RTE_PER_LCORE(trace_point_sz) = __RTE_TRACE_EVENT_HEADER_SZ
34
35
#define __rte_trace_point_emit_header_fp(t) \
36
__rte_trace_point_emit_header_generic(t)
37
38
#define __rte_trace_point_emit(in, type) \
39
do { \
40
RTE_BUILD_BUG_ON(sizeof(type) != sizeof(typeof(in))); \
41
__rte_trace_point_emit_field(sizeof(type), RTE_STR(in), \
42
RTE_STR(type)); \
43
} while (0)
44
45
#define rte_trace_point_emit_string(in) \
46
do { \
47
RTE_SET_USED(in); \
48
__rte_trace_point_emit_field(__RTE_TRACE_EMIT_STRING_LEN_MAX, \
49
RTE_STR(in)"[32]", "string_bounded_t"); \
50
} while (0)
51
52
#define rte_trace_point_emit_blob(in, len) \
53
do { \
54
RTE_SET_USED(in); \
55
__rte_trace_point_emit(len, uint8_t); \
56
__rte_trace_point_emit_field(RTE_TRACE_BLOB_LEN_MAX, \
57
RTE_STR(in)"[" RTE_STR(RTE_TRACE_BLOB_LEN_MAX)"]", \
58
RTE_STR(uint8_t)); \
59
} while (0)
60
61
#ifdef __cplusplus
62
}
63
#endif
64
65
#endif
/* _RTE_TRACE_POINT_REGISTER_H_ */
rte_per_lcore.h
RTE_DECLARE_PER_LCORE
#define RTE_DECLARE_PER_LCORE(type, name)
Definition
rte_per_lcore.h:39
rte_trace_point.h
lib
eal
include
rte_trace_point_register.h
Generated by
1.17.0