X-Git-Url: http://git.efficios.com/?p=lttng-tools.git;a=blobdiff_plain;f=src%2Fcommon%2Fsessiond-comm%2Fsessiond-comm.h;h=e7fd69ddd4388f6e288a8cacdf12fd9924f36b4d;hp=77861887688e3b2d86ae7dc335654865bf599e85;hb=2038dd6ce78bc856ece474626b7f039d19860bce;hpb=ba999de09a8640b8652bce92450bf06c12e12e38 diff --git a/src/common/sessiond-comm/sessiond-comm.h b/src/common/sessiond-comm/sessiond-comm.h index 778618876..e7fd69ddd 100644 --- a/src/common/sessiond-comm/sessiond-comm.h +++ b/src/common/sessiond-comm/sessiond-comm.h @@ -40,7 +40,7 @@ #include "inet.h" #include "inet6.h" -#include "unix.h" +#include /* Queue size of listen(2) */ #define LTTNG_SESSIOND_COMM_MAX_LISTEN 64 @@ -94,6 +94,7 @@ enum lttcomm_sessiond_command { LTTNG_UNTRACK_PID = 33, LTTNG_LIST_TRACKER_PIDS = 34, LTTNG_SET_SESSION_SHM_PATH = 40, + LTTNG_METADATA_REGENERATE = 41, }; enum lttcomm_relayd_command { @@ -115,6 +116,8 @@ enum lttcomm_relayd_command { RELAYD_LIST_SESSIONS = 15, /* All streams of the channel have been sent to the relayd (2.4+). */ RELAYD_STREAMS_SENT = 16, + /* Ask the relay to reset the metadata trace file (2.8+) */ + RELAYD_RESET_METADATA = 17, }; /* @@ -218,8 +221,8 @@ struct lttcomm_proto_ops { int (*listen) (struct lttcomm_sock *sock, int backlog); ssize_t (*recvmsg) (struct lttcomm_sock *sock, void *buf, size_t len, int flags); - ssize_t (*sendmsg) (struct lttcomm_sock *sock, void *buf, size_t len, - int flags); + ssize_t (*sendmsg) (struct lttcomm_sock *sock, const void *buf, + size_t len, int flags); }; /* @@ -270,6 +273,8 @@ struct lttcomm_session_msg { struct { char channel_name[LTTNG_SYMBOL_NAME_LEN]; struct lttng_event_context ctx LTTNG_PACKED; + uint32_t provider_name_len; + uint32_t context_name_len; } LTTNG_PACKED context; /* Use by register_consumer */ struct { @@ -339,6 +344,42 @@ struct lttng_event_exclusion { #define LTTNG_EVENT_EXCLUSION_NAME_AT(_exclusion, _i) \ (&(_exclusion)->names[_i][0]) +/* + * Event command header. + */ +struct lttcomm_event_command_header { + /* Number of events */ + uint32_t nb_events; +} LTTNG_PACKED; + +/* + * Event extended info header. This is the structure preceding each + * extended info data. + */ +struct lttcomm_event_extended_header { + /* + * Size of filter string immediately following this header. + * This size includes the terminal null character. + */ + uint32_t filter_len; + + /* + * Number of exclusion names, immediately following the filter + * string. Each exclusion name has a fixed length of + * LTTNG_SYMBOL_NAME_LEN bytes, including the terminal null + * character. + */ + uint32_t nb_exclusions; +} LTTNG_PACKED; + +/* + * Channel extended info. + */ +struct lttcomm_channel_extended { + uint64_t discarded_events; + uint64_t lost_packets; +} LTTNG_PACKED; + /* * Data structure for the response from sessiond to the lttng client. */ @@ -346,9 +387,8 @@ struct lttcomm_lttng_msg { uint32_t cmd_type; /* enum lttcomm_sessiond_command */ uint32_t ret_code; /* enum lttcomm_return_code */ uint32_t pid; /* pid_t */ + uint32_t cmd_header_size; uint32_t data_size; - /* Contains: trace_name + data */ - char payload[]; } LTTNG_PACKED; struct lttcomm_lttng_output_id { @@ -449,6 +489,7 @@ struct lttcomm_consumer_msg { uint64_t key; /* Metadata channel key. */ uint64_t target_offset; /* Offset in the consumer */ uint64_t len; /* Length of metadata to be received. */ + uint64_t version; /* Version of the metadata. */ } LTTNG_PACKED push_metadata; struct { uint64_t key; /* Metadata channel key. */ @@ -472,6 +513,17 @@ struct lttcomm_consumer_msg { uint64_t channel_key; uint64_t net_seq_idx; } LTTNG_PACKED sent_streams; + struct { + uint64_t session_id; + uint64_t channel_key; + } LTTNG_PACKED discarded_events; + struct { + uint64_t session_id; + uint64_t channel_key; + } LTTNG_PACKED lost_packets; + struct { + uint64_t session_id; + } LTTNG_PACKED metadata_regenerate; } u; } LTTNG_PACKED;