+static int get_tracker_elements(enum lttng_tracker_type tracker_type,
+ const char **element_id_tracker,
+ const char **element_target_id,
+ const char **element_id,
+ const char **element_id_alias,
+ const char **element_name)
+{
+ int ret = 0;
+
+ switch (tracker_type) {
+ case LTTNG_TRACKER_PID:
+ *element_id_tracker = config_element_pid_tracker;
+ *element_target_id = config_element_target_pid;
+ *element_id = config_element_id;
+ *element_id_alias = config_element_pid;
+ *element_name = NULL;
+ break;
+ case LTTNG_TRACKER_VPID:
+ *element_id_tracker = config_element_vpid_tracker;
+ *element_target_id = config_element_target_vpid;
+ *element_id = config_element_id;
+ *element_id_alias = NULL;
+ *element_name = NULL;
+ break;
+ case LTTNG_TRACKER_UID:
+ *element_id_tracker = config_element_uid_tracker;
+ *element_target_id = config_element_target_uid;
+ *element_id = config_element_id;
+ *element_id_alias = NULL;
+ *element_name = config_element_name;
+ break;
+ case LTTNG_TRACKER_VUID:
+ *element_id_tracker = config_element_vuid_tracker;
+ *element_target_id = config_element_target_vuid;
+ *element_id = config_element_id;
+ *element_id_alias = NULL;
+ *element_name = config_element_name;
+ break;
+ case LTTNG_TRACKER_GID:
+ *element_id_tracker = config_element_gid_tracker;
+ *element_target_id = config_element_target_gid;
+ *element_id = config_element_id;
+ *element_id_alias = NULL;
+ *element_name = config_element_name;
+ break;
+ case LTTNG_TRACKER_VGID:
+ *element_id_tracker = config_element_vgid_tracker;
+ *element_target_id = config_element_target_vgid;
+ *element_id = config_element_id;
+ *element_id_alias = NULL;
+ *element_name = config_element_name;
+ break;
+ default:
+ ret = LTTNG_ERR_INVALID;
+ }
+ return ret;
+}
+
+static int process_id_tracker_node(xmlNodePtr id_tracker_node,
+ struct lttng_handle *handle,
+ enum lttng_tracker_type tracker_type)