X-Git-Url: https://git.lttng.org/?a=blobdiff_plain;f=src%2Fbin%2Flttng-sessiond%2Fust-registry.c;h=93131abaae1b8a1474591441b662a590111cf8d0;hb=9c7134c044b76258a69abd8e6541d8c95f5acb99;hp=1b1e65eba1327f06e90344020e490784363ec694;hpb=70987ead6fdcd00aa3365e3b4d2a6ffd5efd511f;p=lttng-tools.git diff --git a/src/bin/lttng-sessiond/ust-registry.c b/src/bin/lttng-sessiond/ust-registry.c index 1b1e65eba..93131abaa 100644 --- a/src/bin/lttng-sessiond/ust-registry.c +++ b/src/bin/lttng-sessiond/ust-registry.c @@ -6,7 +6,6 @@ */ #define _LGPL_SOURCE -#include #include #include @@ -30,11 +29,11 @@ static int ht_match_event(struct cds_lfht_node *node, const void *_key) struct ust_registry_event *event; int i; - assert(node); - assert(_key); + LTTNG_ASSERT(node); + LTTNG_ASSERT(_key); event = caa_container_of(node, struct ust_registry_event, node.node); - assert(event); + LTTNG_ASSERT(event); key = _key; /* It has to be a perfect match. First, compare the event names. */ @@ -54,7 +53,7 @@ static int ht_match_event(struct cds_lfht_node *node, const void *_key) /* Compare each field individually. */ for (i = 0; i < event->nr_fields; i++) { - if (!match_ustctl_field(&event->fields[i], &key->fields[i])) { + if (!match_lttng_ust_ctl_field(&event->fields[i], &key->fields[i])) { goto no_match; } } @@ -82,7 +81,7 @@ static unsigned long ht_hash_event(const void *_key, unsigned long seed) uint64_t hashed_key; const struct ust_registry_event *key = _key; - assert(key); + LTTNG_ASSERT(key); hashed_key = (uint64_t) hash_key_str(key->name, seed); @@ -95,13 +94,13 @@ static int compare_enums(const struct ust_registry_enum *reg_enum_a, int ret = 0; size_t i; - assert(strcmp(reg_enum_a->name, reg_enum_b->name) == 0); + LTTNG_ASSERT(strcmp(reg_enum_a->name, reg_enum_b->name) == 0); if (reg_enum_a->nr_entries != reg_enum_b->nr_entries) { ret = -1; goto end; } for (i = 0; i < reg_enum_a->nr_entries; i++) { - const struct ustctl_enum_entry *entries_a, *entries_b; + const struct lttng_ust_ctl_enum_entry *entries_a, *entries_b; entries_a = ®_enum_a->entries[i]; entries_b = ®_enum_b->entries[i]; @@ -141,15 +140,15 @@ static int ht_match_enum(struct cds_lfht_node *node, const void *_key) struct ust_registry_enum *_enum; const struct ust_registry_enum *key; - assert(node); - assert(_key); + LTTNG_ASSERT(node); + LTTNG_ASSERT(_key); _enum = caa_container_of(node, struct ust_registry_enum, node.node); - assert(_enum); + LTTNG_ASSERT(_enum); key = _key; - if (strncmp(_enum->name, key->name, LTTNG_UST_SYM_NAME_LEN)) { + if (strncmp(_enum->name, key->name, LTTNG_UST_ABI_SYM_NAME_LEN)) { goto no_match; } if (compare_enums(_enum, key)) { @@ -172,11 +171,11 @@ static int ht_match_enum_id(struct cds_lfht_node *node, const void *_key) struct ust_registry_enum *_enum; const struct ust_registry_enum *key = _key; - assert(node); - assert(_key); + LTTNG_ASSERT(node); + LTTNG_ASSERT(_key); _enum = caa_container_of(node, struct ust_registry_enum, node.node); - assert(_enum); + LTTNG_ASSERT(_enum); if (_enum->id != key->id) { goto no_match; @@ -197,7 +196,7 @@ static unsigned long ht_hash_enum(void *_key, unsigned long seed) { struct ust_registry_enum *key = _key; - assert(key); + LTTNG_ASSERT(key); return hash_key_str(key->name, seed); } @@ -209,32 +208,32 @@ static unsigned long ht_hash_enum(void *_key, unsigned long seed) * trace reader. */ static -int validate_event_field(struct ustctl_field *field, +int validate_event_field(struct lttng_ust_ctl_field *field, const char *event_name, struct ust_app *app) { int ret = 0; switch(field->type.atype) { - case ustctl_atype_integer: - case ustctl_atype_enum: - case ustctl_atype_array: - case ustctl_atype_sequence: - case ustctl_atype_string: - case ustctl_atype_variant: - case ustctl_atype_array_nestable: - case ustctl_atype_sequence_nestable: - case ustctl_atype_enum_nestable: - case ustctl_atype_variant_nestable: + case lttng_ust_ctl_atype_integer: + case lttng_ust_ctl_atype_enum: + case lttng_ust_ctl_atype_array: + case lttng_ust_ctl_atype_sequence: + case lttng_ust_ctl_atype_string: + case lttng_ust_ctl_atype_variant: + case lttng_ust_ctl_atype_array_nestable: + case lttng_ust_ctl_atype_sequence_nestable: + case lttng_ust_ctl_atype_enum_nestable: + case lttng_ust_ctl_atype_variant_nestable: break; - case ustctl_atype_struct: + case lttng_ust_ctl_atype_struct: if (field->type.u.legacy._struct.nr_fields != 0) { WARN("Unsupported non-empty struct field."); ret = -EINVAL; goto end; } break; - case ustctl_atype_struct_nestable: + case lttng_ust_ctl_atype_struct_nestable: if (field->type.u.struct_nestable.nr_fields != 0) { WARN("Unsupported non-empty struct field."); ret = -EINVAL; @@ -242,7 +241,7 @@ int validate_event_field(struct ustctl_field *field, } break; - case ustctl_atype_float: + case lttng_ust_ctl_atype_float: switch (field->type.u._float.mant_dig) { case 0: WARN("UST application '%s' (pid: %d) has unknown float mantissa '%u' " @@ -267,7 +266,7 @@ end: } static -int validate_event_fields(size_t nr_fields, struct ustctl_field *fields, +int validate_event_fields(size_t nr_fields, struct lttng_ust_ctl_field *fields, const char *event_name, struct ust_app *app) { unsigned int i; @@ -285,7 +284,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_value, + struct lttng_ust_ctl_field *fields, int loglevel_value, char *model_emf_uri, struct ust_app *app) { struct ust_registry_event *event = NULL; @@ -367,9 +366,9 @@ struct ust_registry_event *ust_registry_find_event( struct ust_registry_event *event = NULL; struct ust_registry_event key; - assert(chan); - assert(name); - assert(sig); + LTTNG_ASSERT(chan); + LTTNG_ASSERT(name); + LTTNG_ASSERT(sig); /* Setup key for the match function. */ strncpy(key.name, name, sizeof(key.name)); @@ -400,7 +399,7 @@ end: */ 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, + char *sig, size_t nr_fields, struct lttng_ust_ctl_field *fields, int loglevel_value, char *model_emf_uri, int buffer_type, uint32_t *event_id_p, struct ust_app *app) { @@ -410,10 +409,10 @@ int ust_registry_create_event(struct ust_registry_session *session, struct ust_registry_event *event = NULL; struct ust_registry_channel *chan; - assert(session); - assert(name); - assert(sig); - assert(event_id_p); + LTTNG_ASSERT(session); + LTTNG_ASSERT(name); + LTTNG_ASSERT(sig); + LTTNG_ASSERT(event_id_p); rcu_read_lock(); @@ -466,7 +465,7 @@ int ust_registry_create_event(struct ust_registry_session *session, destroy_event(event); event = caa_container_of(nptr, struct ust_registry_event, node.node); - assert(event); + LTTNG_ASSERT(event); event_id = event->id; } else { ERR("UST registry create event add unique failed for event: %s, " @@ -516,13 +515,13 @@ void ust_registry_destroy_event(struct ust_registry_channel *chan, int ret; struct lttng_ht_iter iter; - assert(chan); - assert(event); + LTTNG_ASSERT(chan); + LTTNG_ASSERT(event); /* Delete the node first. */ iter.iter.node = &event->node.node; ret = lttng_ht_del(chan->ht, &iter); - assert(!ret); + LTTNG_ASSERT(!ret); call_rcu(&event->node.head, destroy_event_rcu); @@ -584,8 +583,8 @@ struct ust_registry_enum * struct ust_registry_enum reg_enum_lookup; memset(®_enum_lookup, 0, sizeof(reg_enum_lookup)); - strncpy(reg_enum_lookup.name, enum_name, LTTNG_UST_SYM_NAME_LEN); - reg_enum_lookup.name[LTTNG_UST_SYM_NAME_LEN - 1] = '\0'; + strncpy(reg_enum_lookup.name, enum_name, LTTNG_UST_ABI_SYM_NAME_LEN); + reg_enum_lookup.name[LTTNG_UST_ABI_SYM_NAME_LEN - 1] = '\0'; reg_enum_lookup.id = enum_id; cds_lfht_lookup(session->enums->ht, ht_hash_enum((void *) ®_enum_lookup, lttng_ht_seed), @@ -611,15 +610,15 @@ end: */ int ust_registry_create_or_find_enum(struct ust_registry_session *session, int session_objd, char *enum_name, - struct ustctl_enum_entry *entries, size_t nr_entries, + struct lttng_ust_ctl_enum_entry *entries, size_t nr_entries, uint64_t *enum_id) { int ret = 0; struct cds_lfht_node *nodep; struct ust_registry_enum *reg_enum = NULL, *old_reg_enum; - assert(session); - assert(enum_name); + LTTNG_ASSERT(session); + LTTNG_ASSERT(enum_name); rcu_read_lock(); @@ -639,8 +638,8 @@ int ust_registry_create_or_find_enum(struct ust_registry_session *session, ret = -ENOMEM; goto end; } - strncpy(reg_enum->name, enum_name, LTTNG_UST_SYM_NAME_LEN); - reg_enum->name[LTTNG_UST_SYM_NAME_LEN - 1] = '\0'; + strncpy(reg_enum->name, enum_name, LTTNG_UST_ABI_SYM_NAME_LEN); + reg_enum->name[LTTNG_UST_ABI_SYM_NAME_LEN - 1] = '\0'; /* entries will be owned by reg_enum. */ reg_enum->entries = entries; reg_enum->nr_entries = nr_entries; @@ -666,7 +665,7 @@ int ust_registry_create_or_find_enum(struct ust_registry_session *session, ht_hash_enum(reg_enum, lttng_ht_seed), ht_match_enum_id, reg_enum, ®_enum->node.node); - assert(nodep == ®_enum->node.node); + LTTNG_ASSERT(nodep == ®_enum->node.node); } DBG("UST registry reply with enum %s with id %" PRIu64 " in sess_objd: %u", enum_name, reg_enum->id, session_objd); @@ -688,13 +687,13 @@ static void ust_registry_destroy_enum(struct ust_registry_session *reg_session, int ret; struct lttng_ht_iter iter; - assert(reg_session); - assert(reg_enum); + LTTNG_ASSERT(reg_session); + LTTNG_ASSERT(reg_enum); /* Delete the node first. */ iter.iter.node = ®_enum->node.node; ret = lttng_ht_del(reg_session->enums, &iter); - assert(!ret); + LTTNG_ASSERT(!ret); call_rcu(®_enum->rcu_head, destroy_enum_rcu); } @@ -728,12 +727,12 @@ static void destroy_channel(struct ust_registry_channel *chan, bool notif) struct ust_registry_event *event; enum lttng_error_code cmd_ret; - assert(chan); + LTTNG_ASSERT(chan); if (notif) { cmd_ret = notification_thread_command_remove_channel( - notification_thread_handle, chan->consumer_key, - LTTNG_DOMAIN_UST); + the_notification_thread_handle, + chan->consumer_key, LTTNG_DOMAIN_UST); if (cmd_ret != LTTNG_OK) { ERR("Failed to remove channel from notification thread"); } @@ -761,7 +760,7 @@ int ust_registry_channel_add(struct ust_registry_session *session, int ret = 0; struct ust_registry_channel *chan; - assert(session); + LTTNG_ASSERT(session); chan = zmalloc(sizeof(*chan)); if (!chan) { @@ -818,8 +817,8 @@ struct ust_registry_channel *ust_registry_channel_find( struct lttng_ht_iter iter; struct ust_registry_channel *chan = NULL; - assert(session); - assert(session->channels); + LTTNG_ASSERT(session); + LTTNG_ASSERT(session->channels); DBG3("UST registry channel finding key %" PRIu64, key); @@ -844,7 +843,7 @@ void ust_registry_channel_del_free(struct ust_registry_session *session, struct ust_registry_channel *chan; int ret; - assert(session); + LTTNG_ASSERT(session); rcu_read_lock(); chan = ust_registry_channel_find(session, key); @@ -855,7 +854,7 @@ void ust_registry_channel_del_free(struct ust_registry_session *session, iter.iter.node = &chan->node.node; ret = lttng_ht_del(session->channels, &iter); - assert(!ret); + LTTNG_ASSERT(!ret); rcu_read_unlock(); destroy_channel(chan, notif); @@ -891,7 +890,7 @@ int ust_registry_session_init(struct ust_registry_session **sessionp, int ret; struct ust_registry_session *session; - assert(sessionp); + LTTNG_ASSERT(sessionp); session = zmalloc(sizeof(*session)); if (!session) { @@ -1007,7 +1006,7 @@ void ust_registry_session_destroy(struct ust_registry_session *reg) /* On error, EBUSY can be returned if lock. Code flow error. */ ret = pthread_mutex_destroy(®->lock); - assert(!ret); + LTTNG_ASSERT(!ret); if (reg->channels) { rcu_read_lock(); @@ -1016,7 +1015,7 @@ void ust_registry_session_destroy(struct ust_registry_session *reg) node.node) { /* Delete the node from the ht and free it. */ ret = lttng_ht_del(reg->channels, &iter); - assert(!ret); + LTTNG_ASSERT(!ret); destroy_channel(chan, true); } rcu_read_unlock();