X-Git-Url: http://git.liburcu.org/?a=blobdiff_plain;f=src%2Flib%2Flttng-ust%2Flttng-events.c;h=320d459e1c4397a1c19bbf03eca448d46c1ba514;hb=21d04cc41c966d687aab6e0ba60b2cb1466356ca;hp=8596b7a088025c817bf3e0a177fa6d1ba5db8955;hpb=8cd08025a83fe1907c6fd04f94c8f9ae362c3da7;p=lttng-ust.git diff --git a/src/lib/lttng-ust/lttng-events.c b/src/lib/lttng-ust/lttng-events.c index 8596b7a0..320d459e 100644 --- a/src/lib/lttng-ust/lttng-events.c +++ b/src/lib/lttng-ust/lttng-events.c @@ -270,8 +270,8 @@ void register_event(struct lttng_ust_event_common *event) desc = event->priv->desc; ret = lttng_ust_tp_probe_register_queue_release(desc->probe_desc->provider_name, desc->event_name, - desc->probe_callback, - event, desc->signature); + desc->tp_class->probe_callback, + event, desc->tp_class->signature); WARN_ON_ONCE(ret); if (!ret) event->priv->registered = 1; @@ -287,7 +287,7 @@ void unregister_event(struct lttng_ust_event_common *event) desc = event->priv->desc; ret = lttng_ust_tp_probe_unregister_queue_release(desc->probe_desc->provider_name, desc->event_name, - desc->probe_callback, + desc->tp_class->probe_callback, event); WARN_ON_ONCE(ret); if (!ret) @@ -729,7 +729,7 @@ int lttng_event_recorder_create(const struct lttng_ust_event_desc *desc, goto socket_error; } - ret = lttng_create_all_event_enums(desc->nr_fields, desc->fields, + ret = lttng_create_all_event_enums(desc->tp_class->nr_fields, desc->tp_class->fields, session); if (ret < 0) { DBG("Error (%d) adding enum to session", ret); @@ -793,9 +793,9 @@ int lttng_event_recorder_create(const struct lttng_ust_event_desc *desc, chan->priv->parent.objd, name, loglevel, - desc->signature, - desc->nr_fields, - desc->fields, + desc->tp_class->signature, + desc->tp_class->nr_fields, + desc->tp_class->fields, uri, &event_recorder->priv->id); if (ret < 0) { @@ -1173,12 +1173,12 @@ void _event_enum_destroy(struct lttng_ust_event_common *event) unsigned int i; /* Destroy enums of the current event. */ - for (i = 0; i < event_recorder->parent->priv->desc->nr_fields; i++) { + for (i = 0; i < event_recorder->parent->priv->desc->tp_class->nr_fields; i++) { const struct lttng_ust_enum_desc *enum_desc; const struct lttng_ust_event_field *field; struct lttng_enum *curr_enum; - field = event_recorder->parent->priv->desc->fields[i]; + field = event_recorder->parent->priv->desc->tp_class->fields[i]; switch (field->type->type) { case lttng_ust_type_enum: enum_desc = lttng_ust_get_type_enum(field->type)->desc; @@ -1745,13 +1745,6 @@ void lttng_session_sync_event_enablers(struct lttng_ust_session *session) lttng_ust_tp_probe_prune_release_queue(); } -/* Support for event notifier is introduced by probe provider major version 2. */ -static -bool lttng_ust_probe_supports_event_notifier(const struct lttng_ust_probe_desc *probe_desc) -{ - return probe_desc->major >= 2; -} - static void lttng_create_event_notifier_if_missing( struct lttng_event_notifier_enabler *event_notifier_enabler) @@ -1805,18 +1798,6 @@ void lttng_create_event_notifier_if_missing( if (found) continue; - /* Check that the probe supports event notifiers, else report the error. */ - if (!lttng_ust_probe_supports_event_notifier(probe_desc)) { - ERR("Probe \"%s\" contains event \"%s:%s\" which matches an enabled event notifier, " - "but its version (%u.%u) is too old and does not implement event notifiers. " - "It needs to be recompiled against a newer version of LTTng-UST, otherwise " - "this event will not generate any notification.", - probe_desc->provider_name, - probe_desc->provider_name, desc->event_name, - probe_desc->major, - probe_desc->minor); - continue; - } /* * We need to create a event_notifier for this event probe. */ @@ -2002,8 +1983,7 @@ void lttng_ust_context_set_session_provider(const char *name, struct lttng_ust_ring_buffer_ctx *ctx, struct lttng_ust_channel_buffer *chan), void (*get_value)(void *priv, struct lttng_ust_probe_ctx *probe_ctx, - struct lttng_ust_ctx_value *value), - void *priv) + struct lttng_ust_ctx_value *value)) { struct lttng_ust_session_private *session_priv; @@ -2013,18 +1993,18 @@ void lttng_ust_context_set_session_provider(const char *name, int ret; ret = lttng_ust_context_set_provider_rcu(&session_priv->ctx, - name, get_size, record, get_value, priv); + name, get_size, record, get_value); if (ret) abort(); cds_list_for_each_entry(chan, &session_priv->chan_head, node) { ret = lttng_ust_context_set_provider_rcu(&chan->ctx, - name, get_size, record, get_value, priv); + name, get_size, record, get_value); if (ret) abort(); } cds_list_for_each_entry(event_recorder_priv, &session_priv->events_head, node) { ret = lttng_ust_context_set_provider_rcu(&event_recorder_priv->ctx, - name, get_size, record, get_value, priv); + name, get_size, record, get_value); if (ret) abort(); } @@ -2045,8 +2025,7 @@ void lttng_ust_context_set_event_notifier_group_provider(const char *name, struct lttng_ust_ring_buffer_ctx *ctx, struct lttng_ust_channel_buffer *chan), void (*get_value)(void *priv, struct lttng_ust_probe_ctx *probe_ctx, - struct lttng_ust_ctx_value *value), - void *priv) + struct lttng_ust_ctx_value *value)) { struct lttng_event_notifier_group *event_notifier_group; @@ -2055,7 +2034,7 @@ void lttng_ust_context_set_event_notifier_group_provider(const char *name, ret = lttng_ust_context_set_provider_rcu( &event_notifier_group->ctx, - name, get_size, record, get_value, priv); + name, get_size, record, get_value); if (ret) abort(); }