X-Git-Url: http://git.efficios.com/?p=lttng-tools.git;a=blobdiff_plain;f=src%2Fcommon%2Fmi-lttng.h;h=55ea68d73b9b0c2468a9b4bfe8aa1852215f791f;hp=fd1ef936eb4167fb409c4c34a5cb5f55ac7b9d42;hb=36d2e35df61339e4394e84ad9790b984d259e0f0;hpb=0e1155633b00241b8b1e5a9bb683cf91b28f5eeb diff --git a/src/common/mi-lttng.h b/src/common/mi-lttng.h index fd1ef936e..55ea68d73 100644 --- a/src/common/mi-lttng.h +++ b/src/common/mi-lttng.h @@ -39,151 +39,151 @@ struct mi_writer { * Version information for the machine interface. */ struct mi_lttng_version { - char version[NAME_MAX]; /* Version number of package */ + 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 */ uint32_t version_patchlevel; /* LTTng-Tools patchlevel version number */ - char version_commit[NAME_MAX]; /* Commit hash of the current version */ - char version_name[NAME_MAX]; - char package_url[NAME_MAX]; /* Define to the home page for this package. */ + char version_commit[LTTNG_NAME_MAX]; /* Commit hash of the current version */ + char version_name[LTTNG_NAME_MAX]; + char package_url[LTTNG_NAME_MAX]; /* Define to the home page for this package. */ }; /* Strings related to command */ -const char * const mi_lttng_element_command; -const char * const mi_lttng_element_command_action; -const char * const mi_lttng_element_command_add_context; -const char * const mi_lttng_element_command_calibrate; -const char * const mi_lttng_element_command_create; -const char * const mi_lttng_element_command_destroy; -const char * const mi_lttng_element_command_disable_channel; -const char * const mi_lttng_element_command_disable_event; -const char * const mi_lttng_element_command_enable_channels; -const char * const mi_lttng_element_command_enable_event; -const char * const mi_lttng_element_command_list; -const char * const mi_lttng_element_command_load; -const char * const mi_lttng_element_command_name; -const char * const mi_lttng_element_command_output; -const char * const mi_lttng_element_command_save; -const char * const mi_lttng_element_command_set_session; -const char * const mi_lttng_element_command_snapshot; -const char * const mi_lttng_element_command_snapshot_add; -const char * const mi_lttng_element_command_snapshot_del; -const char * const mi_lttng_element_command_snapshot_list; -const char * const mi_lttng_element_command_snapshot_record; -const char * const mi_lttng_element_command_start; -const char * const mi_lttng_element_command_stop; -const char * const mi_lttng_element_command_success; -const char * const mi_lttng_element_command_version; +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_calibrate; +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; +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; /* Strings related to version command */ -const char * const mi_lttng_element_version; -const char * const mi_lttng_element_version_commit; -const char * const mi_lttng_element_version_description; -const char * const mi_lttng_element_version_license; -const char * const mi_lttng_element_version_major; -const char * const mi_lttng_element_version_minor; -const char * const mi_lttng_element_version_patch_level; -const char * const mi_lttng_element_version_str; -const char * const mi_lttng_element_version_web; +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; /* String related to a lttng_event_field */ -const char * const mi_lttng_element_event_field; -const char * const mi_lttng_element_event_fields; +extern const char * const mi_lttng_element_event_field; +extern const char * const mi_lttng_element_event_fields; /* String related to lttng_event_context */ -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; +extern const char * const mi_lttng_context_type_perf_counter; +extern const char * const mi_lttng_context_type_perf_cpu_counter; +extern const char * const mi_lttng_context_type_perf_thread_counter; /* String related to lttng_event_perf_counter_ctx */ -const char * const mi_lttng_element_perf_counter_context; +extern const char * const mi_lttng_element_perf_counter_context; /* Strings related to pid */ -const char * const mi_lttng_element_pids; -const char * const mi_lttng_element_pid; -const char * const mi_lttng_element_pid_id; +extern const char * const mi_lttng_element_pid_id; /* Strings related to save command */ -const char * const mi_lttng_element_save; +extern const char * const mi_lttng_element_save; /* Strings related to load command */ -const char * const mi_lttng_element_load; +extern const char * const mi_lttng_element_load; /* General element of mi_lttng */ -const char * const mi_lttng_element_empty; -const char * const mi_lttng_element_id; -const char * const mi_lttng_element_nowrite; -const char * const mi_lttng_element_success; -const char * const mi_lttng_element_type_enum; -const char * const mi_lttng_element_type_float; -const char * const mi_lttng_element_type_integer; -const char * const mi_lttng_element_type_other; -const char * const mi_lttng_element_type_string; +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; /* String related to loglevel */ -const char * const mi_lttng_loglevel_str_alert; -const char * const mi_lttng_loglevel_str_crit; -const char * const mi_lttng_loglevel_str_debug; -const char * const mi_lttng_loglevel_str_debug_function; -const char * const mi_lttng_loglevel_str_debug_line; -const char * const mi_lttng_loglevel_str_debug_module; -const char * const mi_lttng_loglevel_str_debug_process; -const char * const mi_lttng_loglevel_str_debug_program; -const char * const mi_lttng_loglevel_str_debug_system; -const char * const mi_lttng_loglevel_str_debug_unit; -const char * const mi_lttng_loglevel_str_emerg; -const char * const mi_lttng_loglevel_str_err; -const char * const mi_lttng_loglevel_str_info; -const char * const mi_lttng_loglevel_str_notice; -const char * const mi_lttng_loglevel_str_unknown; -const char * const mi_lttng_loglevel_str_warning; +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; /* String related to loglevel JUL */ -const char * const mi_lttng_loglevel_str_jul_all; -const char * const mi_lttng_loglevel_str_jul_config; -const char * const mi_lttng_loglevel_str_jul_fine; -const char * const mi_lttng_loglevel_str_jul_finer; -const char * const mi_lttng_loglevel_str_jul_finest; -const char * const mi_lttng_loglevel_str_jul_info; -const char * const mi_lttng_loglevel_str_jul_off; -const char * const mi_lttng_loglevel_str_jul_severe; -const char * const mi_lttng_loglevel_str_jul_warning; +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; /* String related to loglevel Log4j */ -const char * const mi_lttng_loglevel_str_log4j_off; -const char * const mi_lttng_loglevel_str_log4j_fatal; -const char * const mi_lttng_loglevel_str_log4j_error; -const char * const mi_lttng_loglevel_str_log4j_warn; -const char * const mi_lttng_loglevel_str_log4j_info; -const char * const mi_lttng_loglevel_str_log4j_debug; -const char * const mi_lttng_loglevel_str_log4j_trace; -const char * const mi_lttng_loglevel_str_log4j_all; +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; /* String related to loglevel Python */ -const char * const mi_lttng_loglevel_str_python_critical; -const char * const mi_lttng_loglevel_str_python_error; -const char * const mi_lttng_loglevel_str_python_warning; -const char * const mi_lttng_loglevel_str_python_info; -const char * const mi_lttng_loglevel_str_python_debug; -const char * const mi_lttng_loglevel_str_python_notset; +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; /* String related to loglevel type */ -const char * const mi_lttng_loglevel_type_all; -const char * const mi_lttng_loglevel_type_range; -const char * const mi_lttng_loglevel_type_single; -const char * const mi_lttng_loglevel_type_unknown; +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; /* Sting related to lttng_calibrate */ -const char * const mi_lttng_element_calibrate; -const char * const mi_lttng_element_calibrate_function; +extern const char * const mi_lttng_element_calibrate; +extern const char * const mi_lttng_element_calibrate_function; /* String related to a lttng_snapshot */ -const char * const mi_lttng_element_snapshot_ctrl_url; -const char * const mi_lttng_element_snapshot_data_url; -const char * const mi_lttng_element_snapshot_max_size; -const char * const mi_lttng_element_snapshot_n_ptr; -const char * const mi_lttng_element_snapshot_session_name; -const char * const mi_lttng_element_snapshots; +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; /* Utility string function */ const char *mi_lttng_loglevel_string(int value, enum lttng_domain_type domain); @@ -193,6 +193,9 @@ const char *mi_lttng_domaintype_string(enum lttng_domain_type value); const char *mi_lttng_buffertype_string(enum lttng_buffer_type value); const char *mi_lttng_calibratetype_string(enum lttng_calibrate_type val); +/* String related to track/untrack command */ +const char * const mi_lttng_element_track_untrack_all_wildcard; + /* * Create an instance of a machine interface writer. * @@ -553,6 +556,28 @@ int mi_lttng_event_field(struct mi_writer *writer, */ int mi_lttng_event_fields_open(struct mi_writer *writer); +/* + * Machine interface: open a trackers element. + * + * writer An instance of a machine interface writer. + * + * Returns zero if the element's value could be written. + * Negative values indicate an error. + */ +int mi_lttng_trackers_open(struct mi_writer *writer); + +/* + * Machine interface: open a pid_tracker element. + * + * writer An instance of a machine interface writer. + * + * Returns zero if the element's value could be written. + * Negative values indicate an error. + * + * Note: A targets element is also opened for each tracker definition + */ +int mi_lttng_pid_tracker_open(struct mi_writer *writer); + /* * Machine interface: open a PIDs element. * @@ -564,7 +589,17 @@ int mi_lttng_event_fields_open(struct mi_writer *writer); int mi_lttng_pids_open(struct mi_writer *writer); /* - * Machine interface of a PID. + * Machine interface: open a processes element. + * + * writer An instance of a machine interface writer. + * + * Returns zero if the element's value could be written. + * Negative values indicate an error. + */ +int mi_lttng_processes_open(struct mi_writer *writer); + +/* + * Machine interface of a Process. * * writer An instance of a machine interface writer. * pid A PID. @@ -578,9 +613,47 @@ int mi_lttng_pids_open(struct mi_writer *writer); * Returns zero if the element's value could be written. * Negative values indicate an error. */ -int mi_lttng_pid(struct mi_writer *writer, pid_t pid , const char *cmdline, +int mi_lttng_process(struct mi_writer *writer, pid_t pid , const char *name, int is_open); +/* + * TODO: move pid of lttng list -u to process semantic on mi api bump + * Machine interface of a Process. + * + * writer An instance of a machine interface writer. + * pid A PID. + * + * is_open Defines whether or not the session element shall be closed. + * This should be used carefully and the client + * must close the pid element. + * Use case: nested addition information on a domain + * ex: channel event. + * + * Returns zero if the element's value could be written. + * Negative values indicate an error. + */ +int mi_lttng_pid(struct mi_writer *writer, pid_t pid , const char *name, + int is_open); +/* + * Machine interface: open a targets element. + * + * writer An instance of a machine interface writer. + * + * Returns zero if the element's value could be written. + * Negative values indicate an error. + */ +int mi_lttng_targets_open(struct mi_writer *writer); + +/* + * Machine interface for track/untrack a pid_target + * + * writer An instance of a machine interface writer. + * + * Returns zero if the element's value could be written. + * Negative values indicate an error. + */ +int mi_lttng_pid_target(struct mi_writer *writer, pid_t pid, int is_open); + /* * Machine interface for struct lttng_calibrate. *