Mi calibrate command: support and validation
[lttng-tools.git] / src / common / mi-lttng.c
index 02500ff14fe0a0df4f9ad9f94047e65f346553e1..2fb1c19050da82acc07ac1ec9f89b22cb0c01c59 100644 (file)
 
 /* Strings related to command */
 const char * const mi_lttng_element_command = "command";
+const char * const mi_lttng_element_command_name = "name";
 const char * const mi_lttng_element_command_version = "version";
 const char * const mi_lttng_element_command_list = "list";
-const char * const mi_lttng_element_command_name = "name";
+const char * const mi_lttng_element_command_save = "save";
+const char * const mi_lttng_element_command_load = "load";
+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";
 
-/* Strings related to command: version */
+/* Strings related to version command */
 const char * const mi_lttng_element_version = "version";
 const char * const mi_lttng_element_version_str = "string";
 const char * const mi_lttng_element_version_web = "url";
 const char * const mi_lttng_element_version_major = "major";
 const char * const mi_lttng_element_version_minor = "minor";
+const char * const mi_lttng_element_version_commit = "commit";
 const char * const mi_lttng_element_version_license = "license";
 const char * const mi_lttng_element_version_patch_level = "patchLevel";
 const char * const mi_lttng_element_version_description = "description";
@@ -45,6 +54,12 @@ const char * const mi_lttng_element_pids = "pids";
 const char * const mi_lttng_element_pid = "pid";
 const char * const mi_lttng_element_pid_id = "id";
 
+/* Strings related to save command */
+const char * const mi_lttng_element_save = "save";
+
+/* Strings related to load command */
+const char * const mi_lttng_element_load = "load";
+
 /* String related to a lttng_event_field */
 const char * const mi_lttng_element_event_field = "event_field";
 const char * const mi_lttng_element_event_fields = "event_fields";
@@ -75,11 +90,16 @@ const char * const mi_lttng_loglevel_str_notice = "TRACE_NOTICE";
 const char * const mi_lttng_loglevel_str_unknown = "UNKNOWN";
 const char * const mi_lttng_loglevel_str_warning = "TRACE_WARNING";
 
+/* String related to loglevel type */
 const char * const mi_lttng_loglevel_type_all = "ALL";
 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)
@@ -205,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)
 {
@@ -372,6 +407,13 @@ int mi_lttng_version(struct mi_writer *writer, struct mi_lttng_version *version,
                goto end;
        }
 
+       /* Commit version number */
+       ret = mi_lttng_writer_write_element_string(writer,
+                       mi_lttng_element_version_commit, version->version_commit);
+       if (ret) {
+               goto end;
+       }
+
        /* Patch number */
        ret = mi_lttng_writer_write_element_unsigned_int(writer,
                        mi_lttng_element_version_patch_level, version->version_patchlevel);
@@ -947,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.024238 seconds and 4 git commands to generate.