Mi calibrate command: support and validation
[lttng-tools.git] / src / common / mi-lttng.c
index 15deeb21ac64f6de1b214882f8a7f89fc7798548..2fb1c19050da82acc07ac1ec9f89b22cb0c01c59 100644 (file)
@@ -34,6 +34,7 @@ const char * const mi_lttng_element_command_start = "start";
 const char * const mi_lttng_element_command_stop = "stop";
 const char * const mi_lttng_element_command_create = "create";
 const char * const mi_lttng_element_command_destroy = "destroy";
+const char * const mi_lttng_element_command_calibrate = "calibrate";
 const char * const mi_lttng_element_command_output = "output";
 const char * const mi_lttng_element_command_success = "success";
 
@@ -95,6 +96,10 @@ const char * const mi_lttng_loglevel_type_range = "RANGE";
 const char * const mi_lttng_loglevel_type_single = "SINGLE";
 const char * const mi_lttng_loglevel_type_unknown = "UNKNOWN";
 
+/* String related to lttng_calibrate */
+const char * const mi_lttng_element_calibrate = "calibrate";
+const char * const mi_lttng_element_calibrate_function = "FUNCTION";
+
 const char * const mi_lttng_element_empty = "";
 
 const char *mi_lttng_loglevel_string(int value)
@@ -220,6 +225,21 @@ const char *mi_lttng_buffertype_string(enum lttng_buffer_type value)
        }
 }
 
+const char *mi_lttng_calibratetype_string(enum lttng_calibrate_type val)
+{
+       const char *ret;
+
+       switch (val) {
+       case LTTNG_CALIBRATE_FUNCTION:
+               ret = mi_lttng_element_calibrate_function;
+               break;
+       default:
+               ret = mi_lttng_element_empty;
+               break;
+       }
+       return ret;
+}
+
 LTTNG_HIDDEN
 struct mi_writer *mi_lttng_writer_create(int fd_output, int mi_output_type)
 {
@@ -969,3 +989,28 @@ close:
 end:
        return ret;
 }
+
+LTTNG_HIDDEN
+int mi_lttng_calibrate(struct mi_writer *writer,
+               struct lttng_calibrate *calibrate)
+{
+       int ret;
+
+       /* Open calibrate element */
+       ret = mi_lttng_writer_open_element(writer, mi_lttng_element_calibrate);
+       if (ret) {
+               goto end;
+       }
+
+       /* Calibration type */
+       ret = mi_lttng_writer_write_element_string(writer, config_element_type,
+                       mi_lttng_calibratetype_string(calibrate->type));
+       if (ret) {
+               goto end;
+       }
+
+       /* Closing calibrate element */
+       ret = mi_lttng_writer_close_element(writer);
+end:
+       return ret;
+}
This page took 0.024839 seconds and 5 git commands to generate.