Add ustctl command to regenerate the statedump
[lttng-ust.git] / liblttng-ust-ctl / ustctl.c
index fcb6f0d55c398f2cc534d7f8aa27c5f4e21b5657..7b46eda2675caaa00b4b84124c188bd2748650f2 100644 (file)
@@ -1725,7 +1725,24 @@ int ustctl_get_sequence_number(struct ustctl_consumer_stream *stream,
        return client_cb->sequence_number(buf, handle, seq);
 }
 
-#if defined(__x86_64__) || defined(__i386__)
+int ustctl_get_instance_id(struct ustctl_consumer_stream *stream,
+               uint64_t *id)
+{
+       struct lttng_ust_client_lib_ring_buffer_client_cb *client_cb;
+       struct lttng_ust_lib_ring_buffer *buf;
+       struct lttng_ust_shm_handle *handle;
+
+       if (!stream || !id)
+               return -EINVAL;
+       buf = stream->buf;
+       handle = stream->chan->chan->handle;
+       client_cb = get_client_cb(buf, handle);
+       if (!client_cb)
+               return -ENOSYS;
+       return client_cb->instance_id(buf, handle, id);
+}
+
+#if defined(__x86_64__) || defined(__i386__) || defined(__ARM_ARCH_7A__)
 
 int ustctl_has_perf_counters(void)
 {
@@ -2166,6 +2183,23 @@ int ustctl_reply_register_channel(int sock,
        return 0;
 }
 
+/* Regenerate the statedump. */
+int ustctl_regenerate_statedump(int sock, int handle)
+{
+       struct ustcomm_ust_msg lum;
+       struct ustcomm_ust_reply lur;
+       int ret;
+
+       memset(&lum, 0, sizeof(lum));
+       lum.handle = handle;
+       lum.cmd = LTTNG_UST_SESSION_STATEDUMP;
+       ret = ustcomm_send_app_cmd(sock, &lum, &lur);
+       if (ret)
+               return ret;
+       DBG("Regenerated statedump for handle %u", handle);
+       return 0;
+}
+
 static __attribute__((constructor))
 void ustctl_init(void)
 {
This page took 0.044808 seconds and 4 git commands to generate.