+ * Get the type of a process attribute value at a given index.
+ *
+ * Returns a process attribute value type on success,
+ * LTTNG_PROCESS_ATTR_VALUE_TYPE_INVALID if an invalid argument is provided.
+ */
+LTTNG_EXPORT extern enum lttng_process_attr_value_type
+lttng_process_attr_values_get_type_at_index(const struct lttng_process_attr_values *values,
+ unsigned int index);
+
+/*
+ * Get a process ID process attribute value.
+ *
+ * Returns LTTNG_PROCESS_ATTR_VALUES_STATUS_OK on success,
+ * LTTNG_PROCESS_ATTR_VALUES_STATUS_INVALID_TYPE if the process attribute value
+ * is not a process ID.
+ */
+LTTNG_EXPORT extern enum lttng_process_attr_values_status
+lttng_process_attr_values_get_pid_at_index(const struct lttng_process_attr_values *values,
+ unsigned int index,
+ pid_t *pid);
+
+/*
+ * Get a user ID process attribute value.
+ *
+ * Returns LTTNG_PROCESS_ATTR_VALUES_STATUS_OK on success,
+ * LTTNG_PROCESS_ATTR_VALUES_STATUS_INVALID_TYPE if the process attribute value
+ * is not a user ID.
+ */
+LTTNG_EXPORT extern enum lttng_process_attr_values_status
+lttng_process_attr_values_get_uid_at_index(const struct lttng_process_attr_values *values,
+ unsigned int index,
+ uid_t *uid);
+
+/*
+ * Get a user name process attribute value.
+ *
+ * Returns LTTNG_PROCESS_ATTR_VALUES_STATUS_OK on success,
+ * LTTNG_PROCESS_ATTR_VALUES_STATUS_INVALID_TYPE if the process attribute value
+ * is not a user name.
+ */
+LTTNG_EXPORT extern enum lttng_process_attr_values_status
+lttng_process_attr_values_get_user_name_at_index(const struct lttng_process_attr_values *values,
+ unsigned int index,
+ const char **user_name);
+
+/*
+ * Get a group ID process attribute value.
+ *
+ * Returns LTTNG_PROCESS_ATTR_VALUES_STATUS_OK on success,
+ * LTTNG_PROCESS_ATTR_VALUES_STATUS_INVALID_TYPE if the process attribute value
+ * is not a group ID.
+ */
+LTTNG_EXPORT extern enum lttng_process_attr_values_status
+lttng_process_attr_values_get_gid_at_index(const struct lttng_process_attr_values *values,
+ unsigned int index,
+ gid_t *gid);
+
+/*
+ * Get a group name process attribute value.
+ *
+ * Returns LTTNG_PROCESS_ATTR_VALUES_STATUS_OK on success,
+ * LTTNG_PROCESS_ATTR_VALUES_STATUS_INVALID_TYPE if the process attribute value
+ * is not a group name.
+ */
+LTTNG_EXPORT extern enum lttng_process_attr_values_status
+lttng_process_attr_values_get_group_name_at_index(const struct lttng_process_attr_values *values,
+ unsigned int index,
+ const char **group_name);
+
+/* The following entry points are deprecated. */
+
+/*
+ * Deprecated: see `lttng_process_attr_tracker_handle_get_inclusion_set` and
+ * `lttng_process_tracker_handle_get_tracking_policy`.
+ *
+ * List tracked PIDs.
+ *
+ * `enabled` indicates whether or not the PID tracker is enabled.
+ *
+ * `pids` is set to an allocated array of PIDs currently being tracked. On
+ * success, `pids` must be freed by the caller.
+ *
+ * `nr_pids` is set to the number of entries contained in the `pids` array.
+ *
+ * Returns 0 on success, else a negative LTTng error code.
+ */
+LTTNG_EXPORT extern int
+lttng_list_tracker_pids(struct lttng_handle *handle, int *enabled, int32_t **pids, size_t *nr_pids);
+
+/*
+ * Deprecated: see `lttng_process_attr_process_id_tracker_handle_add_pid`.
+ *
+ * Add PID to session tracker.
+ *
+ * A pid argument >= 0 adds the PID to the session's PID tracker.
+ * A pid argument of -1 means "track all PIDs".
+ *
+ * Note on 'real' PIDs vs 'virtual' VPIDs:
+ * - With the user space domain specified, this function will add a VPID
+ * value to the virtual process ID process attribute tracker's inclusion
+ * set.
+ * - With the kernel space domain specified, this function will add a PID
+ * value to the process ID process attribute tracker's inclusion set.
+ *
+ * Returns 0 on success, else a negative LTTng error code.
+ */
+LTTNG_EXPORT extern int lttng_track_pid(struct lttng_handle *handle, int pid);
+
+/*
+ * Deprecated: see `lttng_process_attr_process_id_tracker_handle_remove_pid`.
+ *
+ * Remove PID from session tracker.
+ *
+ * A pid argument >= 0 removes the PID from the session's PID tracker.
+ * A pid argument of -1 means "untrack all PIDs".
+ *
+ * Note on 'real' PIDs vs 'virtual' VPIDs:
+ * - With the user space domain specified, this function will remove a VPID
+ * value from the virtual process ID process attribute tracker's inclusion
+ * set.
+ * - With the kernel space domain specified, this function will remove a PID
+ * value from the process ID process attribute tracker's inclusion set.
+ *
+ * Returns 0 on success, else a negative LTTng error code.