#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";
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";
-const char * const mi_lttng_element_command_metadata = "metadata";
-const char * const mi_lttng_element_command_metadata_action = "metadata_action";
+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";
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";
/* 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 = "";
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";
/* 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
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
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;
}
}
}
-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)
{
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);
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) {
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,
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)