inet/inet6 sockets: apply timeout
[lttng-tools.git] / src / common / sessiond-comm / sessiond-comm.h
index aeca78e50b9d2b3efb998028ab8e49225d0e4ecc..c52a6caa0575272788797786b373b85ba286bce9 100644 (file)
@@ -87,6 +87,7 @@ enum lttcomm_sessiond_command {
        LTTNG_SNAPSHOT_DEL_OUTPUT           = 26,
        LTTNG_SNAPSHOT_LIST_OUTPUT          = 27,
        LTTNG_SNAPSHOT_RECORD               = 28,
+       LTTNG_CREATE_SESSION_SNAPSHOT       = 29,
 };
 
 enum lttcomm_relayd_command {
@@ -124,6 +125,7 @@ enum lttcomm_return_code {
        LTTCOMM_CONSUMERD_ENOMEM,                   /* Consumer is out of memory */
        LTTCOMM_CONSUMERD_ERROR_METADATA,           /* Error with metadata. */
        LTTCOMM_CONSUMERD_FATAL,                    /* Fatal error. */
+       LTTCOMM_CONSUMERD_RELAYD_FAIL,              /* Error on remote relayd */
 
        /* MUST be last element */
        LTTCOMM_NR,                                             /* Last element */
@@ -155,7 +157,8 @@ enum lttcomm_metadata_command {
  * per PID registry indexed by session id ignoring the other values.
  */
 struct lttcomm_metadata_request_msg {
-       unsigned int session_id; /* Tracing session id */
+       uint64_t session_id; /* Tracing session id */
+       uint64_t session_id_per_pid; /* Tracing session id for per-pid */
        uint32_t bits_per_long; /* Consumer ABI */
        uint32_t uid;
        uint64_t key; /* Metadata channel key. */
@@ -319,11 +322,15 @@ struct lttcomm_consumer_msg {
                        int type; /* Per cpu or metadata. */
                        uint64_t tracefile_size; /* bytes */
                        uint32_t tracefile_count; /* number of tracefiles */
+                       /* If the channel's streams have to be monitored or not. */
+                       uint32_t monitor;
                } LTTNG_PACKED channel; /* Only used by Kernel. */
                struct {
                        uint64_t stream_key;
                        uint64_t channel_key;
                        int32_t cpu;    /* On which CPU this stream is assigned. */
+                       /* Tells the consumer if the stream should be or not monitored. */
+                       uint32_t no_monitor;
                } LTTNG_PACKED stream;  /* Only used by Kernel. */
                struct {
                        uint64_t net_index;
@@ -358,6 +365,9 @@ struct lttcomm_consumer_msg {
                        uint32_t chan_id;                       /* Channel ID on the tracer side. */
                        uint64_t tracefile_size;        /* bytes */
                        uint32_t tracefile_count;       /* number of tracefiles */
+                       uint64_t session_id_per_pid;    /* Per-pid session ID. */
+                       /* Tells the consumer if the stream should be or not monitored. */
+                       uint32_t monitor;
                } LTTNG_PACKED ask_channel;
                struct {
                        uint64_t key;
@@ -379,6 +389,15 @@ struct lttcomm_consumer_msg {
                struct {
                        uint64_t key;   /* Channel key. */
                } LTTNG_PACKED flush_channel;
+               struct {
+                       char pathname[PATH_MAX];
+                       /* Indicate if the snapshot goes on the relayd or locally. */
+                       uint32_t use_relayd;
+                       uint32_t metadata;              /* This a metadata snapshot. */
+                       uint64_t relayd_id;             /* Relayd id if apply. */
+                       uint64_t key;
+                       uint64_t max_stream_size;
+               } LTTNG_PACKED snapshot_channel;
        } u;
 } LTTNG_PACKED;
 
@@ -455,4 +474,11 @@ extern void lttcomm_copy_sock(struct lttcomm_sock *dst,
 extern struct lttcomm_relayd_sock *lttcomm_alloc_relayd_sock(
                struct lttng_uri *uri, uint32_t major, uint32_t minor);
 
+extern int lttcomm_setsockopt_rcv_timeout(int sock, unsigned int msec);
+extern int lttcomm_setsockopt_snd_timeout(int sock, unsigned int msec);
+
+extern void lttcomm_init(void);
+/* Get network timeout, in milliseconds */
+extern unsigned long lttcomm_get_network_timeout(void);
+
 #endif /* _LTTNG_SESSIOND_COMM_H */
This page took 0.023724 seconds and 4 git commands to generate.