struct ltt_kernel_context {
struct lttng_kernel_context ctx;
struct cds_list_head list;
+ /* Indicates whether or not the context is in a list. */
+ bool in_list;
};
/* Kernel event */
struct cds_list_head list;
char *filter_expression;
struct lttng_filter_bytecode *filter;
+ struct lttng_userspace_probe_location *userspace_probe_location;
};
/* Kernel channel */
struct ltt_kernel_channel {
int fd;
+ uint64_t key; /* Key to reference this channel with the consumer. */
int enabled;
unsigned int stream_count;
unsigned int event_count;
/* Metadata */
struct ltt_kernel_metadata {
int fd;
+ uint64_t key; /* Key to reference this channel with the consumer. */
struct lttng_channel *conf;
};
struct ltt_kernel_session *trace_kernel_create_session(void);
struct ltt_kernel_channel *trace_kernel_create_channel(
struct lttng_channel *chan);
-struct ltt_kernel_event *trace_kernel_create_event(struct lttng_event *ev,
- char *filter_expression, struct lttng_filter_bytecode *filter);
+enum lttng_error_code trace_kernel_create_event(struct lttng_event *ev,
+ char *filter_expression, struct lttng_filter_bytecode *filter,
+ struct ltt_kernel_event **kernel_event);
struct ltt_kernel_metadata *trace_kernel_create_metadata(void);
struct ltt_kernel_stream *trace_kernel_create_stream(const char *name,
unsigned int count);
struct ltt_kernel_context *trace_kernel_create_context(
struct lttng_kernel_context *ctx);
+struct ltt_kernel_context *trace_kernel_copy_context(
+ struct ltt_kernel_context *ctx);
/*
* Destroy functions free() the data structure and remove from linked list if