X-Git-Url: https://git.lttng.org/?p=lttng-tools.git;a=blobdiff_plain;f=src%2Fcommon%2Fmi-lttng.h;h=e7cf8af92ff37b840e01ebbcddbfc60c484510ac;hp=deab4e41ca786326f6437cc1761c3d6fbff3b29d;hb=287a512f2b868c16132b894a8143a5faf0379ca8;hpb=4965f956f3ef47388fb4a1b2f8f504abfe31afe7 diff --git a/src/common/mi-lttng.h b/src/common/mi-lttng.h index deab4e41c..e7cf8af92 100644 --- a/src/common/mi-lttng.h +++ b/src/common/mi-lttng.h @@ -1,6 +1,7 @@ /* * Copyright (C) 2014 - Jonathan Rajotte * - Olivier Cotte + * Copyright (C) 2016 - Jérémie Galarneau * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License, version 2 only, as @@ -23,7 +24,7 @@ #include #include -#include +#include #include /* Don't want to reference snapshot-internal.h here */ @@ -39,20 +40,19 @@ 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 */ 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; @@ -61,6 +61,10 @@ 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_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; @@ -92,17 +96,10 @@ extern const char * const mi_lttng_element_version_web; extern const char * const mi_lttng_element_event_field; extern const char * const mi_lttng_element_event_fields; -/* String related to lttng_event_context */ -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 */ extern const char * const mi_lttng_element_perf_counter_context; /* Strings related to pid */ -extern const char * const mi_lttng_element_pids; -extern const char * const mi_lttng_element_pid; extern const char * const mi_lttng_element_pid_id; /* Strings related to save command */ @@ -110,6 +107,8 @@ extern const char * const mi_lttng_element_save; /* Strings related to load command */ extern const char * const mi_lttng_element_load; +LTTNG_HIDDEN const char * const mi_lttng_element_load_overrides; +LTTNG_HIDDEN const char * const mi_lttng_element_load_override_url; /* General element of mi_lttng */ extern const char * const mi_lttng_element_empty; @@ -175,10 +174,6 @@ 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 */ -extern const char * const mi_lttng_element_calibrate; -extern const char * const mi_lttng_element_calibrate_function; - /* 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; @@ -187,13 +182,15 @@ 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; +/* String related to track/untrack command */ +const char * const mi_lttng_element_track_untrack_all_wildcard; + /* Utility string function */ const char *mi_lttng_loglevel_string(int value, enum lttng_domain_type domain); const char *mi_lttng_logleveltype_string(enum lttng_loglevel_type value); const char *mi_lttng_eventfieldtype_string(enum lttng_event_field_type value); 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); /* * Create an instance of a machine interface writer. @@ -555,6 +552,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. * @@ -566,7 +585,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. @@ -580,21 +609,46 @@ 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); /* - * Machine interface for struct lttng_calibrate. + * 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. * - * calibrate A lttng_calibrate instance. + * 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_calibrate(struct mi_writer *writer, - struct lttng_calibrate *calibrate); +int mi_lttng_pid_target(struct mi_writer *writer, pid_t pid, int is_open); /* * Machine interface of a context.