X-Git-Url: http://git.efficios.com/?p=lttng-tools.git;a=blobdiff_plain;f=src%2Fcommon%2Fsessiond-comm%2Fsessiond-comm.h;h=8c4fe0ee7eed02293031b74ec9666fc375da72b6;hp=cd5ee062230c51da3826dee0cde97864af309eec;hb=2288467f63826a06d25ac361fa04ea92ec7ddfa3;hpb=491d15395b58df09f8a3e7ba7404eb1f46392b79 diff --git a/src/common/sessiond-comm/sessiond-comm.h b/src/common/sessiond-comm/sessiond-comm.h index cd5ee0622..8c4fe0ee7 100644 --- a/src/common/sessiond-comm/sessiond-comm.h +++ b/src/common/sessiond-comm/sessiond-comm.h @@ -31,6 +31,7 @@ #include #include #include +#include #include #include #include @@ -100,6 +101,12 @@ enum lttcomm_sessiond_command { LTTNG_REGENERATE_STATEDUMP = 42, LTTNG_REGISTER_TRIGGER = 43, LTTNG_UNREGISTER_TRIGGER = 44, + LTTNG_ROTATE_SESSION = 45, + LTTNG_ROTATION_GET_INFO = 46, + LTTNG_ROTATION_SET_SCHEDULE = 47, + LTTNG_SESSION_GET_CURRENT_OUTPUT = 48, + LTTNG_ROTATION_SCHEDULE_GET_TIMER_PERIOD = 49, + LTTNG_ROTATION_SCHEDULE_GET_SIZE = 50, }; enum lttcomm_relayd_command { @@ -123,6 +130,14 @@ enum lttcomm_relayd_command { RELAYD_STREAMS_SENT = 16, /* Ask the relay to reset the metadata trace file (2.8+) */ RELAYD_RESET_METADATA = 17, + /* Ask the relay to rotate a stream file (2.11+) */ + RELAYD_ROTATE_STREAM = 18, + /* Rename a chunk after the rotation is completed (2.11+) */ + RELAYD_ROTATE_RENAME = 19, + /* Check if a chunk has data pending (2.11+) */ + RELAYD_ROTATE_PENDING = 20, + /* Create a folder on the relayd FS (2.11+) */ + RELAYD_MKDIR = 21, }; /* @@ -321,6 +336,13 @@ struct lttcomm_session_msg { struct { uint32_t length; } LTTNG_PACKED trigger; + struct { + uint64_t rotation_id; + } LTTNG_PACKED get_rotation_info; + struct { + uint64_t timer_us; + uint64_t size; + } LTTNG_PACKED rotate_setup; } u; } LTTNG_PACKED; @@ -534,6 +556,33 @@ struct lttcomm_consumer_msg { struct { uint64_t session_id; } LTTNG_PACKED regenerate_metadata; + struct { + char pathname[PATH_MAX]; + uint32_t metadata; /* This is a metadata channel. */ + uint64_t relayd_id; /* Relayd id if apply. */ + uint64_t key; + uint64_t new_chunk_id; + } LTTNG_PACKED rotate_channel; + struct { + char old_path[LTTNG_PATH_MAX]; + char new_path[LTTNG_PATH_MAX]; + uint64_t relayd_id; /* Relayd id if apply. */ + uint64_t session_id; + uint32_t uid; + uint32_t gid; + } LTTNG_PACKED rotate_rename; + struct { + uint64_t relayd_id; + uint64_t session_id; + uint64_t chunk_id; + } LTTNG_PACKED rotate_pending_relay; + struct { + char path[LTTNG_PATH_MAX]; + uint64_t relayd_id; /* Relayd id if apply. */ + uint64_t session_id; + uint32_t uid; + uint32_t gid; + } LTTNG_PACKED mkdir; } u; } LTTNG_PACKED; @@ -548,6 +597,10 @@ struct lttcomm_consumer_channel_monitor_msg { * Lowest and highest usage (bytes) at the moment the sample was taken. */ uint64_t lowest, highest; + /* + * Sum of all the consumed positions for a channel. + */ + uint64_t total_consumed; } LTTNG_PACKED; /* @@ -604,30 +657,38 @@ struct lttcomm_ust_reply { #endif /* HAVE_LIBLTTNG_UST_CTL */ -extern const char *lttcomm_get_readable_code(enum lttcomm_return_code code); +LTTNG_HIDDEN const char *lttcomm_get_readable_code(enum lttcomm_return_code code); -extern int lttcomm_init_inet_sockaddr(struct lttcomm_sockaddr *sockaddr, +LTTNG_HIDDEN int lttcomm_init_inet_sockaddr(struct lttcomm_sockaddr *sockaddr, const char *ip, unsigned int port); -extern int lttcomm_init_inet6_sockaddr(struct lttcomm_sockaddr *sockaddr, +LTTNG_HIDDEN int lttcomm_init_inet6_sockaddr(struct lttcomm_sockaddr *sockaddr, const char *ip, unsigned int port); -extern struct lttcomm_sock *lttcomm_alloc_sock(enum lttcomm_sock_proto proto); -extern int lttcomm_create_sock(struct lttcomm_sock *sock); -extern struct lttcomm_sock *lttcomm_alloc_sock_from_uri(struct lttng_uri *uri); -extern void lttcomm_destroy_sock(struct lttcomm_sock *sock); -extern struct lttcomm_sock *lttcomm_alloc_copy_sock(struct lttcomm_sock *src); -extern void lttcomm_copy_sock(struct lttcomm_sock *dst, +LTTNG_HIDDEN struct lttcomm_sock *lttcomm_alloc_sock(enum lttcomm_sock_proto proto); +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); +LTTNG_HIDDEN struct lttcomm_sock *lttcomm_alloc_copy_sock(struct lttcomm_sock *src); +LTTNG_HIDDEN void lttcomm_copy_sock(struct lttcomm_sock *dst, struct lttcomm_sock *src); /* Relayd socket object. */ -extern struct lttcomm_relayd_sock *lttcomm_alloc_relayd_sock( +LTTNG_HIDDEN 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); +LTTNG_HIDDEN int lttcomm_setsockopt_rcv_timeout(int sock, unsigned int msec); +LTTNG_HIDDEN int lttcomm_setsockopt_snd_timeout(int sock, unsigned int msec); + +LTTNG_HIDDEN int lttcomm_sock_get_port(const struct lttcomm_sock *sock, + uint16_t *port); +/* + * Set a port to an lttcomm_sock. This will have no effect is the socket is + * already bound. + */ +LTTNG_HIDDEN int lttcomm_sock_set_port(struct lttcomm_sock *sock, uint16_t port); -extern void lttcomm_init(void); +LTTNG_HIDDEN void lttcomm_init(void); /* Get network timeout, in milliseconds */ -extern unsigned long lttcomm_get_network_timeout(void); +LTTNG_HIDDEN unsigned long lttcomm_get_network_timeout(void); #endif /* _LTTNG_SESSIOND_COMM_H */