/*
- * Copyright (C) 2011 David Goulet <david.goulet@polymtl.ca>
- * Copyright (C) 2011 Julien Desfossez <julien.desfossez@polymtl.ca>
+ * Copyright (C) 2011 EfficiOS Inc.
* Copyright (C) 2011 Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
*
* SPDX-License-Identifier: GPL-2.0-only
#include <arpa/inet.h>
#include <netinet/in.h>
+#include <stdint.h>
#include <sys/un.h>
#include "inet.h"
LTTNG_CREATE_SESSION_EXT = 49,
LTTNG_CLEAR_SESSION = 50,
LTTNG_LIST_TRIGGERS = 51,
+ LTTNG_EXECUTE_ERROR_QUERY = 52,
};
static inline
return "LTTNG_CLEAR_SESSION";
case LTTNG_LIST_TRIGGERS:
return "LTTNG_LIST_TRIGGERS";
+ case LTTNG_EXECUTE_ERROR_QUERY:
+ return "LTTNG_EXECUTE_ERROR_QUERY";
default:
abort();
}
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
struct lttcomm_sock sock;
uint32_t major;
uint32_t minor;
-} LTTNG_PACKED;
+};
struct lttcomm_net_family {
int family;
/* 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 {
} 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;
(&(_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;
/*
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. */
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);