Add ctf_enum_auto() for autoincrementing enumeration values
[deliverable/lttng-modules.git] / lttng-events.c
index f2a9a8a58498f1f1a833e8ec1b97e76093391982..ef934374b7442845d6bcb4e3d7fb798742eb8eda 100644 (file)
@@ -213,6 +213,16 @@ void lttng_session_destroy(struct lttng_session *session)
        kfree(session);
 }
 
+int lttng_session_statedump(struct lttng_session *session)
+{
+       int ret;
+
+       mutex_lock(&sessions_mutex);
+       ret = lttng_statedump_start(session);
+       mutex_unlock(&sessions_mutex);
+       return ret;
+}
+
 int lttng_session_enable(struct lttng_session *session)
 {
        int ret = 0;
@@ -244,8 +254,10 @@ int lttng_session_enable(struct lttng_session *session)
        lttng_session_sync_enablers(session);
 
        /* Clear each stream's quiescent state. */
-       list_for_each_entry(chan, &session->chan, list)
-               lib_ring_buffer_clear_quiescent_channel(chan->chan);
+       list_for_each_entry(chan, &session->chan, list) {
+               if (chan->channel_type != METADATA_CHANNEL)
+                       lib_ring_buffer_clear_quiescent_channel(chan->chan);
+       }
 
        ACCESS_ONCE(session->active) = 1;
        ACCESS_ONCE(session->been_active) = 1;
@@ -279,8 +291,10 @@ int lttng_session_disable(struct lttng_session *session)
        lttng_session_sync_enablers(session);
 
        /* Set each stream's quiescent state. */
-       list_for_each_entry(chan, &session->chan, list)
-               lib_ring_buffer_set_quiescent_channel(chan->chan);
+       list_for_each_entry(chan, &session->chan, list) {
+               if (chan->channel_type != METADATA_CHANNEL)
+                       lib_ring_buffer_set_quiescent_channel(chan->chan);
+       }
 end:
        mutex_unlock(&sessions_mutex);
        return ret;
@@ -1941,8 +1955,19 @@ int _lttng_enum_statedump(struct lttng_session *session,
                        if (ret)
                                goto end;
                }
+               ret = lttng_metadata_printf(session, "\"");
+               if (ret)
+                       goto end;
+
+               if (entry->options.is_auto) {
+                       ret = lttng_metadata_printf(session, ",\n");
+                       if (ret)
+                               goto end;
+                       continue;
+               }
+
                ret = lttng_metadata_printf(session,
-                               "\" = ");
+                               " = ");
                if (ret)
                        goto end;
                if (entry->start.signedness)
This page took 0.026664 seconds and 5 git commands to generate.