Add support for UST's autoincrementing enum entries
[lttng-tools.git] / src / bin / lttng-sessiond / ust-metadata.c
index c97013f438a88df9b9d7ccf1205761731261860b..328d6ea4c414d15699c6c3aa84fdc70eede3b8e4 100644 (file)
@@ -300,38 +300,52 @@ 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.options.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--;
This page took 0.023787 seconds and 4 git commands to generate.