#include <urcu/hlist.h>
#include <lttng/ust-events.h>
#include <lttng/tracepoint.h>
-#include "tracepoint-internal.h"
+#include "common/tracepoint.h"
#include <assert.h>
#include "common/macros.h"
#include <ctype.h>
#include "lttng-tracer-core.h"
-#include "jhash.h"
-#include "error.h"
+#include "common/jhash.h"
#include "lib/lttng-ust/events.h"
/*
/*
* The provider ensures there are no duplicate event names.
- * Duplicated TRACEPOINT_EVENT event names would generate a
+ * Duplicated LTTNG_UST_TRACEPOINT_EVENT event names would generate a
* compile-time error due to duplicated symbol names.
*/
/*
* Check tracepoint provider version compatibility.
*/
- if (desc->major <= LTTNG_UST_PROVIDER_MAJOR) {
+ if (desc->major <= LTTNG_UST_PROVIDER_MAJOR &&
+ desc->major >= LTTNG_UST_PROVIDER_MAJOR_OLDEST_COMPATIBLE) {
DBG("Provider \"%s\" accepted, version %u.%u is compatible "
"with LTTng UST provider version %u.%u.",
desc->provider_name, desc->major, desc->minor,
{
struct lttng_ust_registered_probe *reg_probe = NULL;
- lttng_ust_fixup_tls();
+ lttng_ust_alloc_tls();
/*
* If version mismatch, don't register, but don't trigger assert
void lttng_ust_probe_unregister(struct lttng_ust_registered_probe *reg_probe)
{
- lttng_ust_fixup_tls();
+ lttng_ust_alloc_tls();
if (!reg_probe)
return;
cds_list_add(&list_entry->head, &list->head);
lttng_ust_format_event_name(event_desc, list_entry->tp.name);
if (!event_desc->loglevel) {
- list_entry->tp.loglevel = TRACE_DEFAULT;
+ list_entry->tp.loglevel = LTTNG_UST_TRACEPOINT_LOGLEVEL_DEFAULT;
} else {
list_entry->tp.loglevel = *(*event_desc->loglevel);
}
probe_desc->event_desc[i];
int j;
- if (event_desc->nr_fields == 0) {
+ if (event_desc->tp_class->nr_fields == 0) {
/* Events without fields. */
struct tp_field_list_entry *list_entry;
list_entry->field.field_name[0] = '\0';
list_entry->field.type = LTTNG_UST_ABI_FIELD_OTHER;
if (!event_desc->loglevel) {
- list_entry->field.loglevel = TRACE_DEFAULT;
+ list_entry->field.loglevel = LTTNG_UST_TRACEPOINT_LOGLEVEL_DEFAULT;
} else {
list_entry->field.loglevel = *(*event_desc->loglevel);
}
list_entry->field.nowrite = 1;
}
- for (j = 0; j < event_desc->nr_fields; j++) {
+ for (j = 0; j < event_desc->tp_class->nr_fields; j++) {
const struct lttng_ust_event_field *event_field =
- event_desc->fields[j];
+ event_desc->tp_class->fields[j];
struct tp_field_list_entry *list_entry;
/* Skip event if name is too long. */
list_entry->field.type = LTTNG_UST_ABI_FIELD_OTHER;
}
if (!event_desc->loglevel) {
- list_entry->field.loglevel = TRACE_DEFAULT;
+ list_entry->field.loglevel = LTTNG_UST_TRACEPOINT_LOGLEVEL_DEFAULT;
} else {
list_entry->field.loglevel = *(*event_desc->loglevel);
}