+#undef TRACEPOINT_EVENT_CLASS_NOARGS
+#define TRACEPOINT_EVENT_CLASS_NOARGS(name, fields) \
+ struct trace_raw_##name { \
+ fields \
+ }; \
+ static void trace_printf_##name(void *dummy) \
+ { \
+ } \
+ struct trace_event __event_##name = { \
+ __tpstrtab_##name, \
+ }; \
+ static struct trace_event * const __event_ptrs_##name \
+ __attribute__((used, section("__trace_events_ptrs"))) = \
+ &__event_##name; \
+ \
+ static void __attribute__((constructor)) init_##name() \
+ { \
+ void *dummy = NULL; \
+ __register_tracepoint(name, trace_printf_##name, dummy);\
+ }