X-Git-Url: https://git.lttng.org/?a=blobdiff_plain;f=src%2Fcommon%2Fsessiond-comm%2Fsessiond-comm.h;h=b9758af006647b55c77b213aaf63b60a99e7847f;hb=37c7ffca3e35bdddae5aaafe979f1554f6e1b2b9;hp=fd1ceae117c279210071326ab3544ebe58ad2253;hpb=f953b297c44e58bf84afbe04abd758e63149f40b;p=lttng-tools.git diff --git a/src/common/sessiond-comm/sessiond-comm.h b/src/common/sessiond-comm/sessiond-comm.h index fd1ceae11..b9758af00 100644 --- a/src/common/sessiond-comm/sessiond-comm.h +++ b/src/common/sessiond-comm/sessiond-comm.h @@ -1,6 +1,5 @@ /* - * Copyright (C) 2011 David Goulet - * Copyright (C) 2011 Julien Desfossez + * Copyright (C) 2011 EfficiOS Inc. * Copyright (C) 2011 Mathieu Desnoyers * * SPDX-License-Identifier: GPL-2.0-only @@ -31,6 +30,7 @@ #include #include +#include #include #include "inet.h" @@ -179,6 +179,7 @@ enum lttcomm_return_code { LTTCOMM_CONSUMERD_TRACE_CHUNK_EXISTS_REMOTE,/* Trace chunk exists on relay daemon. */ LTTCOMM_CONSUMERD_UNKNOWN_TRACE_CHUNK, /* Unknown trace chunk. */ LTTCOMM_CONSUMERD_RELAYD_CLEAR_DISALLOWED, /* Relayd does not accept clear command. */ + LTTCOMM_CONSUMERD_UNKNOWN_ERROR, /* Unknown error. */ /* MUST be last element */ LTTCOMM_NR, /* Last element */ @@ -223,14 +224,14 @@ struct lttcomm_sockaddr { struct sockaddr_in sin; struct sockaddr_in6 sin6; } addr; -} LTTNG_PACKED; +}; struct lttcomm_sock { int32_t fd; enum lttcomm_sock_proto proto; struct lttcomm_sockaddr sockaddr; const struct lttcomm_proto_ops *ops; -} LTTNG_PACKED; +}; /* * Relayd sock. Adds the protocol version to use for the communications with @@ -240,7 +241,7 @@ struct lttcomm_relayd_sock { struct lttcomm_sock sock; uint32_t major; uint32_t minor; -} LTTNG_PACKED; +}; struct lttcomm_net_family { int family; @@ -534,6 +535,8 @@ struct lttcomm_consumer_msg { uint32_t monitor; /* timer to check the streams usage in live mode (usec). */ unsigned int live_timer_interval; + /* is part of a live session */ + uint8_t is_live; /* timer to sample a channel's positions (usec). */ unsigned int monitor_timer_interval; } LTTNG_PACKED channel; /* Only used by Kernel. */ @@ -547,8 +550,9 @@ struct lttcomm_consumer_msg { struct { uint64_t net_index; enum lttng_stream_type type; - /* Open socket to the relayd */ - struct lttcomm_relayd_sock sock; + uint32_t major; + uint32_t minor; + uint8_t relayd_socket_protocol; /* Tracing session id associated to the relayd. */ uint64_t session_id; /* Relayd session id, only used with control socket. */ @@ -567,6 +571,7 @@ struct lttcomm_consumer_msg { uint32_t switch_timer_interval; /* usec */ uint32_t read_timer_interval; /* usec */ unsigned int live_timer_interval; /* usec */ + uint8_t is_live; /* is part of a live session */ uint32_t monitor_timer_interval; /* usec */ int32_t output; /* splice, mmap */ int32_t type; /* metadata or per_cpu */ @@ -702,6 +707,9 @@ struct lttcomm_consumer_msg { struct { uint64_t key; } LTTNG_PACKED clear_channel; + struct { + uint64_t key; + } LTTNG_PACKED open_channel_packets; } u; } LTTNG_PACKED; @@ -790,6 +798,10 @@ LTTNG_HIDDEN int lttcomm_init_inet6_sockaddr(struct lttcomm_sockaddr *sockaddr, const char *ip, unsigned int port); LTTNG_HIDDEN struct lttcomm_sock *lttcomm_alloc_sock(enum lttcomm_sock_proto proto); +LTTNG_HIDDEN int lttcomm_populate_sock_from_open_socket( + struct lttcomm_sock *sock, + int fd, + enum lttcomm_sock_proto protocol); LTTNG_HIDDEN int lttcomm_create_sock(struct lttcomm_sock *sock); LTTNG_HIDDEN struct lttcomm_sock *lttcomm_alloc_sock_from_uri(struct lttng_uri *uri); LTTNG_HIDDEN void lttcomm_destroy_sock(struct lttcomm_sock *sock);