X-Git-Url: http://git.efficios.com/?p=lttng-tools.git;a=blobdiff_plain;f=src%2Fcommon%2Fmi-lttng.c;h=2fb1c19050da82acc07ac1ec9f89b22cb0c01c59;hp=15deeb21ac64f6de1b214882f8a7f89fc7798548;hb=7e66b1b0255bbe6b5a55a83d3ff182ba3d4300ee;hpb=65f25c661e03316f5f0cb4a035df518c875c17f8 diff --git a/src/common/mi-lttng.c b/src/common/mi-lttng.c index 15deeb21a..2fb1c1905 100644 --- a/src/common/mi-lttng.c +++ b/src/common/mi-lttng.c @@ -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; +}