X-Git-Url: https://git.lttng.org/?p=lttng-tools.git;a=blobdiff_plain;f=src%2Fcommon%2Fsessiond-comm%2Fsessiond-comm.h;h=aeca78e50b9d2b3efb998028ab8e49225d0e4ecc;hp=5980ddfcaccb0ea47e6854723262f7e4338e8fbd;hb=da3c9ec137aaec74635ca1f5584040c20b1d3d7b;hpb=1624d5b7ba86633d36f3a5c86ea1df5d308c4360 diff --git a/src/common/sessiond-comm/sessiond-comm.h b/src/common/sessiond-comm/sessiond-comm.h index 5980ddfca..aeca78e50 100644 --- a/src/common/sessiond-comm/sessiond-comm.h +++ b/src/common/sessiond-comm/sessiond-comm.h @@ -28,6 +28,7 @@ #define _GNU_SOURCE #include #include +#include #include #include #include @@ -82,6 +83,10 @@ enum lttcomm_sessiond_command { LTTNG_ENABLE_EVENT_WITH_FILTER = 22, LTTNG_HEALTH_CHECK = 23, LTTNG_DATA_PENDING = 24, + LTTNG_SNAPSHOT_ADD_OUTPUT = 25, + LTTNG_SNAPSHOT_DEL_OUTPUT = 26, + LTTNG_SNAPSHOT_LIST_OUTPUT = 27, + LTTNG_SNAPSHOT_RECORD = 28, }; enum lttcomm_relayd_command { @@ -171,6 +176,16 @@ struct lttcomm_sock { const struct lttcomm_proto_ops *ops; } LTTNG_PACKED; +/* + * Relayd sock. Adds the protocol version to use for the communications with + * the relayd. + */ +struct lttcomm_relayd_sock { + struct lttcomm_sock sock; + uint32_t major; + uint32_t minor; +} LTTNG_PACKED; + struct lttcomm_net_family { int family; int (*create) (struct lttcomm_sock *sock, int type, int proto); @@ -230,6 +245,13 @@ struct lttcomm_session_msg { /* Number of lttng_uri following */ uint32_t size; } LTTNG_PACKED uri; + struct { + struct lttng_snapshot_output output; + } LTTNG_PACKED snapshot_output; + struct { + uint32_t wait; + struct lttng_snapshot_output output; + } LTTNG_PACKED snapshot_record; } u; } LTTNG_PACKED; @@ -261,6 +283,10 @@ struct lttcomm_lttng_msg { char payload[]; } LTTNG_PACKED; +struct lttcomm_lttng_output_id { + uint32_t id; +} LTTNG_PACKED; + struct lttcomm_health_msg { uint32_t component; uint32_t cmd; @@ -303,7 +329,7 @@ struct lttcomm_consumer_msg { uint64_t net_index; enum lttng_stream_type type; /* Open socket to the relayd */ - struct lttcomm_sock sock; + struct lttcomm_relayd_sock sock; /* Tracing session id associated to the relayd. */ uint64_t session_id; } LTTNG_PACKED relayd_sock; @@ -328,7 +354,7 @@ struct lttcomm_consumer_msg { uint32_t gid; /* Group ID ot the session */ uint64_t relayd_id; /* Relayd id if apply. */ uint64_t key; /* Unique channel key. */ - unsigned char uuid[UUID_STR_LEN]; /* uuid for ust tracer. */ + unsigned char uuid[UUID_LEN]; /* uuid for ust tracer. */ uint32_t chan_id; /* Channel ID on the tracer side. */ uint64_t tracefile_size; /* bytes */ uint32_t tracefile_count; /* number of tracefiles */ @@ -425,4 +451,8 @@ extern struct lttcomm_sock *lttcomm_alloc_copy_sock(struct lttcomm_sock *src); extern void lttcomm_copy_sock(struct lttcomm_sock *dst, struct lttcomm_sock *src); +/* Relayd socket object. */ +extern struct lttcomm_relayd_sock *lttcomm_alloc_relayd_sock( + struct lttng_uri *uri, uint32_t major, uint32_t minor); + #endif /* _LTTNG_SESSIOND_COMM_H */