Zephyr API Documentation
3.0.0
A Scalable Open Source RTOS
3.0.0
Toggle main menu visibility
Main Page
Related Pages
Modules
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
x
y
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
x
y
z
Enumerator
Files
File List
Globals
All
$
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Functions
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Variables
$
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
z
Typedefs
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
z
Enumerations
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
r
s
t
u
v
w
x
Enumerator
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
z
Macros
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
z
•
All
Data Structures
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Modules
Pages
tracing_macros.h
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2018 Intel Corporation
3
*
4
* SPDX-License-Identifier: Apache-2.0
5
*/
6
#ifndef ZEPHYR_INCLUDE_TRACING_TRACING_MACROS_H_
7
#define ZEPHYR_INCLUDE_TRACING_TRACING_MACROS_H_
8
9
#if !defined(CONFIG_TRACING) && !defined(__DOXYGEN__)
10
11
#define SYS_PORT_TRACING_FUNC(type, func, ...) do { } while (false)
12
#define SYS_PORT_TRACING_FUNC_ENTER(type, func, ...) do { } while (false)
13
#define SYS_PORT_TRACING_FUNC_BLOCKING(type, func, ...) do { } while (false)
14
#define SYS_PORT_TRACING_FUNC_EXIT(type, func, ...) do { } while (false)
15
#define SYS_PORT_TRACING_OBJ_INIT(obj_type, obj, ...) do { } while (false)
16
#define SYS_PORT_TRACING_OBJ_FUNC(obj_type, func, obj, ...) do { } while (false)
17
#define SYS_PORT_TRACING_OBJ_FUNC_ENTER(obj_type, func, obj, ...) do { } while (false)
18
#define SYS_PORT_TRACING_OBJ_FUNC_BLOCKING(obj_type, func, obj, ...) do { } while (false)
19
#define SYS_PORT_TRACING_OBJ_FUNC_EXIT(obj_type, func, obj, ...) do { } while (false)
20
21
#define SYS_PORT_TRACING_TRACKING_FIELD(type)
22
23
#else
24
34
/*
35
* Helper macros used by the extended tracing system
36
*/
37
38
#define _SYS_PORT_TRACING_TYPE_MASK(type) \
39
sys_port_trace_type_mask_ ## type
40
#define _SYS_PORT_TRACING_FUNC(name, func) \
41
sys_port_trace_ ## name ## _ ## func
42
#define _SYS_PORT_TRACING_FUNC_ENTER(name, func) \
43
sys_port_trace_ ## name ## _ ## func ## _enter
44
#define _SYS_PORT_TRACING_FUNC_BLOCKING(name, func) \
45
sys_port_trace_ ## name ## _ ## func ## _blocking
46
#define _SYS_PORT_TRACING_FUNC_EXIT(name, func) \
47
sys_port_trace_ ## name ## _ ## func ## _exit
48
#define _SYS_PORT_TRACING_OBJ_INIT(name) \
49
sys_port_trace_ ## name ## _init
50
#define _SYS_PORT_TRACING_OBJ_FUNC(name, func) \
51
sys_port_trace_ ## name ## _ ## func
52
#define _SYS_PORT_TRACING_OBJ_FUNC_ENTER(name, func) \
53
sys_port_trace_ ## name ## _ ## func ## _enter
54
#define _SYS_PORT_TRACING_OBJ_FUNC_BLOCKING(name, func) \
55
sys_port_trace_ ## name ## _ ## func ## _blocking
56
#define _SYS_PORT_TRACING_OBJ_FUNC_EXIT(name, func) \
57
sys_port_trace_ ## name ## _ ## func ## _exit
58
59
/*
60
* Helper macros for the object tracking system
61
*/
62
63
#define _SYS_PORT_TRACKING_OBJ_INIT(name) \
64
sys_port_track_ ## name ## _init
65
#define _SYS_PORT_TRACKING_OBJ_FUNC(name, func) \
66
sys_port_track_ ## name ## _ ## func
67
68
/*
69
* Object trace macros part of the system for checking if certain
70
* objects should be traced or not depending on the tracing configuration.
71
*/
72
#if defined(CONFIG_TRACING_THREAD)
73
#define sys_port_trace_type_mask_k_thread(trace_call) trace_call
74
#else
75
#define sys_port_trace_type_mask_k_thread(trace_call)
76
#endif
77
78
#if defined(CONFIG_TRACING_WORK)
79
#define sys_port_trace_type_mask_k_work(trace_call) trace_call
80
#define sys_port_trace_type_mask_k_work_queue(trace_call) trace_call
81
#define sys_port_trace_type_mask_k_work_delayable(trace_call) trace_call
82
#define sys_port_trace_type_mask_k_work_poll(trace_call) trace_call
83
#else
84
#define sys_port_trace_type_mask_k_work(trace_call)
85
#define sys_port_trace_type_mask_k_work_queue(trace_call)
86
#define sys_port_trace_type_mask_k_work_delayable(trace_call)
87
#define sys_port_trace_type_mask_k_work_poll(trace_call)
88
#endif
89
90
#if defined(CONFIG_TRACING_SEMAPHORE)
91
#define sys_port_trace_type_mask_k_sem(trace_call) trace_call
92
#else
93
#define sys_port_trace_type_mask_k_sem(trace_call)
94
#endif
95
96
#if defined(CONFIG_TRACING_MUTEX)
97
#define sys_port_trace_type_mask_k_mutex(trace_call) trace_call
98
#else
99
#define sys_port_trace_type_mask_k_mutex(trace_call)
100
#endif
101
102
#if defined(CONFIG_TRACING_CONDVAR)
103
#define sys_port_trace_type_mask_k_condvar(trace_call) trace_call
104
#else
105
#define sys_port_trace_type_mask_k_condvar(trace_call)
106
#endif
107
108
#if defined(CONFIG_TRACING_QUEUE)
109
#define sys_port_trace_type_mask_k_queue(trace_call) trace_call
110
#else
111
#define sys_port_trace_type_mask_k_queue(trace_call)
112
#endif
113
114
#if defined(CONFIG_TRACING_FIFO)
115
#define sys_port_trace_type_mask_k_fifo(trace_call) trace_call
116
#else
117
#define sys_port_trace_type_mask_k_fifo(trace_call)
118
#endif
119
120
#if defined(CONFIG_TRACING_LIFO)
121
#define sys_port_trace_type_mask_k_lifo(trace_call) trace_call
122
#else
123
#define sys_port_trace_type_mask_k_lifo(trace_call)
124
#endif
125
126
#if defined(CONFIG_TRACING_STACK)
127
#define sys_port_trace_type_mask_k_stack(trace_call) trace_call
128
#else
129
#define sys_port_trace_type_mask_k_stack(trace_call)
130
#endif
131
132
#if defined(CONFIG_TRACING_MESSAGE_QUEUE)
133
#define sys_port_trace_type_mask_k_msgq(trace_call) trace_call
134
#else
135
#define sys_port_trace_type_mask_k_msgq(trace_call)
136
#endif
137
138
#if defined(CONFIG_TRACING_MAILBOX)
139
#define sys_port_trace_type_mask_k_mbox(trace_call) trace_call
140
#else
141
#define sys_port_trace_type_mask_k_mbox(trace_call)
142
#endif
143
144
#if defined(CONFIG_TRACING_PIPE)
145
#define sys_port_trace_type_mask_k_pipe(trace_call) trace_call
146
#else
147
#define sys_port_trace_type_mask_k_pipe(trace_call)
148
#endif
149
150
#if defined(CONFIG_TRACING_HEAP)
151
#define sys_port_trace_type_mask_k_heap(trace_call) trace_call
152
#define sys_port_trace_type_mask_k_heap_sys(trace_call) trace_call
153
#else
154
#define sys_port_trace_type_mask_k_heap(trace_call)
155
#define sys_port_trace_type_mask_k_heap_sys(trace_call)
156
#endif
157
158
#if defined(CONFIG_TRACING_MEMORY_SLAB)
159
#define sys_port_trace_type_mask_k_mem_slab(trace_call) trace_call
160
#else
161
#define sys_port_trace_type_mask_k_mem_slab(trace_call)
162
#endif
163
164
#if defined(CONFIG_TRACING_TIMER)
165
#define sys_port_trace_type_mask_k_timer(trace_call) trace_call
166
#else
167
#define sys_port_trace_type_mask_k_timer(trace_call)
168
#endif
169
170
#if defined(CONFIG_TRACING_EVENT)
171
#define sys_port_trace_type_mask_k_event(trace_call) trace_call
172
#else
173
#define sys_port_trace_type_mask_k_event(trace_call)
174
#endif
175
184
#define SYS_PORT_TRACING_TYPE_MASK(type, trace_call) \
185
_SYS_PORT_TRACING_TYPE_MASK(type)(trace_call)
186
199
#define SYS_PORT_TRACING_FUNC(type, func, ...) \
200
do { \
201
_SYS_PORT_TRACING_FUNC(type, func)(__VA_ARGS__); \
202
} while (false)
203
216
#define SYS_PORT_TRACING_FUNC_ENTER(type, func, ...) \
217
do { \
218
_SYS_PORT_TRACING_FUNC_ENTER(type, func)(__VA_ARGS__); \
219
} while (false)
220
232
#define SYS_PORT_TRACING_FUNC_BLOCKING(type, func, ...) \
233
do { \
234
_SYS_PORT_TRACING_FUNC_BLOCKING(type, func)(__VA_ARGS__); \
235
} while (false)
236
249
#define SYS_PORT_TRACING_FUNC_EXIT(type, func, ...) \
250
do { \
251
_SYS_PORT_TRACING_FUNC_EXIT(type, func)(__VA_ARGS__); \
252
} while (false)
253
262
#define SYS_PORT_TRACING_OBJ_INIT(obj_type, obj, ...) \
263
do { \
264
SYS_PORT_TRACING_TYPE_MASK(obj_type, \
265
_SYS_PORT_TRACING_OBJ_INIT(obj_type)(obj, ##__VA_ARGS__)); \
266
SYS_PORT_TRACING_TYPE_MASK(obj_type, \
267
_SYS_PORT_TRACKING_OBJ_INIT(obj_type)(obj, ##__VA_ARGS__)); \
268
} while (false)
269
280
#define SYS_PORT_TRACING_OBJ_FUNC(obj_type, func, obj, ...) \
281
do { \
282
SYS_PORT_TRACING_TYPE_MASK(obj_type, \
283
_SYS_PORT_TRACING_OBJ_FUNC(obj_type, func)(obj, ##__VA_ARGS__)); \
284
SYS_PORT_TRACING_TYPE_MASK(obj_type, \
285
_SYS_PORT_TRACKING_OBJ_FUNC(obj_type, func)(obj, ##__VA_ARGS__)); \
286
} while (false)
287
299
#define SYS_PORT_TRACING_OBJ_FUNC_ENTER(obj_type, func, obj, ...) \
300
do { \
301
SYS_PORT_TRACING_TYPE_MASK(obj_type, \
302
_SYS_PORT_TRACING_OBJ_FUNC_ENTER(obj_type, func)(obj, ##__VA_ARGS__)); \
303
} while (false)
304
316
#define SYS_PORT_TRACING_OBJ_FUNC_BLOCKING(obj_type, func, obj, timeout, ...) \
317
do { \
318
SYS_PORT_TRACING_TYPE_MASK(obj_type, \
319
_SYS_PORT_TRACING_OBJ_FUNC_BLOCKING(obj_type, func) \
320
(obj, timeout, ##__VA_ARGS__)); \
321
} while (false)
322
334
#define SYS_PORT_TRACING_OBJ_FUNC_EXIT(obj_type, func, obj, ...) \
335
do { \
336
SYS_PORT_TRACING_TYPE_MASK(obj_type, \
337
_SYS_PORT_TRACING_OBJ_FUNC_EXIT(obj_type, func)(obj, ##__VA_ARGS__)); \
338
} while (false)
339
345
#define SYS_PORT_TRACING_TRACKING_FIELD(type) \
346
SYS_PORT_TRACING_TYPE_MASK(type, struct type *_obj_track_next;)
347
/* end of subsys_tracing_macros */
349
350
#endif
/* CONFIG_TRACING */
351
352
#endif
/* ZEPHYR_INCLUDE_TRACING_TRACING_MACROS_H_ */
include
tracing
tracing_macros.h
Generated on Mon Feb 21 2022 22:43:02 for Zephyr API Documentation by
1.9.2