_TP_PARAMS(_args), \
_TP_PARAMS(_fields)) \
TRACEPOINT_EVENT_INSTANCE(_provider, _name, _name, \
- _TP_PARAMS(args))
+ _TP_PARAMS(_args))
/* Helpers */
#define _TP_ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0]))
#undef __get_dynamic_len
+/*
+ * Stage 5.1 of tracepoint event generation.
+ *
+ * Create probe signature
+ */
+
+/* Reset all macros within TRACEPOINT_EVENT */
+#include <lttng/ust-tracepoint-event-reset.h>
+
+#undef TP_ARGS
+#define TP_ARGS(args...) #args
+
+#undef TRACEPOINT_EVENT_CLASS
+#define TRACEPOINT_EVENT_CLASS(_provider, _name, _args, _fields) \
+const char __tp_event_signature___##_provider##___##_name[] = \
+ _args;
+
+#include TRACEPOINT_INCLUDE
+
/*
* Stage 6 of tracepoint event generation.
*
.probe_callback = (void *) &__event_probe__##_provider##___##_template,\
.nr_fields = _TP_ARRAY_SIZE(__event_fields___##_provider##___##_template), \
.loglevel = &__ref_loglevel___##_provider##___##_name, \
+ .signature = __tp_event_signature___##_provider##___##_template, \
};
#include TRACEPOINT_INCLUDE
* fix the events awaiting probe load.
*/
for (i = 0; i < desc->nr_events; i++) {
- ret = pending_probe_fix_events(desc->event_desc[i]);
+ const struct lttng_event_desc *ed;
+
+ ed = desc->event_desc[i];
+ DBG("Registered event probe \"%s\" with signature \"%s\"",
+ ed->name, ed->signature);
+ ret = pending_probe_fix_events(ed);
assert(!ret);
}
end: