-#define make_mark_struct_name(channel, name, unique) \
- make_mark_struct_name2(channel, name, unique)
-
-#define make_mark_struct_name2(channel, name, unique) \
- __mark_struct_##channel##_##name##_##unique
-
-#define __trace_mark(generic, channel, name, call_private, format, args...) \
- __trace_mark_counter(generic, channel, name, __COUNTER__, call_private, format, ## args)
-
-#define __trace_mark_counter(generic, channel, name, unique, call_private, format, args...) \
- do { \
- DEFINE_MARKER(channel, name, format, unique); \
- __mark_check_format(format, ## args); \
- if (!generic) { \
- if (unlikely(imv_read( \
- make_mark_struct_name(channel, name, unique).state))) \
- (make_mark_struct_name(channel, name, unique).call) \
- (&make_mark_struct_name(channel, name, unique), \
- call_private, ®s, ## args); \
- } else { \
- if (unlikely(_imv_read( \
- make_mark_struct_name(channel, name, unique).state))) \
- (make_mark_struct_name(channel, name, unique).call) \
- (&make_mark_struct_name(channel, name, unique), \
- call_private, ®s, ## args); \
- } \
- } while (0)
-
-#define __trace_mark_tp(channel, name, call_private, tp_name, tp_cb, format, args...) \
- __trace_mark_tp_counter(channel, name, __COUNTER__, call_private, tp_name, tp_cb, format, ## args)