#include <common/defaults.h>
#include "consumer.h"
+#include "tracker.h"
/* Kernel event list */
struct ltt_kernel_event_list {
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;
/* Session pointer which has a reference to this object. */
struct ltt_kernel_session *session;
+ bool sent_to_consumer;
};
/* Metadata */
int fd;
int state;
int cpu;
+ bool sent_to_consumer;
/* Format is %s_%d respectively channel name and CPU number. */
char name[DEFAULT_STREAM_NAME_LEN];
uint64_t tracefile_size;
/* UID/GID of the user owning the session */
uid_t uid;
gid_t gid;
- /*
- * Two consumer_output object are needed where one is needed for the
- * current output object and the second one is the temporary object used to
- * store URI being set by the lttng_set_consumer_uri call. Once
- * lttng_enable_consumer is called, the two pointers are swapped.
- */
struct consumer_output *consumer;
- struct consumer_output *tmp_consumer;
/* Tracing session id */
uint64_t id;
/* Session is active or not meaning it has been started or stopped. */
unsigned int output_traces;
unsigned int snapshot_mode;
unsigned int has_non_default_channel;
+ struct lttng_tracker_list *tracker_list_pid;
+ struct lttng_tracker_list *tracker_list_vpid;
+ struct lttng_tracker_list *tracker_list_uid;
+ struct lttng_tracker_list *tracker_list_vuid;
+ struct lttng_tracker_list *tracker_list_gid;
+ struct lttng_tracker_list *tracker_list_vgid;
+ bool is_live_session;
};
/*
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