X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=src%2Fbin%2Flttng-sessiond%2Fust-metadata.c;h=a657f7c5d3d26b62472e66ecef3f188e987ee121;hb=fb180e6e4855acd6eff826ac6253b58d5d3e6da4;hp=851fb99f4fed9679a7c609066c119a8bbb70991b;hpb=3b016e589cc2229f0d3be8e6e61e8eeed8b7e9e6;p=lttng-tools.git diff --git a/src/bin/lttng-sessiond/ust-metadata.c b/src/bin/lttng-sessiond/ust-metadata.c index 851fb99f4..a657f7c5d 100644 --- a/src/bin/lttng-sessiond/ust-metadata.c +++ b/src/bin/lttng-sessiond/ust-metadata.c @@ -28,6 +28,7 @@ #include #include #include +#include #include "ust-registry.h" #include "ust-clock.h" @@ -37,7 +38,6 @@ #define max_t(type, a, b) ((type) ((a) > (b) ? (a) : (b))) #endif -#define NSEC_PER_SEC 1000000000ULL #define NR_CLOCK_OFFSET_SAMPLES 10 struct offset_sample { @@ -74,7 +74,6 @@ int fls(unsigned int x) r -= 2; } if (!(x & 0x80000000U)) { - x <<= 1; r -= 1; } return r; @@ -262,6 +261,7 @@ int ust_metadata_enum_statedump(struct ust_registry_session *session, if (ret) { goto end; } + nesting++; /* Dump all entries */ for (i = 0; i < nr_entries; i++) { const struct ustctl_enum_entry *entry = &entries[i]; @@ -299,40 +299,56 @@ int ust_metadata_enum_statedump(struct ust_registry_session *session, goto end; } } - ret = lttng_metadata_printf(session, - "\" = "); + ret = lttng_metadata_printf(session, "\""); if (ret) { goto end; } - if (entry->start.signedness) { - ret = lttng_metadata_printf(session, - "%lld", (long long) entry->start.value); + if (entry->u.extra.options & + USTCTL_UST_ENUM_ENTRY_OPTION_IS_AUTO) { + ret = lttng_metadata_printf(session, ",\n"); + if (ret) { + goto end; + } } else { ret = lttng_metadata_printf(session, - "%llu", entry->start.value); - } - if (ret) { - goto end; - } + " = "); + if (ret) { + goto end; + } - if (entry->start.signedness == entry->end.signedness && - entry->start.value == entry->end.value) { - ret = lttng_metadata_printf(session, - ",\n"); - } else { - if (entry->end.signedness) { + if (entry->start.signedness) { ret = lttng_metadata_printf(session, - " ... %lld,\n", (long long) entry->end.value); + "%lld", (long long) entry->start.value); } else { ret = lttng_metadata_printf(session, - " ... %llu,\n", entry->end.value); + "%llu", entry->start.value); + } + if (ret) { + goto end; + } + + if (entry->start.signedness == entry->end.signedness && + entry->start.value == + entry->end.value) { + ret = lttng_metadata_printf(session, ",\n"); + } else { + if (entry->end.signedness) { + ret = lttng_metadata_printf(session, + " ... %lld,\n", + (long long) entry->end.value); + } else { + ret = lttng_metadata_printf(session, + " ... %llu,\n", + entry->end.value); + } + } + if (ret) { + goto end; } - } - if (ret) { - goto end; } } + nesting--; sanitize_ctf_identifier(identifier, field_name); ret = print_tabs(session, nesting); if (ret) { @@ -387,6 +403,9 @@ int _lttng_variant_statedump(struct ust_registry_session *session, } sanitize_ctf_identifier(identifier, variant->name); ret = print_tabs(session, nesting); + if (ret) { + goto end; + } ret = lttng_metadata_printf(session, "} _%s;\n", identifier); @@ -802,7 +821,7 @@ int measure_single_clock_offset(struct offset_sample *sample) int ret; monotonic[0] = trace_clock_read64(); - ret = clock_gettime(CLOCK_REALTIME, &rts); + ret = lttng_clock_gettime(CLOCK_REALTIME, &rts); if (ret < 0) { return ret; } @@ -858,7 +877,6 @@ int ust_metadata_session_statedump(struct ust_registry_session *session, uint32_t major, uint32_t minor) { - unsigned char *uuid_c; char uuid_s[UUID_STR_LEN], clock_uuid_s[UUID_STR_LEN]; int ret = 0; @@ -866,14 +884,7 @@ int ust_metadata_session_statedump(struct ust_registry_session *session, assert(session); - uuid_c = session->uuid; - - snprintf(uuid_s, sizeof(uuid_s), - "%02x%02x%02x%02x-%02x%02x-%02x%02x-%02x%02x-%02x%02x%02x%02x%02x%02x", - uuid_c[0], uuid_c[1], uuid_c[2], uuid_c[3], - uuid_c[4], uuid_c[5], uuid_c[6], uuid_c[7], - uuid_c[8], uuid_c[9], uuid_c[10], uuid_c[11], - uuid_c[12], uuid_c[13], uuid_c[14], uuid_c[15]); + lttng_uuid_to_str(session->uuid, uuid_s); /* For crash ABI */ ret = lttng_metadata_printf(session,