X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=include%2Flttng%2Fsession.h;fp=include%2Flttng%2Fsession.h;h=4a7f0c8c5bdac292a9532161d88b5a06d0613c35;hb=ee9c58e03e9f02c2966b43df2d71716dc02a54ed;hp=599892d13508d7470f829f6c89da84b18aea6b9c;hpb=774cc7cfb47c9fd944581e4819c4d9f9493478da;p=lttng-tools.git diff --git a/include/lttng/session.h b/include/lttng/session.h index 599892d13..4a7f0c8c5 100644 --- a/include/lttng/session.h +++ b/include/lttng/session.h @@ -22,6 +22,33 @@ extern "C" { #endif +#include + +enum lttng_tracker_type { + LTTNG_TRACKER_PID = 0, + LTTNG_TRACKER_VPID, + LTTNG_TRACKER_UID, + LTTNG_TRACKER_GID, + LTTNG_TRACKER_VUID, + LTTNG_TRACKER_VGID, +}; + +enum lttng_tracker_id_type { + LTTNG_ID_UNKNOWN = -1, + + LTTNG_ID_ALL, + LTTNG_ID_VALUE, + LTTNG_ID_STRING, +}; + +struct lttng_tracker_id { + enum lttng_tracker_id_type type; + int value; + char *string; +}; + +struct lttng_handle; + /* * Basic session information. * @@ -129,6 +156,48 @@ extern int lttng_list_sessions(struct lttng_session **sessions); extern int lttng_set_session_shm_path(const char *session_name, const char *shm_path); +/* + * Add ID to session tracker. + * + * tracker_type is the type of tracker. + * An id argument >= 0 adds the ID to the session tracker. + * An id argument of -1 means "track all IDs". + * + * Return 0 on success else a negative LTTng error code. + */ +extern int lttng_track_id(struct lttng_handle *handle, + enum lttng_tracker_type tracker_type, + struct lttng_tracker_id *id); + +/* + * Remove ID from session tracker. + * + * tracker_type is the type of tracker. + * An id argument >= 0 removes the ID from the session tracker. + * An id argument of -1 means "untrack all IDs". + * + * Return 0 on success else a negative LTTng error code. + */ +extern int lttng_untrack_id(struct lttng_handle *handle, + enum lttng_tracker_type tracker_type, + struct lttng_tracker_id *id); + +/* + * List IDs in the tracker. + * + * tracker_type is the type of tracker. + * ids is set to an allocated array of IDs currently tracked. On + * success, ids and the strings it contains must be freed by the + * caller. + * nr_ids is set to the number of entries contained by the ids array. + * + * Returns 0 on success, else a negative LTTng error code. + */ +extern int lttng_list_tracker_ids(struct lttng_handle *handle, + enum lttng_tracker_type tracker_type, + struct lttng_tracker_id **ids, + size_t *nr_ids); + /* * Add PID to session tracker. *