Extract synchronize tracer notifier functions
[lttng-tools.git] / src / common / mi-lttng.h
index 7f7e8b9f8649ae6ec2d6bb083bd6b37a10add82d..9c985f6bbe68a720ed867fe96a07d59f07ee845b 100644 (file)
@@ -1,20 +1,10 @@
 /*
- * Copyright (C) 2014 Jonathan Rajotte <jonathan.r.julien@gmail.com>
- *                    - Olivier Cotte <olivier.cotte@polymtl.ca>
- * Copyright (C) 2016 Jérémie Galarneau <jeremie.galarneau@efficios.com>
+ * Copyright (C) 2014 Jonathan Rajotte <jonathan.r.julien@gmail.com>
+ * Copyright (C) 2014 Olivier Cotte <olivier.cotte@polymtl.ca>
+ * Copyright (C) 2016 Jérémie Galarneau <jeremie.galarneau@efficios.com>
  *
- * 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
- * published by the Free Software Foundation.
+ * SPDX-License-Identifier: GPL-2.0-only
  *
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
- * more details.
- *
- * You should have received a copy of the GNU General Public License along with
- * this program; if not, write to the Free Software Foundation, Inc., 51
- * Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
  */
 
 #ifndef _MI_LTTNG_H
@@ -111,8 +101,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;
+LTTNG_HIDDEN extern const char * const mi_lttng_element_load_overrides;
+LTTNG_HIDDEN extern const char * const mi_lttng_element_load_override_url;
 
 /* General element of mi_lttng */
 extern const char * const mi_lttng_element_empty;
@@ -187,40 +177,40 @@ 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;
+extern const char * const mi_lttng_element_track_untrack_all_wildcard;
 
-LTTNG_HIDDEN const char * const mi_lttng_element_session_name;
+LTTNG_HIDDEN extern const char * const mi_lttng_element_session_name;
 
 /* String related to rotate command */
-LTTNG_HIDDEN const char * const mi_lttng_element_rotation;
-LTTNG_HIDDEN const char * const mi_lttng_element_rotate_status;
-LTTNG_HIDDEN const char * const mi_lttng_element_rotation_schedule;
-LTTNG_HIDDEN const char * const mi_lttng_element_rotation_schedules;
-LTTNG_HIDDEN const char * const mi_lttng_element_rotation_schedule_periodic;
-LTTNG_HIDDEN const char * const mi_lttng_element_rotation_schedule_periodic_time_us;
-LTTNG_HIDDEN const char * const mi_lttng_element_rotation_schedule_size_threshold;
-LTTNG_HIDDEN const char * const mi_lttng_element_rotation_schedule_size_threshold_bytes;
-LTTNG_HIDDEN const char * const mi_lttng_element_rotation_schedule_result;
-LTTNG_HIDDEN const char * const mi_lttng_element_rotation_schedule_results;
-LTTNG_HIDDEN const char * const mi_lttng_element_rotation_state;
-LTTNG_HIDDEN const char * const mi_lttng_element_rotation_location;
-LTTNG_HIDDEN const char * const mi_lttng_element_rotation_location_local;
-LTTNG_HIDDEN const char * const mi_lttng_element_rotation_location_local_absolute_path;
-LTTNG_HIDDEN const char * const mi_lttng_element_rotation_location_relay;
-LTTNG_HIDDEN const char * const mi_lttng_element_rotation_location_relay_host;
-LTTNG_HIDDEN const char * const mi_lttng_element_rotation_location_relay_control_port;
-LTTNG_HIDDEN const char * const mi_lttng_element_rotation_location_relay_data_port;
-LTTNG_HIDDEN const char * const mi_lttng_element_rotation_location_relay_protocol;
-LTTNG_HIDDEN const char * const mi_lttng_element_rotation_location_relay_relative_path;
+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;
 
 /* String related to enum lttng_rotation_state */
-LTTNG_HIDDEN const char * const mi_lttng_rotation_state_str_ongoing;
-LTTNG_HIDDEN const char * const mi_lttng_rotation_state_str_completed;
-LTTNG_HIDDEN const char * const mi_lttng_rotation_state_str_expired;
-LTTNG_HIDDEN const char * const mi_lttng_rotation_state_str_error;
+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;
 
 /* String related to enum lttng_trace_archive_location_relay_protocol_type */
-LTTNG_HIDDEN const char * const mi_lttng_rotation_location_relay_protocol_str_tcp;
+LTTNG_HIDDEN extern const char * const mi_lttng_rotation_location_relay_protocol_str_tcp;
 
 /* String related to add-context command */
 LTTNG_HIDDEN extern const char * const mi_lttng_element_context_symbol;
@@ -606,7 +596,7 @@ int mi_lttng_event_fields_open(struct mi_writer *writer);
 int mi_lttng_trackers_open(struct mi_writer *writer);
 
 /*
- * Machine interface: open a pid_tracker element.
+ * Machine interface: open a process attribute tracker element.
  *
  * writer An instance of a machine interface writer.
  *
@@ -615,7 +605,8 @@ int mi_lttng_trackers_open(struct mi_writer *writer);
  *
  * Note: A targets element is also opened for each tracker definition
  */
-int mi_lttng_pid_tracker_open(struct mi_writer *writer);
+int mi_lttng_process_attribute_tracker_open(
+               struct mi_writer *writer, enum lttng_process_attr process_attr);
 
 /*
  * Machine interface: open a PIDs element.
@@ -673,25 +664,54 @@ int mi_lttng_process(struct mi_writer *writer, pid_t pid , const char *name,
  */
 int mi_lttng_pid(struct mi_writer *writer, pid_t pid , const char *name,
                int is_open);
+
+/*
+ * Machine interface: open a process attribute values 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_process_attr_values_open(struct mi_writer *writer);
+
+/*
+ * Machine interface for track/untrack of all process attribute values.
+ *
+ * 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_all_process_attribute_value(struct mi_writer *writer,
+               enum lttng_process_attr process_attr,
+               bool is_open);
+
 /*
- * Machine interface: open a targets element.
+ * Machine interface for track/untrack of an integral process attribute value.
  *
  * 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);
+int mi_lttng_integral_process_attribute_value(struct mi_writer *writer,
+               enum lttng_process_attr process_attr,
+               int64_t value,
+               bool is_open);
 
 /*
- * Machine interface for track/untrack a pid_target
+ * Machine interface for track/untrack of a string process attribute value.
  *
  * 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);
+int mi_lttng_string_process_attribute_value(struct mi_writer *writer,
+               enum lttng_process_attr process_attr,
+               const char *value,
+               bool is_open);
 
 /*
  * Machine interface of a context.
This page took 0.025725 seconds and 4 git commands to generate.