#define _GNU_SOURCE
#include <limits.h>
#include <lttng/lttng.h>
+#include <lttng/snapshot-internal.h>
#include <common/compat/socket.h>
#include <common/uri.h>
#include <common/defaults.h>
LTTNG_ENABLE_EVENT_WITH_FILTER = 22,
LTTNG_HEALTH_CHECK = 23,
LTTNG_DATA_PENDING = 24,
+ LTTNG_SNAPSHOT_ADD_OUTPUT = 25,
+ LTTNG_SNAPSHOT_DEL_OUTPUT = 26,
+ LTTNG_SNAPSHOT_LIST_OUTPUT = 27,
+ LTTNG_SNAPSHOT_RECORD = 28,
};
enum lttcomm_relayd_command {
/* Number of lttng_uri following */
uint32_t size;
} LTTNG_PACKED uri;
+ struct {
+ struct lttng_snapshot_output output;
+ } LTTNG_PACKED snapshot_output;
+ struct {
+ uint32_t wait;
+ struct lttng_snapshot_output output;
+ } LTTNG_PACKED snapshot_record;
} u;
} LTTNG_PACKED;
char payload[];
} LTTNG_PACKED;
+struct lttcomm_lttng_output_id {
+ uint32_t id;
+} LTTNG_PACKED;
+
struct lttcomm_health_msg {
uint32_t component;
uint32_t cmd;
uint64_t stream_key;
uint64_t channel_key;
int32_t cpu; /* On which CPU this stream is assigned. */
+ /* Tells the consumer if the stream should be or not monitored. */
+ uint32_t no_monitor;
} LTTNG_PACKED stream; /* Only used by Kernel. */
struct {
uint64_t net_index;
struct {
uint64_t key; /* Channel key. */
} LTTNG_PACKED flush_channel;
+ struct {
+ char pathname[PATH_MAX];
+ /* Indicate if the snapshot goes on the relayd or locally. */
+ uint32_t use_relayd;
+ uint32_t metadata; /* This a metadata snapshot. */
+ uint64_t relayd_id; /* Relayd id if apply. */
+ uint64_t key;
+ uint64_t max_size;
+ } LTTNG_PACKED snapshot_channel;
} u;
} LTTNG_PACKED;