rotation-api: pass session name explicitly
[lttng-tools.git] / src / common / mi-lttng.c
index 5530acee9a1ce11e91aa2cef3e863ca385901a98..e8236d841300650a4f8b68b92a8dbf6e6ac5416e 100644 (file)
 #define MI_SCHEMA_MINOR_VERSION 0
 
 /* Machine interface namespace URI */
-const char * const mi_lttng_xmlns = "xmlns";
-const char * const mi_lttng_xmlns_xsi = "xmlns:xsi";
-const char * const mi_lttng_w3_schema_uri = "http://www.w3.org/2001/XMLSchema-instance";
-const char * const mi_lttng_schema_location = "xsi:schemaLocation";
-const char * const mi_lttng_schema_location_uri =
+LTTNG_HIDDEN const char * const mi_lttng_xmlns = "xmlns";
+LTTNG_HIDDEN const char * const mi_lttng_xmlns_xsi = "xmlns:xsi";
+LTTNG_HIDDEN const char * const mi_lttng_w3_schema_uri = "http://www.w3.org/2001/XMLSchema-instance";
+LTTNG_HIDDEN const char * const mi_lttng_schema_location = "xsi:schemaLocation";
+LTTNG_HIDDEN const char * const mi_lttng_schema_location_uri =
        DEFAULT_LTTNG_MI_NAMESPACE " "
-       "http://lttng.org/xml/schemas/lttng-mi/" XSTR(MI_SCHEMA_MAJOR_VERSION)
+       "https://lttng.org/xml/schemas/lttng-mi/" XSTR(MI_SCHEMA_MAJOR_VERSION)
        "/lttng-mi-" XSTR(MI_SCHEMA_MAJOR_VERSION) "."
        XSTR(MI_SCHEMA_MINOR_VERSION) ".xsd";
-const char * const mi_lttng_schema_version = "schemaVersion";
-const char * const mi_lttng_schema_version_value = XSTR(MI_SCHEMA_MAJOR_VERSION)
+LTTNG_HIDDEN const char * const mi_lttng_schema_version = "schemaVersion";
+LTTNG_HIDDEN const char * const mi_lttng_schema_version_value = XSTR(MI_SCHEMA_MAJOR_VERSION)
        "." XSTR(MI_SCHEMA_MINOR_VERSION);
 
 /* Strings related to command */
 const char * const mi_lttng_element_command = "command";
 const char * const mi_lttng_element_command_action = "snapshot_action";
 const char * const mi_lttng_element_command_add_context = "add-context";
-const char * const mi_lttng_element_command_calibrate = "calibrate";
 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_disable_channel = "disable-channel";
@@ -56,6 +55,10 @@ const char * const mi_lttng_element_command_enable_channels = "enable-channel";
 const char * const mi_lttng_element_command_enable_event = "enable-event";
 const char * const mi_lttng_element_command_list = "list";
 const char * const mi_lttng_element_command_load = "load";
+LTTNG_HIDDEN const char * const mi_lttng_element_command_metadata = "metadata";
+LTTNG_HIDDEN const char * const mi_lttng_element_command_metadata_action = "metadata_action";
+LTTNG_HIDDEN const char * const mi_lttng_element_command_regenerate = "regenerate";
+LTTNG_HIDDEN const char * const mi_lttng_element_command_regenerate_action = "regenerate_action";
 const char * const mi_lttng_element_command_name = "name";
 const char * const mi_lttng_element_command_output = "output";
 const char * const mi_lttng_element_command_save = "save";
@@ -71,6 +74,9 @@ const char * const mi_lttng_element_command_success = "success";
 const char * const mi_lttng_element_command_track = "track";
 const char * const mi_lttng_element_command_untrack = "untrack";
 const char * const mi_lttng_element_command_version = "version";
+const char * const mi_lttng_element_command_rotate = "rotate";
+const char * const mi_lttng_element_command_enable_rotation = "enable-rotation";
+const char * const mi_lttng_element_command_disable_rotation = "disable-rotation";
 
 /* Strings related to version command */
 const char * const mi_lttng_element_version = "version";
@@ -98,6 +104,8 @@ const char * const mi_lttng_element_save = "save";
 
 /* Strings related to load command */
 const char * const mi_lttng_element_load = "load";
+LTTNG_HIDDEN const char * const mi_lttng_element_load_overrides = "overrides";
+LTTNG_HIDDEN const char * const mi_lttng_element_load_override_url = "url";
 
 /* General elements of mi_lttng */
 const char * const mi_lttng_element_empty = "";
@@ -163,10 +171,6 @@ 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";
-
 /* String related to a lttng_snapshot_output */
 const char * const mi_lttng_element_snapshot_ctrl_url = "ctrl_url";
 const char * const mi_lttng_element_snapshot_data_url = "data_url";
@@ -178,6 +182,26 @@ const char * const mi_lttng_element_snapshots = "snapshots";
 /* String related to track/untrack command */
 const char * const mi_lttng_element_track_untrack_all_wildcard = "*";
 
+LTTNG_HIDDEN const char * const mi_lttng_element_session_name = "session_name";
+
+/* String related to rotate command */
+LTTNG_HIDDEN const char * const mi_lttng_element_rotation = "rotation";
+LTTNG_HIDDEN const char * const mi_lttng_element_rotations = "rotations";
+LTTNG_HIDDEN const char * const mi_lttng_element_rotate_status = "status";
+LTTNG_HIDDEN const char * const mi_lttng_element_rotation_schedule = "rotation_schedule";
+
+/* String related to add-context command */
+LTTNG_HIDDEN const char * const mi_lttng_element_context_symbol = "symbol";
+
+/* Deprecated symbols preserved for ABI compatibility. */
+const char * const mi_lttng_context_type_perf_counter;
+const char * const mi_lttng_context_type_perf_cpu_counter;
+const char * const mi_lttng_context_type_perf_thread_counter;
+const char * const mi_lttng_element_track_untrack_pid_target;
+const char * const mi_lttng_element_track_untrack_targets;
+const char * const mi_lttng_element_calibrate;
+const char * const mi_lttng_element_calibrate_function;
+const char * const mi_lttng_element_command_calibrate;
 
 /* This is a merge of jul loglevel and regular loglevel
  * Those should never overlap by definition
@@ -294,10 +318,9 @@ const char *mi_lttng_loglevel_string(int value, enum lttng_domain_type domain)
                        return mi_lttng_loglevel_str_unknown;
                }
                break;
+       default:
+               return mi_lttng_loglevel_str_unknown;
        }
-
-       /* Reaching this means the domain is unknown. */
-       return mi_lttng_loglevel_str_unknown;
 }
 
 LTTNG_HIDDEN
@@ -366,6 +389,18 @@ const char *mi_lttng_event_contexttype_string(enum lttng_event_context_type val)
                return config_event_context_hostname;
        case LTTNG_EVENT_CONTEXT_IP:
                return config_event_context_ip;
+       case LTTNG_EVENT_CONTEXT_INTERRUPTIBLE:
+               return config_event_context_interruptible;
+       case LTTNG_EVENT_CONTEXT_PREEMPTIBLE:
+               return config_event_context_preemptible;
+       case LTTNG_EVENT_CONTEXT_NEED_RESCHEDULE:
+               return config_event_context_need_reschedule;
+       case LTTNG_EVENT_CONTEXT_MIGRATABLE:
+               return config_event_context_migratable;
+       case LTTNG_EVENT_CONTEXT_CALLSTACK_USER:
+               return config_event_context_callstack_user;
+       case LTTNG_EVENT_CONTEXT_CALLSTACK_KERNEL:
+               return config_event_context_callstack_kernel;
        default:
                return NULL;
        }
@@ -427,22 +462,6 @@ const char *mi_lttng_buffertype_string(enum lttng_buffer_type value)
        }
 }
 
-LTTNG_HIDDEN
-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)
 {
@@ -869,7 +888,8 @@ int mi_lttng_channel_attr(struct mi_writer *writer,
        int ret = 0;
        struct lttng_channel *chan = caa_container_of(attr,
                        struct lttng_channel, attr);
-       uint64_t discarded_events, lost_packets;
+       uint64_t discarded_events, lost_packets, monitor_timer_interval;
+       int64_t blocking_timeout;
 
        assert(attr);
 
@@ -883,6 +903,18 @@ int mi_lttng_channel_attr(struct mi_writer *writer,
                goto end;
        }
 
+       ret = lttng_channel_get_monitor_timer_interval(chan,
+                       &monitor_timer_interval);
+       if (ret) {
+               goto end;
+       }
+
+       ret = lttng_channel_get_blocking_timeout(chan,
+                       &blocking_timeout);
+       if (ret) {
+               goto end;
+       }
+
        /* Opening Attributes */
        ret = mi_lttng_writer_open_element(writer, config_element_attributes);
        if (ret) {
@@ -929,6 +961,22 @@ int mi_lttng_channel_attr(struct mi_writer *writer,
                goto end;
        }
 
+       /* Monitor timer interval in usec */
+       ret = mi_lttng_writer_write_element_unsigned_int(writer,
+               config_element_monitor_timer_interval,
+               monitor_timer_interval);
+       if (ret) {
+               goto end;
+       }
+
+       /* Retry timeout in usec */
+       ret = mi_lttng_writer_write_element_signed_int(writer,
+               config_element_blocking_timeout,
+               blocking_timeout);
+       if (ret) {
+               goto end;
+       }
+
        /* Event output */
        ret = mi_lttng_writer_write_element_string(writer,
                config_element_output_type,
@@ -1022,7 +1070,7 @@ int mi_lttng_event_common_attributes(struct mi_writer *writer,
        }
 
        /* Event filter expression */
-       ret = lttng_event_get_filter_string(event, &filter_expression);
+       ret = lttng_event_get_filter_expression(event, &filter_expression);
        if (ret) {
                goto end;
        }
@@ -1416,31 +1464,6 @@ 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;
-}
-
 LTTNG_HIDDEN
 int mi_lttng_perf_counter_context(struct mi_writer *writer,
                struct lttng_event_perf_counter_ctx  *perf_context)
This page took 0.027428 seconds and 5 git commands to generate.