Generate local kernel and UST indexes
[lttng-tools.git] / src / bin / lttng-relayd / lttng-relayd.h
index dfbc63f399e16cb2e9503a6513f1a91707583ec7..61db23a7752930ac5b351236f90d3e255181fb27 100644 (file)
  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
  */
 
-#ifndef _LTT_RELAYD_H
-#define _LTT_RELAYD_H
+#ifndef LTTNG_RELAYD_H
+#define LTTNG_RELAYD_H
 
 #define _LGPL_SOURCE
 #include <urcu.h>
 #include <urcu/wfqueue.h>
+#include <common/hashtable/hashtable.h>
 
 /*
  * Queue used to enqueue relay requests
  */
 struct relay_cmd_queue {
-       int32_t futex;
        struct cds_wfq_queue queue;
+       int32_t futex;
 };
 
 enum connection_type {
@@ -40,9 +41,13 @@ enum connection_type {
  * Represents a session for the relay point of view
  */
 struct relay_session {
+       /*
+        * This session id is used to identify a set of stream to a tracing session
+        * but also make sure we have a unique session id associated with a session
+        * daemon which can provide multiple data source.
+        */
        uint64_t id;
        struct lttcomm_sock *sock;
-       unsigned int version_check_done:1;
 };
 
 /*
@@ -50,10 +55,26 @@ struct relay_session {
  */
 struct relay_stream {
        uint64_t stream_handle;
+       uint64_t prev_seq;      /* previous data sequence number encountered */
        struct lttng_ht_node_ulong stream_n;
-       int fd;
-       uint64_t seq;
        struct relay_session *session;
+       struct rcu_head rcu_node;
+       int fd;
+       int index_fd;
+
+       char *path_name;
+       char *channel_name;
+       /* on-disk circular buffer of tracefiles */
+       uint64_t tracefile_size;
+       uint64_t tracefile_size_current;
+       uint64_t tracefile_count;
+       uint64_t tracefile_count_current;
+
+       /* Information telling us when to close the stream  */
+       unsigned int close_flag:1;
+       uint64_t last_net_seq_num;
+       /* Indicate if the stream was initialized for a data pending command. */
+       unsigned int data_pending_check_done:1;
 };
 
 /*
@@ -62,10 +83,17 @@ struct relay_stream {
  */
 struct relay_command {
        struct lttcomm_sock *sock;
+       struct relay_session *session;
        struct cds_wfq_node node;
        struct lttng_ht_node_ulong sock_n;
+       struct rcu_head rcu_node;
        enum connection_type type;
-       struct relay_session *session;
+       unsigned int version_check_done:1;
+       /* protocol version to use for this session */
+       uint32_t major;
+       uint32_t minor;
 };
 
-#endif
+extern char *opt_output_path;
+
+#endif /* LTTNG_RELAYD_H */
This page took 0.025347 seconds and 4 git commands to generate.