|
48 | 48 | (ros_trace_ ## event_name)()
|
49 | 49 | # define _TRACEPOINT_ARGS(event_name, ...) \
|
50 | 50 | (ros_trace_ ## event_name)(__VA_ARGS__)
|
| 51 | +# define _DO_TRACEPOINT_NOARGS(event_name) \ |
| 52 | + (ros_trace_do_ ## event_name)() |
| 53 | +# define _DO_TRACEPOINT_ARGS(event_name, ...) \ |
| 54 | + (ros_trace_do_ ## event_name)(__VA_ARGS__) |
51 | 55 | # define _DECLARE_TRACEPOINT_NOARGS(event_name) \
|
52 |
| - TRACETOOLS_PUBLIC void ros_trace_ ## event_name(); |
| 56 | + TRACETOOLS_PUBLIC void ros_trace_ ## event_name(); \ |
| 57 | + TRACETOOLS_PUBLIC bool ros_trace_enabled_ ## event_name(); \ |
| 58 | + TRACETOOLS_PUBLIC void ros_trace_do_ ## event_name(); |
53 | 59 | # define _DECLARE_TRACEPOINT_ARGS(event_name, ...) \
|
54 |
| - TRACETOOLS_PUBLIC void ros_trace_ ## event_name(__VA_ARGS__); |
| 60 | + TRACETOOLS_PUBLIC void ros_trace_ ## event_name(__VA_ARGS__); \ |
| 61 | + TRACETOOLS_PUBLIC bool ros_trace_enabled_ ## event_name(); \ |
| 62 | + TRACETOOLS_PUBLIC void ros_trace_do_ ## event_name(__VA_ARGS__); |
55 | 63 |
|
56 | 64 | # define _GET_MACRO_TRACEPOINT(...) \
|
57 | 65 | _GET_MACRO( \
|
58 | 66 | __VA_ARGS__, \
|
59 | 67 | _TRACEPOINT_ARGS, _TRACEPOINT_ARGS, _TRACEPOINT_ARGS, _TRACEPOINT_ARGS, _TRACEPOINT_ARGS, \
|
60 | 68 | _TRACEPOINT_ARGS, _TRACEPOINT_ARGS, _TRACEPOINT_ARGS, _TRACEPOINT_ARGS, _TRACEPOINT_NOARGS, \
|
61 | 69 | shoud_not_be_called_without_any_arguments)
|
| 70 | +# define _GET_MACRO_DO_TRACEPOINT(...) \ |
| 71 | + _GET_MACRO( \ |
| 72 | + __VA_ARGS__, \ |
| 73 | + _DO_TRACEPOINT_ARGS, _DO_TRACEPOINT_ARGS, _DO_TRACEPOINT_ARGS, _DO_TRACEPOINT_ARGS, \ |
| 74 | + _DO_TRACEPOINT_ARGS, _DO_TRACEPOINT_ARGS, _DO_TRACEPOINT_ARGS, _DO_TRACEPOINT_ARGS, \ |
| 75 | + _DO_TRACEPOINT_ARGS, _DO_TRACEPOINT_NOARGS, shoud_not_be_called_without_any_arguments) |
62 | 76 | # define _GET_MACRO_DECLARE_TRACEPOINT(...) \
|
63 | 77 | _GET_MACRO( \
|
64 | 78 | __VA_ARGS__, \
|
|
77 | 91 | */
|
78 | 92 | # define TRACEPOINT(...) \
|
79 | 93 | _GET_MACRO_TRACEPOINT(__VA_ARGS__)(__VA_ARGS__)
|
| 94 | +# define TRACEPOINT_ENABLED(event_name) \ |
| 95 | + ros_trace_enabled_ ## event_name() |
| 96 | +# define DO_TRACEPOINT(...) \ |
| 97 | + _GET_MACRO_DO_TRACEPOINT(__VA_ARGS__)(__VA_ARGS__) |
80 | 98 | # define DECLARE_TRACEPOINT(...) \
|
81 | 99 | _GET_MACRO_DECLARE_TRACEPOINT(__VA_ARGS__)(__VA_ARGS__)
|
82 | 100 | #else
|
83 | 101 | # define TRACEPOINT(...) ((void) (0))
|
| 102 | +# define TRACEPOINT_ENABLED(event_name) false |
| 103 | +# define DO_TRACEPOINT(...) ((void) (0)) |
84 | 104 | # define DECLARE_TRACEPOINT(...)
|
85 | 105 | #endif // TRACETOOLS_DISABLED
|
86 | 106 |
|
|
0 commit comments