X-Git-Url: https://git.lttng.org/?a=blobdiff_plain;f=src%2Fcommon%2Fsessiond-comm%2Fsessiond-comm.h;h=bd4611ef1664b90f5d63a98049234dca2d048b53;hb=7a0b90089e190dcd7a891a8b63242c273124b6d7;hp=4c1ba5ccef58fc3ba19f3e5a480da41b27baecf6;hpb=2b00d46244cab86f1186a7b00cdc660f24a26f72;p=lttng-tools.git diff --git a/src/common/sessiond-comm/sessiond-comm.h b/src/common/sessiond-comm/sessiond-comm.h index 4c1ba5cce..bd4611ef1 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" @@ -54,6 +54,7 @@ #define LTTCOMM_ERR_INDEX(code) (code - LTTCOMM_CONSUMERD_COMMAND_SOCK_READY) enum lttcomm_sessiond_command { + LTTCOMM_SESSIOND_COMMAND_MIN = -1, /* Tracer command */ LTTNG_ADD_CONTEXT = 0, /* LTTNG_CALIBRATE used to be here */ @@ -107,8 +108,16 @@ enum lttcomm_sessiond_command { LTTNG_CREATE_SESSION_EXT = 49, LTTNG_CLEAR_SESSION = 50, LTTNG_LIST_TRIGGERS = 51, + LTTNG_EXECUTE_ERROR_QUERY = 52, + LTTCOMM_SESSIOND_COMMAND_MAX, }; +static inline +bool lttcomm_sessiond_command_is_valid(enum lttcomm_sessiond_command cmd) +{ + return cmd > LTTCOMM_SESSIOND_COMMAND_MIN && cmd < LTTCOMM_SESSIOND_COMMAND_MAX; +} + static inline const char *lttcomm_sessiond_command_str(enum lttcomm_sessiond_command cmd) { @@ -197,6 +206,8 @@ const char *lttcomm_sessiond_command_str(enum lttcomm_sessiond_command cmd) return "LTTNG_CLEAR_SESSION"; case LTTNG_LIST_TRIGGERS: return "LTTNG_LIST_TRIGGERS"; + case LTTNG_EXECUTE_ERROR_QUERY: + return "LTTNG_EXECUTE_ERROR_QUERY"; default: abort(); } @@ -323,14 +334,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 @@ -340,7 +351,7 @@ struct lttcomm_relayd_sock { struct lttcomm_sock sock; uint32_t major; uint32_t minor; -} LTTNG_PACKED; +}; struct lttcomm_net_family { int family; @@ -377,48 +388,20 @@ struct lttcomm_session_msg { /* Event data */ struct { char channel_name[LTTNG_SYMBOL_NAME_LEN]; - struct lttng_event event; - /* Length of following filter expression. */ - uint32_t expression_len; - /* Length of following bytecode for filter. */ - uint32_t bytecode_len; - /* Exclusion count (fixed-size strings). */ - uint32_t exclusion_count; - /* Userspace probe location size. */ - uint32_t userspace_probe_location_len; - /* - * After this structure, the following variable-length - * items are transmitted: - * - char exclusion_names[LTTNG_SYMBOL_NAME_LEN][exclusion_count] - * - char filter_expression[expression_len] - * - unsigned char filter_bytecode[bytecode_len] - */ + uint32_t length; } LTTNG_PACKED enable; struct { char channel_name[LTTNG_SYMBOL_NAME_LEN]; - struct lttng_event event; - /* Length of following filter expression. */ - uint32_t expression_len; - /* Length of following bytecode for filter. */ - uint32_t bytecode_len; - /* - * After this structure, the following variable-length - * items are transmitted: - * - unsigned char filter_expression[expression_len] - * - unsigned char filter_bytecode[bytecode_len] - */ + uint32_t length; } LTTNG_PACKED disable; /* Create channel */ struct { - struct lttng_channel chan; - struct lttng_channel_extended extended; + uint32_t length; } LTTNG_PACKED channel; /* Context */ struct { char channel_name[LTTNG_SYMBOL_NAME_LEN]; - struct lttng_event_context ctx; - uint32_t provider_name_len; - uint32_t context_name_len; + uint32_t length; } LTTNG_PACKED context; /* Use by register_consumer */ struct { @@ -483,7 +466,11 @@ struct lttcomm_session_msg { } LTTNG_PACKED process_attr_tracker_set_tracking_policy; struct { uint32_t length; + uint8_t is_trigger_anonymous; } LTTNG_PACKED trigger; + struct { + uint32_t length; + } LTTNG_PACKED error_query; struct { uint64_t rotation_id; } LTTNG_PACKED get_rotation_info; @@ -546,11 +533,11 @@ struct lttng_event_exclusion { (&(_exclusion)->names[_i][0]) /* - * Event command header. + * Listing command header. */ -struct lttcomm_event_command_header { - /* Number of events */ - uint32_t nb_events; +struct lttcomm_list_command_header { + /* Number of elements */ + uint32_t count; } LTTNG_PACKED; /* @@ -651,8 +638,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. */ @@ -860,11 +848,11 @@ struct lttcomm_ust_msg { uint32_t handle; uint32_t cmd; union { - struct lttng_ust_channel channel; - struct lttng_ust_stream stream; - struct lttng_ust_event event; - struct lttng_ust_context context; - struct lttng_ust_tracer_version version; + struct lttng_ust_abi_channel channel; + struct lttng_ust_abi_stream stream; + struct lttng_ust_abi_event event; + struct lttng_ust_abi_context context; + struct lttng_ust_abi_tracer_version version; } u; } LTTNG_PACKED; @@ -884,7 +872,7 @@ struct lttcomm_ust_reply { struct { uint64_t memory_map_size; } LTTNG_PACKED stream; - struct lttng_ust_tracer_version version; + struct lttng_ust_abi_tracer_version version; } u; } LTTNG_PACKED; @@ -898,6 +886,9 @@ 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);