X-Git-Url: https://git.lttng.org/?p=lttng-tools.git;a=blobdiff_plain;f=src%2Fcommon%2Fmi-lttng.h;h=74ae502f5be023941a939f7a3a0fe8571f72246a;hp=9c985f6bbe68a720ed867fe96a07d59f07ee845b;hb=4bd69c5f1161cd065f487da0f4c1aa03a73c47e4;hpb=159b042f34366d0fde5dcd73b4231c558922a664 diff --git a/src/common/mi-lttng.h b/src/common/mi-lttng.h index 9c985f6bb..74ae502f5 100644 --- a/src/common/mi-lttng.h +++ b/src/common/mi-lttng.h @@ -17,6 +17,10 @@ #include #include +#if defined(__cplusplus) +extern "C" { +#endif + /* Don't want to reference snapshot-internal.h here */ struct lttng_snapshot_output; @@ -29,7 +33,7 @@ struct mi_writer { /* * Version information for the machine interface. */ -struct mi_lttng_version { +struct mi_lttng_version_data { char version[LTTNG_NAME_MAX]; /* Version number of package */ uint32_t version_major; /* LTTng-Tools major version number */ uint32_t version_minor; /* LTTng-Tools minor version number */ @@ -39,181 +43,366 @@ struct mi_lttng_version { char package_url[LTTNG_NAME_MAX]; /* Define to the home page for this package. */ }; +/* Error query callbacks. */ +typedef enum lttng_error_code (*mi_lttng_error_query_trigger_cb)( + const struct lttng_trigger *trigger, + struct lttng_error_query_results **results); +typedef enum lttng_error_code (*mi_lttng_error_query_condition_cb)( + const struct lttng_trigger *trigger, + struct lttng_error_query_results **results); +typedef enum lttng_error_code (*mi_lttng_error_query_action_cb)( + const struct lttng_trigger *trigger, + const struct lttng_action_path *action_path, + struct lttng_error_query_results **results); + +struct mi_lttng_error_query_callbacks { + mi_lttng_error_query_trigger_cb trigger_cb; + mi_lttng_error_query_condition_cb condition_cb; + mi_lttng_error_query_action_cb action_cb; +}; + /* Strings related to command */ -extern const char * const mi_lttng_element_command; -extern const char * const mi_lttng_element_command_action; -extern const char * const mi_lttng_element_command_add_context; -extern const char * const mi_lttng_element_command_create; -extern const char * const mi_lttng_element_command_destroy; -extern const char * const mi_lttng_element_command_disable_channel; -extern const char * const mi_lttng_element_command_disable_event; -extern const char * const mi_lttng_element_command_enable_channels; -extern const char * const mi_lttng_element_command_enable_event; -extern const char * const mi_lttng_element_command_list; -extern const char * const mi_lttng_element_command_load; +LTTNG_EXPORT extern const char * const mi_lttng_element_command; +LTTNG_EXPORT extern const char * const mi_lttng_element_command_action; +LTTNG_EXPORT extern const char * const mi_lttng_element_command_add_context; +extern const char * const mi_lttng_element_command_add_trigger; +LTTNG_EXPORT extern const char * const mi_lttng_element_command_create; +LTTNG_EXPORT extern const char * const mi_lttng_element_command_destroy; +LTTNG_EXPORT extern const char * const mi_lttng_element_command_disable_channel; +LTTNG_EXPORT extern const char * const mi_lttng_element_command_disable_event; +LTTNG_EXPORT extern const char * const mi_lttng_element_command_enable_channels; +LTTNG_EXPORT extern const char * const mi_lttng_element_command_enable_event; +LTTNG_EXPORT extern const char * const mi_lttng_element_command_list; +extern const char * const mi_lttng_element_command_list_trigger; +LTTNG_EXPORT extern const char * const mi_lttng_element_command_load; extern const char * const mi_lttng_element_command_metadata; extern const char * const mi_lttng_element_command_metadata_action; extern const char * const mi_lttng_element_command_regenerate; extern const char * const mi_lttng_element_command_regenerate_action; -extern const char * const mi_lttng_element_command_name; -extern const char * const mi_lttng_element_command_output; -extern const char * const mi_lttng_element_command_save; -extern const char * const mi_lttng_element_command_set_session; -extern const char * const mi_lttng_element_command_snapshot; -extern const char * const mi_lttng_element_command_snapshot_add; -extern const char * const mi_lttng_element_command_snapshot_del; -extern const char * const mi_lttng_element_command_snapshot_list; -extern const char * const mi_lttng_element_command_snapshot_record; -extern const char * const mi_lttng_element_command_start; -extern const char * const mi_lttng_element_command_stop; -extern const char * const mi_lttng_element_command_success; -extern const char * const mi_lttng_element_command_track; -extern const char * const mi_lttng_element_command_untrack; -extern const char * const mi_lttng_element_command_version; +LTTNG_EXPORT extern const char * const mi_lttng_element_command_name; +LTTNG_EXPORT extern const char * const mi_lttng_element_command_output; +extern const char * const mi_lttng_element_command_remove_trigger; +LTTNG_EXPORT extern const char * const mi_lttng_element_command_save; +LTTNG_EXPORT extern const char * const mi_lttng_element_command_set_session; +LTTNG_EXPORT extern const char * const mi_lttng_element_command_snapshot; +LTTNG_EXPORT extern const char * const mi_lttng_element_command_snapshot_add; +LTTNG_EXPORT extern const char * const mi_lttng_element_command_snapshot_del; +LTTNG_EXPORT extern const char * const mi_lttng_element_command_snapshot_list; +LTTNG_EXPORT extern const char * const mi_lttng_element_command_snapshot_record; +LTTNG_EXPORT extern const char * const mi_lttng_element_command_start; +LTTNG_EXPORT extern const char * const mi_lttng_element_command_stop; +LTTNG_EXPORT extern const char * const mi_lttng_element_command_success; +LTTNG_EXPORT extern const char * const mi_lttng_element_command_track; +LTTNG_EXPORT extern const char * const mi_lttng_element_command_untrack; +LTTNG_EXPORT extern const char * const mi_lttng_element_command_version; extern const char * const mi_lttng_element_command_rotate; extern const char * const mi_lttng_element_command_enable_rotation; extern const char * const mi_lttng_element_command_disable_rotation; extern const char * const mi_lttng_element_command_clear; /* Strings related to version command */ -extern const char * const mi_lttng_element_version; -extern const char * const mi_lttng_element_version_commit; -extern const char * const mi_lttng_element_version_description; -extern const char * const mi_lttng_element_version_license; -extern const char * const mi_lttng_element_version_major; -extern const char * const mi_lttng_element_version_minor; -extern const char * const mi_lttng_element_version_patch_level; -extern const char * const mi_lttng_element_version_str; -extern const char * const mi_lttng_element_version_web; +LTTNG_EXPORT extern const char * const mi_lttng_element_version; +LTTNG_EXPORT extern const char * const mi_lttng_element_version_commit; +LTTNG_EXPORT extern const char * const mi_lttng_element_version_description; +LTTNG_EXPORT extern const char * const mi_lttng_element_version_license; +LTTNG_EXPORT extern const char * const mi_lttng_element_version_major; +LTTNG_EXPORT extern const char * const mi_lttng_element_version_minor; +LTTNG_EXPORT extern const char * const mi_lttng_element_version_patch_level; +LTTNG_EXPORT extern const char * const mi_lttng_element_version_str; +LTTNG_EXPORT extern const char * const mi_lttng_element_version_web; /* String related to a lttng_event_field */ -extern const char * const mi_lttng_element_event_field; -extern const char * const mi_lttng_element_event_fields; +LTTNG_EXPORT extern const char * const mi_lttng_element_event_field; +LTTNG_EXPORT extern const char * const mi_lttng_element_event_fields; /* String related to lttng_event_perf_counter_ctx */ -extern const char * const mi_lttng_element_perf_counter_context; +LTTNG_EXPORT extern const char * const mi_lttng_element_perf_counter_context; /* Strings related to pid */ -extern const char * const mi_lttng_element_pid_id; +LTTNG_EXPORT extern const char * const mi_lttng_element_pid_id; /* Strings related to save command */ -extern const char * const mi_lttng_element_save; +LTTNG_EXPORT extern const char * const mi_lttng_element_save; /* Strings related to load command */ -extern const char * const mi_lttng_element_load; -LTTNG_HIDDEN extern const char * const mi_lttng_element_load_overrides; -LTTNG_HIDDEN extern const char * const mi_lttng_element_load_override_url; +LTTNG_EXPORT extern const char * const mi_lttng_element_load; +extern const char * const mi_lttng_element_load_overrides; +extern const char * const mi_lttng_element_load_override_url; /* General element of mi_lttng */ -extern const char * const mi_lttng_element_empty; -extern const char * const mi_lttng_element_id; -extern const char * const mi_lttng_element_nowrite; -extern const char * const mi_lttng_element_success; -extern const char * const mi_lttng_element_type_enum; -extern const char * const mi_lttng_element_type_float; -extern const char * const mi_lttng_element_type_integer; -extern const char * const mi_lttng_element_type_other; -extern const char * const mi_lttng_element_type_string; +LTTNG_EXPORT extern const char * const mi_lttng_element_empty; +LTTNG_EXPORT extern const char * const mi_lttng_element_id; +LTTNG_EXPORT extern const char * const mi_lttng_element_nowrite; +LTTNG_EXPORT extern const char * const mi_lttng_element_success; +LTTNG_EXPORT extern const char * const mi_lttng_element_type_enum; +LTTNG_EXPORT extern const char * const mi_lttng_element_type_float; +LTTNG_EXPORT extern const char * const mi_lttng_element_type_integer; +LTTNG_EXPORT extern const char * const mi_lttng_element_type_other; +LTTNG_EXPORT extern const char * const mi_lttng_element_type_string; /* String related to loglevel */ -extern const char * const mi_lttng_loglevel_str_alert; -extern const char * const mi_lttng_loglevel_str_crit; -extern const char * const mi_lttng_loglevel_str_debug; -extern const char * const mi_lttng_loglevel_str_debug_function; -extern const char * const mi_lttng_loglevel_str_debug_line; -extern const char * const mi_lttng_loglevel_str_debug_module; -extern const char * const mi_lttng_loglevel_str_debug_process; -extern const char * const mi_lttng_loglevel_str_debug_program; -extern const char * const mi_lttng_loglevel_str_debug_system; -extern const char * const mi_lttng_loglevel_str_debug_unit; -extern const char * const mi_lttng_loglevel_str_emerg; -extern const char * const mi_lttng_loglevel_str_err; -extern const char * const mi_lttng_loglevel_str_info; -extern const char * const mi_lttng_loglevel_str_notice; -extern const char * const mi_lttng_loglevel_str_unknown; -extern const char * const mi_lttng_loglevel_str_warning; +LTTNG_EXPORT extern const char * const mi_lttng_loglevel_str_alert; +LTTNG_EXPORT extern const char * const mi_lttng_loglevel_str_crit; +LTTNG_EXPORT extern const char * const mi_lttng_loglevel_str_debug; +LTTNG_EXPORT extern const char * const mi_lttng_loglevel_str_debug_function; +LTTNG_EXPORT extern const char * const mi_lttng_loglevel_str_debug_line; +LTTNG_EXPORT extern const char * const mi_lttng_loglevel_str_debug_module; +LTTNG_EXPORT extern const char * const mi_lttng_loglevel_str_debug_process; +LTTNG_EXPORT extern const char * const mi_lttng_loglevel_str_debug_program; +LTTNG_EXPORT extern const char * const mi_lttng_loglevel_str_debug_system; +LTTNG_EXPORT extern const char * const mi_lttng_loglevel_str_debug_unit; +LTTNG_EXPORT extern const char * const mi_lttng_loglevel_str_emerg; +LTTNG_EXPORT extern const char * const mi_lttng_loglevel_str_err; +LTTNG_EXPORT extern const char * const mi_lttng_loglevel_str_info; +LTTNG_EXPORT extern const char * const mi_lttng_loglevel_str_notice; +LTTNG_EXPORT extern const char * const mi_lttng_loglevel_str_unknown; +LTTNG_EXPORT extern const char * const mi_lttng_loglevel_str_warning; /* String related to loglevel JUL */ -extern const char * const mi_lttng_loglevel_str_jul_all; -extern const char * const mi_lttng_loglevel_str_jul_config; -extern const char * const mi_lttng_loglevel_str_jul_fine; -extern const char * const mi_lttng_loglevel_str_jul_finer; -extern const char * const mi_lttng_loglevel_str_jul_finest; -extern const char * const mi_lttng_loglevel_str_jul_info; -extern const char * const mi_lttng_loglevel_str_jul_off; -extern const char * const mi_lttng_loglevel_str_jul_severe; -extern const char * const mi_lttng_loglevel_str_jul_warning; +LTTNG_EXPORT extern const char * const mi_lttng_loglevel_str_jul_all; +LTTNG_EXPORT extern const char * const mi_lttng_loglevel_str_jul_config; +LTTNG_EXPORT extern const char * const mi_lttng_loglevel_str_jul_fine; +LTTNG_EXPORT extern const char * const mi_lttng_loglevel_str_jul_finer; +LTTNG_EXPORT extern const char * const mi_lttng_loglevel_str_jul_finest; +LTTNG_EXPORT extern const char * const mi_lttng_loglevel_str_jul_info; +LTTNG_EXPORT extern const char * const mi_lttng_loglevel_str_jul_off; +LTTNG_EXPORT extern const char * const mi_lttng_loglevel_str_jul_severe; +LTTNG_EXPORT extern const char * const mi_lttng_loglevel_str_jul_warning; /* String related to loglevel Log4j */ -extern const char * const mi_lttng_loglevel_str_log4j_off; -extern const char * const mi_lttng_loglevel_str_log4j_fatal; -extern const char * const mi_lttng_loglevel_str_log4j_error; -extern const char * const mi_lttng_loglevel_str_log4j_warn; -extern const char * const mi_lttng_loglevel_str_log4j_info; -extern const char * const mi_lttng_loglevel_str_log4j_debug; -extern const char * const mi_lttng_loglevel_str_log4j_trace; -extern const char * const mi_lttng_loglevel_str_log4j_all; +LTTNG_EXPORT extern const char * const mi_lttng_loglevel_str_log4j_off; +LTTNG_EXPORT extern const char * const mi_lttng_loglevel_str_log4j_fatal; +LTTNG_EXPORT extern const char * const mi_lttng_loglevel_str_log4j_error; +LTTNG_EXPORT extern const char * const mi_lttng_loglevel_str_log4j_warn; +LTTNG_EXPORT extern const char * const mi_lttng_loglevel_str_log4j_info; +LTTNG_EXPORT extern const char * const mi_lttng_loglevel_str_log4j_debug; +LTTNG_EXPORT extern const char * const mi_lttng_loglevel_str_log4j_trace; +LTTNG_EXPORT extern const char * const mi_lttng_loglevel_str_log4j_all; /* String related to loglevel Python */ -extern const char * const mi_lttng_loglevel_str_python_critical; -extern const char * const mi_lttng_loglevel_str_python_error; -extern const char * const mi_lttng_loglevel_str_python_warning; -extern const char * const mi_lttng_loglevel_str_python_info; -extern const char * const mi_lttng_loglevel_str_python_debug; -extern const char * const mi_lttng_loglevel_str_python_notset; +LTTNG_EXPORT extern const char * const mi_lttng_loglevel_str_python_critical; +LTTNG_EXPORT extern const char * const mi_lttng_loglevel_str_python_error; +LTTNG_EXPORT extern const char * const mi_lttng_loglevel_str_python_warning; +LTTNG_EXPORT extern const char * const mi_lttng_loglevel_str_python_info; +LTTNG_EXPORT extern const char * const mi_lttng_loglevel_str_python_debug; +LTTNG_EXPORT extern const char * const mi_lttng_loglevel_str_python_notset; /* String related to loglevel type */ -extern const char * const mi_lttng_loglevel_type_all; -extern const char * const mi_lttng_loglevel_type_range; -extern const char * const mi_lttng_loglevel_type_single; -extern const char * const mi_lttng_loglevel_type_unknown; +LTTNG_EXPORT extern const char * const mi_lttng_loglevel_type_all; +LTTNG_EXPORT extern const char * const mi_lttng_loglevel_type_range; +LTTNG_EXPORT extern const char * const mi_lttng_loglevel_type_single; +LTTNG_EXPORT extern const char * const mi_lttng_loglevel_type_unknown; /* String related to a lttng_snapshot */ -extern const char * const mi_lttng_element_snapshot_ctrl_url; -extern const char * const mi_lttng_element_snapshot_data_url; -extern const char * const mi_lttng_element_snapshot_max_size; -extern const char * const mi_lttng_element_snapshot_n_ptr; -extern const char * const mi_lttng_element_snapshot_session_name; -extern const char * const mi_lttng_element_snapshots; +LTTNG_EXPORT extern const char * const mi_lttng_element_snapshot_ctrl_url; +LTTNG_EXPORT extern const char * const mi_lttng_element_snapshot_data_url; +LTTNG_EXPORT extern const char * const mi_lttng_element_snapshot_max_size; +LTTNG_EXPORT extern const char * const mi_lttng_element_snapshot_n_ptr; +LTTNG_EXPORT extern const char * const mi_lttng_element_snapshot_session_name; +LTTNG_EXPORT extern const char * const mi_lttng_element_snapshots; /* String related to track/untrack command */ -extern const char * const mi_lttng_element_track_untrack_all_wildcard; +LTTNG_EXPORT extern const char * const mi_lttng_element_track_untrack_all_wildcard; -LTTNG_HIDDEN extern const char * const mi_lttng_element_session_name; +extern const char * const mi_lttng_element_session_name; /* String related to rotate command */ -LTTNG_HIDDEN extern const char * const mi_lttng_element_rotation; -LTTNG_HIDDEN extern const char * const mi_lttng_element_rotate_status; -LTTNG_HIDDEN extern const char * const mi_lttng_element_rotation_schedule; -LTTNG_HIDDEN extern const char * const mi_lttng_element_rotation_schedules; -LTTNG_HIDDEN extern const char * const mi_lttng_element_rotation_schedule_periodic; -LTTNG_HIDDEN extern const char * const mi_lttng_element_rotation_schedule_periodic_time_us; -LTTNG_HIDDEN extern const char * const mi_lttng_element_rotation_schedule_size_threshold; -LTTNG_HIDDEN extern const char * const mi_lttng_element_rotation_schedule_size_threshold_bytes; -LTTNG_HIDDEN extern const char * const mi_lttng_element_rotation_schedule_result; -LTTNG_HIDDEN extern const char * const mi_lttng_element_rotation_schedule_results; -LTTNG_HIDDEN extern const char * const mi_lttng_element_rotation_state; -LTTNG_HIDDEN extern const char * const mi_lttng_element_rotation_location; -LTTNG_HIDDEN extern const char * const mi_lttng_element_rotation_location_local; -LTTNG_HIDDEN extern const char * const mi_lttng_element_rotation_location_local_absolute_path; -LTTNG_HIDDEN extern const char * const mi_lttng_element_rotation_location_relay; -LTTNG_HIDDEN extern const char * const mi_lttng_element_rotation_location_relay_host; -LTTNG_HIDDEN extern const char * const mi_lttng_element_rotation_location_relay_control_port; -LTTNG_HIDDEN extern const char * const mi_lttng_element_rotation_location_relay_data_port; -LTTNG_HIDDEN extern const char * const mi_lttng_element_rotation_location_relay_protocol; -LTTNG_HIDDEN extern const char * const mi_lttng_element_rotation_location_relay_relative_path; +extern const char * const mi_lttng_element_rotation; +extern const char * const mi_lttng_element_rotate_status; +extern const char * const mi_lttng_element_rotation_schedule; +extern const char * const mi_lttng_element_rotation_schedules; +extern const char * const mi_lttng_element_rotation_schedule_periodic; +extern const char * const mi_lttng_element_rotation_schedule_periodic_time_us; +extern const char * const mi_lttng_element_rotation_schedule_size_threshold; +extern const char * const mi_lttng_element_rotation_schedule_size_threshold_bytes; +extern const char * const mi_lttng_element_rotation_schedule_result; +extern const char * const mi_lttng_element_rotation_schedule_results; +extern const char * const mi_lttng_element_rotation_state; +extern const char * const mi_lttng_element_rotation_location; +extern const char * const mi_lttng_element_rotation_location_local; +extern const char * const mi_lttng_element_rotation_location_local_absolute_path; +extern const char * const mi_lttng_element_rotation_location_relay; +extern const char * const mi_lttng_element_rotation_location_relay_host; +extern const char * const mi_lttng_element_rotation_location_relay_control_port; +extern const char * const mi_lttng_element_rotation_location_relay_data_port; +extern const char * const mi_lttng_element_rotation_location_relay_protocol; +extern const char * const mi_lttng_element_rotation_location_relay_relative_path; /* String related to enum lttng_rotation_state */ -LTTNG_HIDDEN extern const char * const mi_lttng_rotation_state_str_ongoing; -LTTNG_HIDDEN extern const char * const mi_lttng_rotation_state_str_completed; -LTTNG_HIDDEN extern const char * const mi_lttng_rotation_state_str_expired; -LTTNG_HIDDEN extern const char * const mi_lttng_rotation_state_str_error; +extern const char * const mi_lttng_rotation_state_str_ongoing; +extern const char * const mi_lttng_rotation_state_str_completed; +extern const char * const mi_lttng_rotation_state_str_expired; +extern const char * const mi_lttng_rotation_state_str_error; /* String related to enum lttng_trace_archive_location_relay_protocol_type */ -LTTNG_HIDDEN extern const char * const mi_lttng_rotation_location_relay_protocol_str_tcp; +extern const char * const mi_lttng_rotation_location_relay_protocol_str_tcp; + +/* String related to rate_policy elements */ +extern const char *const mi_lttng_element_rate_policy; +extern const char *const mi_lttng_element_rate_policy_every_n; +extern const char *const mi_lttng_element_rate_policy_once_after_n; + +extern const char + *const mi_lttng_element_rate_policy_every_n_interval; +extern const char + *const mi_lttng_element_rate_policy_once_after_n_threshold; + +/* String related to action elements */ +extern const char *const mi_lttng_element_action; +extern const char *const mi_lttng_element_action_list; +extern const char *const mi_lttng_element_action_notify; +extern const char *const mi_lttng_element_action_start_session; +extern const char *const mi_lttng_element_action_stop_session; +extern const char *const mi_lttng_element_action_rotate_session; +extern const char *const mi_lttng_element_action_snapshot_session; +extern const char + *const mi_lttng_element_action_snapshot_session_output; + +/* String related to condition */ +extern const char *const mi_lttng_element_condition; +extern const char + *const mi_lttng_element_condition_buffer_usage_high; +extern const char + *const mi_lttng_element_condition_buffer_usage_low; +extern const char + *const mi_lttng_element_condition_event_rule_matches; +extern const char + *const mi_lttng_element_condition_session_consumed_size; +extern const char + *const mi_lttng_element_condition_session_rotation; +extern const char + *const mi_lttng_element_condition_session_rotation_completed; +extern const char + *const mi_lttng_element_condition_session_rotation_ongoing; +extern const char *const mi_lttng_element_condition_channel_name; +extern const char *const mi_lttng_element_condition_threshold_ratio; +extern const char *const mi_lttng_element_condition_threshold_bytes; + +/* String related to capture descriptor */ +extern const char *const mi_lttng_element_capture_descriptor; +extern const char *const mi_lttng_element_capture_descriptors; + +/* String related to event expression */ +extern const char *const mi_lttng_element_event_expr; +extern const char *const mi_lttng_element_event_expr_payload_field; +extern const char + *const mi_lttng_element_event_expr_channel_context_field; +extern const char + *const mi_lttng_element_event_expr_app_specific_context_field; +extern const char + *const mi_lttng_element_event_expr_array_field_element; + +extern const char *const mi_lttng_element_event_expr_provider_name; +extern const char *const mi_lttng_element_event_expr_type_name; +extern const char *const mi_lttng_element_event_expr_index; + +/* String related to event rule */ +extern const char *const mi_lttng_element_event_rule; + +/* String related to lttng_event_rule */ +extern const char *const mi_lttng_element_event_rule_event_name; +extern const char *const mi_lttng_element_event_rule_name_pattern; +extern const char + *const mi_lttng_element_event_rule_filter_expression; +extern const char *const mi_lttng_element_event_rule_jul_logging; +extern const char *const mi_lttng_element_event_rule_kernel_kprobe; +extern const char *const mi_lttng_element_event_rule_kernel_syscall; +extern const char + *const mi_lttng_element_event_rule_kernel_tracepoint; +extern const char *const mi_lttng_element_event_rule_kernel_uprobe; +extern const char *const mi_lttng_element_event_rule_log4j_logging; +extern const char *const mi_lttng_element_event_rule_python_logging; +extern const char + *const mi_lttng_element_event_rule_user_tracepoint; + +/* String related to lttng_event_rule_kernel_syscall. */ +extern const char + *const mi_lttng_element_event_rule_kernel_syscall_emission_site; + +/* String related to enum lttng_event_rule_kernel_syscall_emission_site. */ +extern const char *const + mi_lttng_event_rule_kernel_syscall_emission_site_entry_exit; +extern const char + *const mi_lttng_event_rule_kernel_syscall_emission_site_entry; +extern const char + *const mi_lttng_event_rule_kernel_syscall_emission_site_exit; + +extern const char *const + mi_lttng_element_event_rule_user_tracepoint_name_pattern_exclusions; +extern const char *const + mi_lttng_element_event_rule_user_tracepoint_name_pattern_exclusion; + +/* String related to log level rule. */ +extern const char *const mi_lttng_element_log_level_rule; +extern const char *const mi_lttng_element_log_level_rule_exactly; +extern const char + *const mi_lttng_element_log_level_rule_at_least_as_severe_as; +extern const char *const + mi_lttng_element_log_level_rule_at_least_as_severe_as_thre; +extern const char *const mi_lttng_element_log_level_rule_level; + +/* String related to kernel probe location. */ +extern const char *const mi_lttng_element_kernel_probe_location; +extern const char + *const mi_lttng_element_kernel_probe_location_symbol_offset; +extern const char *const + mi_lttng_element_kernel_probe_location_symbol_offset_name; +extern const char *const + mi_lttng_element_kernel_probe_location_symbol_offset_offset; +extern const char + *const mi_lttng_element_kernel_probe_location_address; +extern const char + *const mi_lttng_element_kernel_probe_location_address_address; + +/* String related to userspace probe location. */ +extern const char *const mi_lttng_element_userspace_probe_location; +extern const char + *const mi_lttng_element_userspace_probe_location_binary_path; +extern const char + *const mi_lttng_element_userspace_probe_location_function; +extern const char + *const mi_lttng_element_userspace_probe_location_function_name; +extern const char + *const mi_lttng_element_userspace_probe_location_lookup_method; +extern const char *const + mi_lttng_element_userspace_probe_location_lookup_method_function_default; +extern const char *const + mi_lttng_element_userspace_probe_location_lookup_method_function_elf; +extern const char *const + mi_lttng_element_userspace_probe_location_lookup_method_tracepoint_sdt; +extern const char + *const mi_lttng_element_userspace_probe_location_tracepoint; +extern const char *const + mi_lttng_element_userspace_probe_location_tracepoint_probe_name; +extern const char *const + mi_lttng_element_userspace_probe_location_tracepoint_provider_name; + +/* String related to enum + * lttng_userspace_probe_location_function_instrumentation_type */ +extern const char *const + mi_lttng_element_userspace_probe_location_function_instrumentation_type; +extern const char *const + mi_lttng_userspace_probe_location_function_instrumentation_type_entry; + +/* String related to trigger */ +extern const char *const mi_lttng_element_triggers; +extern const char *const mi_lttng_element_trigger; +extern const char *const mi_lttng_element_trigger_owner_uid; + +/* String related to error_query. */ +extern const char *const mi_lttng_element_error_query_result; +extern const char + *const mi_lttng_element_error_query_result_counter; +extern const char + *const mi_lttng_element_error_query_result_counter_value; +extern const char + *const mi_lttng_element_error_query_result_description; +extern const char *const mi_lttng_element_error_query_result_name; +extern const char *const mi_lttng_element_error_query_result_type; +extern const char *const mi_lttng_element_error_query_results; /* String related to add-context command */ -LTTNG_HIDDEN extern const char * const mi_lttng_element_context_symbol; +extern const char * const mi_lttng_element_context_symbol; /* Utility string function */ const char *mi_lttng_loglevel_string(int value, enum lttng_domain_type domain); @@ -353,6 +542,20 @@ int mi_lttng_writer_write_element_bool(struct mi_writer *writer, int mi_lttng_writer_write_element_string(struct mi_writer *writer, const char *element_name, const char *value); +/* + * Write an element of type double. + * + * writer An instance of a machine interface writer. + * element_name Element name. + * value Double value of the element. + * + * Returns zero if the element's value could be written. + * Negative values indicate an error. + */ +int mi_lttng_writer_write_element_double(struct mi_writer *writer, + const char *element_name, + double value); + /* * Machine interface of struct version. * @@ -364,7 +567,7 @@ int mi_lttng_writer_write_element_string(struct mi_writer *writer, * Returns zero if the element's value could be written. * Negative values indicate an error. */ -int mi_lttng_version(struct mi_writer *writer, struct mi_lttng_version *version, +int mi_lttng_version(struct mi_writer *writer, struct mi_lttng_version_data *version, const char *lttng_description, const char *lttng_license); /* @@ -778,7 +981,7 @@ int mi_lttng_snapshot_output_session_name(struct mi_writer *writer, * Negative values indicate an error. */ int mi_lttng_snapshot_list_output(struct mi_writer *writer, - struct lttng_snapshot_output *output); + const struct lttng_snapshot_output *output); /* * Machine interface of the output of the command snapshot del output @@ -918,4 +1121,8 @@ int mi_lttng_rotate(struct mi_writer *writer, enum lttng_rotation_state rotation_state, const struct lttng_trace_archive_location *location); +#if defined(__cplusplus) +} +#endif + #endif /* _MI_LTTNG_H */