----- Original Message ----- > From: "Geneviève Bastien" <[email protected]> > To: [email protected] > Sent: Friday, January 24, 2014 3:07:23 PM > Subject: [lttng-dev] [Patch LTTng-tools 2/4] Receive the CTF named > enumerations from ust by the session daemon > > The session daemon can receive the named metadata coming with a tracepoint. > The > named metadata come after the tracepoint description itself.
Looks generally good, except for the naming (global types ?). Thanks, Mathieu > > Signed-off-by: Geneviève Bastien <[email protected]> > --- > src/bin/lttng-sessiond/lttng-ust-ctl.h | 4 +++- > src/bin/lttng-sessiond/ust-app.c | 13 +++++++++---- > src/bin/lttng-sessiond/ust-registry.c | 8 +++++--- > src/bin/lttng-sessiond/ust-registry.h | 6 +++++- > 4 files changed, 22 insertions(+), 9 deletions(-) > > diff --git a/src/bin/lttng-sessiond/lttng-ust-ctl.h > b/src/bin/lttng-sessiond/lttng-ust-ctl.h > index b5acd0f..d229b68 100644 > --- a/src/bin/lttng-sessiond/lttng-ust-ctl.h > +++ b/src/bin/lttng-sessiond/lttng-ust-ctl.h > @@ -400,7 +400,9 @@ int ustctl_recv_register_event(int sock, > */ > size_t *nr_fields, > struct ustctl_field **fields, > - char **model_emf_uri); > + char **model_emf_uri, > + size_t *nr_metadata, > + struct ustctl_named_metadata **named_metadata); > > /* > * Returns 0 on success, negative error value on error. > diff --git a/src/bin/lttng-sessiond/ust-app.c > b/src/bin/lttng-sessiond/ust-app.c > index 34d4c9b..a27ebe0 100644 > --- a/src/bin/lttng-sessiond/ust-app.c > +++ b/src/bin/lttng-sessiond/ust-app.c > @@ -4647,7 +4647,8 @@ error_rcu_unlock: > */ > static int add_event_ust_registry(int sock, int sobjd, int cobjd, char > *name, > char *sig, size_t nr_fields, struct ustctl_field *fields, int > loglevel, > - char *model_emf_uri) > + char *model_emf_uri, size_t nr_metadata, > + struct ustctl_named_metadata *named_metadata) > { > int ret, ret_code; > uint32_t event_id = 0; > @@ -4704,7 +4705,7 @@ static int add_event_ust_registry(int sock, int sobjd, > int cobjd, char *name, > ret_code = ust_registry_create_event(registry, chan_reg_key, > sobjd, cobjd, name, sig, nr_fields, fields, loglevel, > model_emf_uri, ua_sess->buffer_type, &event_id, > - app); > + app, nr_metadata, named_metadata); > > /* > * The return value is returned to ustctl so in case of an error, the > @@ -4764,11 +4765,14 @@ int ust_app_recv_notify(int sock) > char name[LTTNG_UST_SYM_NAME_LEN], *sig, *model_emf_uri; > size_t nr_fields; > struct ustctl_field *fields; > + size_t nr_metadata; > + struct ustctl_named_metadata *named_metadata; > > DBG2("UST app ustctl register event received"); > > ret = ustctl_recv_register_event(sock, &sobjd, &cobjd, name, > &loglevel, > - &sig, &nr_fields, &fields, &model_emf_uri); > + &sig, &nr_fields, &fields, &model_emf_uri, > &nr_metadata, > + &named_metadata); > if (ret < 0) { > if (ret != -EPIPE && ret != -LTTNG_UST_ERR_EXITING) { > ERR("UST app recv event failed with ret %d", > ret); > @@ -4785,7 +4789,8 @@ int ust_app_recv_notify(int sock) > * to the this function. > */ > ret = add_event_ust_registry(sock, sobjd, cobjd, name, sig, > nr_fields, > - fields, loglevel, model_emf_uri); > + fields, loglevel, model_emf_uri, nr_metadata, > + named_metadata); > if (ret < 0) { > goto error; > } > diff --git a/src/bin/lttng-sessiond/ust-registry.c > b/src/bin/lttng-sessiond/ust-registry.c > index dc49416..00e1c26 100644 > --- a/src/bin/lttng-sessiond/ust-registry.c > +++ b/src/bin/lttng-sessiond/ust-registry.c > @@ -133,7 +133,7 @@ int validate_event_fields(size_t nr_fields, struct > ustctl_field *fields, > static struct ust_registry_event *alloc_event(int session_objd, > int channel_objd, char *name, char *sig, size_t nr_fields, > struct ustctl_field *fields, int loglevel, char *model_emf_uri, > - struct ust_app *app) > + struct ust_app *app, size_t nr_metadata, struct > ustctl_named_metadata > *named_metadata) > { > struct ust_registry_event *event = NULL; > > @@ -163,6 +163,8 @@ static struct ust_registry_event *alloc_event(int > session_objd, > strncpy(event->name, name, sizeof(event->name)); > event->name[sizeof(event->name) - 1] = '\0'; > } > + event->nr_metadata = nr_metadata; > + event->named_metadata = named_metadata; > cds_lfht_node_init(&event->node.node); > > error: > @@ -249,7 +251,7 @@ int ust_registry_create_event(struct ust_registry_session > *session, > uint64_t chan_key, int session_objd, int channel_objd, char > *name, > char *sig, size_t nr_fields, struct ustctl_field *fields, int > loglevel, > char *model_emf_uri, int buffer_type, uint32_t *event_id_p, > - struct ust_app *app) > + struct ust_app *app, size_t nr_metadata, struct > ustctl_named_metadata > *named_metadata) > { > int ret; > uint32_t event_id; > @@ -286,7 +288,7 @@ int ust_registry_create_event(struct ust_registry_session > *session, > } > > event = alloc_event(session_objd, channel_objd, name, sig, nr_fields, > - fields, loglevel, model_emf_uri, app); > + fields, loglevel, model_emf_uri, app, nr_metadata, > named_metadata); > if (!event) { > ret = -ENOMEM; > goto error_free; > diff --git a/src/bin/lttng-sessiond/ust-registry.h > b/src/bin/lttng-sessiond/ust-registry.h > index f195b74..183db0f 100644 > --- a/src/bin/lttng-sessiond/ust-registry.h > +++ b/src/bin/lttng-sessiond/ust-registry.h > @@ -137,6 +137,9 @@ struct ust_registry_event { > * initialize the node and the event_name/signature for the match > function. > */ > struct lttng_ht_node_u64 node; > + /* Named metadata needed by the event */ > + struct ustctl_named_metadata *named_metadata; > + size_t nr_metadata; > }; > > /* > @@ -226,7 +229,8 @@ int ust_registry_create_event(struct ust_registry_session > *session, > uint64_t chan_key, int session_objd, int channel_objd, char > *name, > char *sig, size_t nr_fields, struct ustctl_field *fields, int > loglevel, > char *model_emf_uri, int buffer_type, uint32_t *event_id_p, > - struct ust_app *app); > + struct ust_app *app, > + size_t nr_metadata, struct ustctl_named_metadata > *named_metadata); > struct ust_registry_event *ust_registry_find_event( > struct ust_registry_channel *chan, char *name, char *sig); > void ust_registry_destroy_event(struct ust_registry_channel *chan, > -- > 1.8.5.3 > > > _______________________________________________ > lttng-dev mailing list > [email protected] > http://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev > -- Mathieu Desnoyers EfficiOS Inc. http://www.efficios.com _______________________________________________ lttng-dev mailing list [email protected] http://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev
