Skip to content

Commit 9015f40

Browse files
Gary-Hobsonacassis
authored andcommitted
trace: add mark and printf support
Add new trace macros: trace_mark and trace_printf. Signed-off-by: yinshengkai <yinshengkai@xiaomi.com>
1 parent d7bb8da commit 9015f40

File tree

1 file changed

+140
-2
lines changed

1 file changed

+140
-2
lines changed

include/nuttx/trace.h

Lines changed: 140 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,135 +36,273 @@
3636
#ifdef CONFIG_TRACE
3737
# define trace_begin(tag) sched_note_begin(tag)
3838
# define trace_end(tag) sched_note_end(tag)
39-
4039
# define trace_beginex(tag, name) sched_note_beginex(tag, name)
4140
# define trace_endex(tag, name) sched_note_endex(tag, name)
41+
# define trace_mark(tag, s) sched_note_mark(tag, s)
42+
# define trace_printf(tag, fmt, ...)
43+
sched_note_printf(tag, fmt, ##__VA_ARGS__)
4244
#else
4345
# define trace_begin(tag)
4446
# define trace_end(tag)
45-
4647
# define trace_beginex(tag, name)
4748
# define trace_endex(tag, name)
49+
# define trace_mark(tag, s)
50+
# define trace_printf(...)
4851
#endif
4952

5053
#ifdef CONFIG_TRACE_APP
5154
# define app_trace_begin() trace_begin(NOTE_TAG_APP)
5255
# define app_trace_end() trace_end(NOTE_TAG_APP)
56+
# define app_trace_beginex(name) trace_beginex(NOTE_TAG_APP, name)
57+
# define app_trace_endex(name) trace_endex(NOTE_TAG_APP, name)
58+
# define app_trace_mark(s) trace_mark(NOTE_TAG_APP, s)
59+
# define app_trace_printf(fmt, ...)
60+
sched_note_printf(NOTE_TAG_APP, fmt, ##__VA_ARGS__)
5361
#else
5462
# define app_trace_begin()
5563
# define app_trace_end()
64+
# define app_trace_beginex(name)
65+
# define app_trace_endex(name)
66+
# define app_trace_mark(s)
67+
# define app_trace_printf(...)
5668
#endif
5769

5870
#ifdef CONFIG_TRACE_ARCH
5971
# define arch_trace_begin() trace_begin(NOTE_TAG_ARCH)
6072
# define arch_trace_end() trace_end(NOTE_TAG_ARCH)
73+
# define arch_trace_beginex(name) trace_beginex(NOTE_TAG_ARCH, name)
74+
# define arch_trace_endex(name) trace_endex(NOTE_TAG_ARCH, name)
75+
# define arch_trace_mark(s) trace_mark(NOTE_TAG_ARCH, s)
76+
# define arch_trace_printf(fmt, ...) \
77+
trace_printf(NOTE_TAG_ARCH, fmt, ##__VA_ARGS__)
6178
#else
6279
# define arch_trace_begin()
6380
# define arch_trace_end()
81+
# define arch_trace_beginex(name)
82+
# define arch_trace_endex(name)
83+
# define arch_trace_mark(s)
84+
# define arch_trace_printf(...)
6485
#endif
6586

6687
#ifdef CONFIG_TRACE_AUDIO
6788
# define audio_trace_begin() trace_begin(NOTE_TAG_AUDIO)
6889
# define audio_trace_end() trace_end(NOTE_TAG_AUDIO)
90+
# define audio_trace_beginex(name) trace_beginex(NOTE_TAG_AUDIO, name)
91+
# define audio_trace_endex(name) trace_endex(NOTE_TAG_AUDIO, name)
92+
# define audio_trace_mark(s) trace_mark(NOTE_TAG_AUDIO, s)
93+
# define audio_trace_printf(fmt, ...) \
94+
trace_printf(NOTE_TAG_AUDIO, fmt, ##__VA_ARGS__)
6995
#else
7096
# define audio_trace_begin()
7197
# define audio_trace_end()
98+
# define audio_trace_beginex(name)
99+
# define audio_trace_endex(name)
100+
# define audio_trace_mark(s)
101+
# define audio_trace_printf(...)
72102
#endif
73103

74104
#ifdef CONFIG_TRACE_BOARDS
75105
# define boards_trace_begin() trace_begin(NOTE_TAG_BOARDS)
76106
# define boards_trace_end() trace_end(NOTE_TAG_BOARDS)
107+
# define boards_trace_beginex(name) trace_beginex(NOTE_TAG_BOARDS, name)
108+
# define boards_trace_endex(name) trace_endex(NOTE_TAG_BOARDS, name)
109+
# define boards_trace_mark(s) trace_mark(NOTE_TAG_BOARDS, s)
110+
# define boards_trace_printf(fmt, ...) \
111+
trace_printf(NOTE_TAG_BOARDS, fmt, ##__VA_ARGS__)
77112
#else
78113
# define boards_trace_begin()
79114
# define boards_trace_end()
115+
# define boards_trace_beginex(name)
116+
# define boards_trace_endex(name)
117+
# define boards_trace_mark(s)
118+
# define boards_trace_printf(...)
80119
#endif
81120

82121
#ifdef CONFIG_TRACE_CRYPTO
83122
# define crypto_trace_begin() trace_begin(NOTE_TAG_CRYPTO)
84123
# define crypto_trace_end() trace_end(NOTE_TAG_CRYPTO)
124+
# define crypto_trace_beginex(name) trace_beginex(NOTE_TAG_CRYPTO, name)
125+
# define crypto_trace_endex(name) trace_endex(NOTE_TAG_CRYPTO, name)
126+
# define crypto_trace_mark(s) trace_mark(NOTE_TAG_CRYPTO, s)
127+
# define crypto_trace_printf(fmt, ...) \
128+
trace_printf(NOTE_TAG_CRYPTO, fmt, ##__VA_ARGS__)
85129
#else
86130
# define crypto_trace_begin()
87131
# define crypto_trace_end()
132+
# define crypto_trace_beginex(name)
133+
# define crypto_trace_endex(name)
134+
# define crypto_trace_mark(s)
135+
# define crypto_trace_printf(...)
88136
#endif
89137

90138
#ifdef CONFIG_TRACE_DRIVERS
91139
# define drivers_trace_begin() trace_begin(NOTE_TAG_DRIVERS)
92140
# define drivers_trace_end() trace_end(NOTE_TAG_DRIVERS)
141+
# define drivers_trace_beginex(name) trace_beginex(NOTE_TAG_DRIVERS, name)
142+
# define drivers_trace_endex(name) trace_endex(NOTE_TAG_DRIVERS, name)
143+
# define drivers_trace_mark(s) trace_mark(NOTE_TAG_DRIVERS, s)
144+
# define drivers_trace_printf(fmt, ...) \
145+
trace_printf(NOTE_TAG_DRIVERS, fmt, )
93146
#else
94147
# define drivers_trace_begin()
95148
# define drivers_trace_end()
149+
# define drivers_trace_beginex(name)
150+
# define drivers_trace_endex(name)
151+
# define drivers_trace_mark(s)
152+
# define drivers_trace_printf(...)
96153
#endif
97154

98155
#ifdef CONFIG_TRACE_FS
99156
# define fs_trace_begin() trace_begin(NOTE_TAG_FS)
100157
# define fs_trace_end() trace_end(NOTE_TAG_FS)
158+
# define fs_trace_beginex(name) trace_beginex(NOTE_TAG_FS, name)
159+
# define fs_trace_endex(name) trace_endex(NOTE_TAG_FS, name)
160+
# define fs_trace_mark(s) trace_mark(NOTE_TAG_FS, s)
161+
# define fs_trace_printf(fmt, ...) \
162+
trace_printf(NOTE_TAG_FS, fmt, ##__VA_ARGS__)
101163
#else
102164
# define fs_trace_begin()
103165
# define fs_trace_end()
166+
# define fs_trace_beginex(name)
167+
# define fs_trace_endex(name)
168+
# define fs_trace_mark(s)
169+
# define fs_trace_printf(...)
104170
#endif
105171

106172
#ifdef CONFIG_TRACE_GRAPHICS
107173
# define graphics_trace_begin() trace_begin(NOTE_TAG_GRAPHICS)
108174
# define graphics_trace_end() trace_end(NOTE_TAG_GRAPHICS)
175+
# define graphics_trace_beginex(name) trace_beginex(NOTE_TAG_GRAPHICS, name)
176+
# define graphics_trace_endex(name) trace_endex(NOTE_TAG_GRAPHICS, name)
177+
# define graphics_trace_mark(s) trace_mark(NOTE_TAG_GRAPHICS, s)
178+
# define graphics_trace_printf(fmt, ...) \
179+
trace_printf(NOTE_TAG_GRAPHICS, fmt, ##__VA_ARGS__)
109180
#else
110181
# define graphics_trace_begin()
111182
# define graphics_trace_end()
183+
# define graphics_trace_beginex(name)
184+
# define graphics_trace_endex(name)
185+
# define graphics_trace_mark(s)
186+
# define graphics_trace_printf(...)
112187
#endif
113188

114189
#ifdef CONFIG_TRACE_INPUT
115190
# define input_trace_begin() trace_begin(NOTE_TAG_INPUT)
116191
# define input_trace_end() trace_end(NOTE_TAG_INPUT)
192+
# define input_trace_beginex(name) trace_beginex(NOTE_TAG_INPUT, name)
193+
# define input_trace_endex(name) trace_endex(NOTE_TAG_INPUT, name)
194+
# define input_trace_mark(s) trace_mark(NOTE_TAG_INPUT, s)
195+
# define input_trace_printf(fmt, ...) \
196+
trace_printf(NOTE_TAG_INPUT, fmt, ##__VA_ARGS__)
117197
#else
118198
# define input_trace_begin()
119199
# define input_trace_end()
200+
# define input_trace_beginex(name)
201+
# define input_trace_endex(name)
202+
# define input_trace_mark(s)
203+
# define input_trace_printf(...)
120204
#endif
121205

122206
#ifdef CONFIG_TRACE_LIBS
123207
# define libs_trace_begin() trace_begin(NOTE_TAG_LIBS)
124208
# define libs_trace_end() trace_end(NOTE_TAG_LIBS)
209+
# define libs_trace_beginex(name) trace_beginex(NOTE_TAG_LIBS, name)
210+
# define libs_trace_endex(name) trace_endex(NOTE_TAG_LIBS, name)
211+
# define libs_trace_mark(s) trace_mark(NOTE_TAG_LIBS, s)
212+
# define libs_trace_printf(fmt, ...) \
213+
trace_printf(NOTE_TAG_LIBS, fmt, ##__VA_ARGS__)
125214
#else
126215
# define libs_trace_begin()
127216
# define libs_trace_end()
217+
# define libs_trace_beginex(name)
218+
# define libs_trace_endex(name)
219+
# define libs_trace_mark(s)
220+
# define libs_trace_printf(...)
128221
#endif
129222

130223
#ifdef CONFIG_TRACE_MM
131224
# define mm_trace_begin() trace_begin(NOTE_TAG_MM)
132225
# define mm_trace_end() trace_end(NOTE_TAG_MM)
226+
# define mm_trace_beginex(name) trace_beginex(NOTE_TAG_MM, name)
227+
# define mm_trace_endex(name) trace_endex(NOTE_TAG_MM, name)
228+
# define mm_trace_mark(s) trace_mark(NOTE_TAG_MM, s)
229+
# define mm_trace_printf(fmt, ...) \
230+
trace_printf(NOTE_TAG_MM, fmt, ##__VA_ARGS__)
133231
#else
134232
# define mm_trace_begin()
135233
# define mm_trace_end()
234+
# define mm_trace_beginex(name)
235+
# define mm_trace_endex(name)
236+
# define mm_trace_mark(s)
237+
# define mm_trace_printf(...)
136238
#endif
137239

138240
#ifdef CONFIG_TRACE_NET
139241
# define net_trace_begin() trace_begin(NOTE_TAG_NET)
140242
# define net_trace_end() trace_end(NOTE_TAG_NET)
243+
# define net_trace_beginex(name) trace_beginex(NOTE_TAG_NET, name)
244+
# define net_trace_endex(name) trace_endex(NOTE_TAG_NET, name)
245+
# define net_trace_mark(s) trace_mark(NOTE_TAG_NET, s)
246+
# define net_trace_printf(fmt, ...) \
247+
trace_printf(NOTE_TAG_NET, fmt, ##__VA_ARGS__)
141248
#else
142249
# define net_trace_begin()
143250
# define net_trace_end()
251+
# define net_trace_beginex(name)
252+
# define net_trace_endex(name)
253+
# define net_trace_mark(s)
254+
# define net_trace_printf(...)
144255
#endif
145256

146257
#ifdef CONFIG_TRACE_SCHED
147258
# define sched_trace_begin() trace_begin(NOTE_TAG_SCHED)
148259
# define sched_trace_end() trace_end(NOTE_TAG_SCHED)
260+
# define sched_trace_beginex(name) trace_beginex(NOTE_TAG_SCHED, name)
261+
# define sched_trace_endex(name) trace_endex(NOTE_TAG_SCHED, name)
262+
# define sched_trace_mark(s) trace_mark(NOTE_TAG_SCHED, s)
263+
# define sched_trace_printf(fmt, ...) \
264+
trace_printf(NOTE_TAG_SCHED, fmt, ##__VA_ARGS__)
149265
#else
150266
# define sched_trace_begin()
151267
# define sched_trace_end()
268+
# define sched_trace_beginex(name)
269+
# define sched_trace_endex(name)
270+
# define sched_trace_mark(s)
271+
# define sched_trace_printf(...)
152272
#endif
153273

154274
#ifdef CONFIG_TRACE_VIDEO
155275
# define video_trace_begin() trace_begin(NOTE_TAG_VIDEO)
156276
# define video_trace_end() trace_end(NOTE_TAG_VIDEO)
277+
# define video_trace_beginex(name) trace_beginex(NOTE_TAG_VIDEO, name)
278+
# define video_trace_endex(name) trace_endex(NOTE_TAG_VIDEO, name)
279+
# define video_trace_mark(s) trace_mark(NOTE_TAG_VIDEO, s)
280+
# define video_trace_printf(fmt, ...) \
281+
trace_printf(NOTE_TAG_VIDEO, fmt, ##__VA_ARGS__)
157282
#else
158283
# define video_trace_begin()
159284
# define video_trace_end()
285+
# define video_trace_beginex(name)
286+
# define video_trace_endex(name)
287+
# define video_trace_mark(s)
288+
# define video_trace_printf(...)
160289
#endif
161290

162291
#ifdef CONFIG_TRACE_WIRELESS
163292
# define wireless_trace_begin() trace_begin(NOTE_TAG_WIRLESS)
164293
# define wireless_trace_end() trace_end(NOTE_TAG_WIRLESS)
294+
# define wireless_trace_beginex(name) trace_beginex(NOTE_TAG_WIRLESS, name)
295+
# define wireless_trace_endex(name) trace_endex(NOTE_TAG_WIRLESS, name)
296+
# define wireless_trace_mark(s) trace_mark(NOTE_TAG_WIRLESS, s)
297+
# define wireless_trace_printf(fmt, ...) \
298+
trace_printf(NOTE_TAG_WIRLESS, fmt, ##__VA_ARGS__)
165299
#else
166300
# define wireless_trace_begin()
167301
# define wireless_trace_end()
302+
# define wireless_trace_beginex(name)
303+
# define wireless_trace_endex(name)
304+
# define wireless_trace_mark(s)
305+
# define wireless_trace_printf(...)
168306
#endif
169307

170308
#endif /* __INCLUDE_NUTTX_TRACE_H */

0 commit comments

Comments
 (0)