X-Git-Url: https://git.lttng.org/?p=lttng-tools.git;a=blobdiff_plain;f=ltt-sessiond%2Ftrace.h;h=8da147230e22a928ec89b7b33f37c9a84d02cc8c;hp=755f8dfdf89bf5a954ddcbc2b34b4b931bf5d136;hb=e953ef25cbc11fb112aa2e23bf2d44867fe585ed;hpb=1657e9bb835a28e66396deac871270fe373d5ff4 diff --git a/ltt-sessiond/trace.h b/ltt-sessiond/trace.h index 755f8dfdf..8da147230 100644 --- a/ltt-sessiond/trace.h +++ b/ltt-sessiond/trace.h @@ -19,13 +19,71 @@ #ifndef _LTT_TRACE_H #define _LTT_TRACE_H -#include "session.h" +#include +#include -/* LTTng trace representation */ -struct ltt_kernel_trace { +#include + +#include "lttng-kernel.h" + +/* Kernel event list */ +struct ltt_kernel_event_list { + struct cds_list_head head; +}; + +/* Channel stream list */ +struct ltt_kernel_stream_list { + struct cds_list_head head; +}; + +/* Channel list */ +struct ltt_kernel_channel_list { + struct cds_list_head head; +}; + +/* Kernel event */ +struct ltt_kernel_event { + int fd; + int enabled; + struct lttng_kernel_event *event; + struct cds_list_head list; +}; + +/* Kernel channel */ +struct ltt_kernel_channel { + int fd; + char *pathname; + unsigned int stream_count; + struct lttng_channel *channel; + struct ltt_kernel_event_list events_list; + struct ltt_kernel_stream_list stream_list; struct cds_list_head list; - char name[NAME_MAX]; - struct cds_list_head marker_list; +}; + +/* Metadata */ +struct ltt_kernel_metadata { + int fd; + char *pathname; + struct lttng_channel *conf; +}; + +/* Channel stream */ +struct ltt_kernel_stream { + int fd; + char *pathname; + int state; + struct cds_list_head list; +}; + +/* Kernel session */ +struct ltt_kernel_session { + int fd; + int metadata_stream_fd; + int kconsumer_fds_sent; + unsigned int channel_count; + unsigned int stream_count_global; + struct ltt_kernel_metadata *metadata; + struct ltt_kernel_channel_list channel_list; }; /* UST trace representation */ @@ -43,8 +101,23 @@ struct ltt_ust_marker { char *channel; }; -struct ltt_ust_trace *find_session_ust_trace_by_pid(struct ltt_session *session, pid_t pid); -int get_trace_count_per_session(struct ltt_session *session); -void get_traces_per_session(struct ltt_session *session, struct lttng_trace *traces); +/* + * Create functions malloc() the data structure. + */ +struct ltt_kernel_session *trace_create_kernel_session(void); +struct ltt_kernel_channel *trace_create_kernel_channel(struct lttng_channel *chan); +struct ltt_kernel_event *trace_create_kernel_event(struct lttng_event *ev); +struct ltt_kernel_metadata *trace_create_kernel_metadata(void); +struct ltt_kernel_stream *trace_create_kernel_stream(void); + +/* + * Destroy functions free() the data structure and remove from linked list if + * it's applies. + */ +void trace_destroy_kernel_session(struct ltt_kernel_session *session); +void trace_destroy_kernel_metadata(struct ltt_kernel_metadata *metadata); +void trace_destroy_kernel_channel(struct ltt_kernel_channel *channel); +void trace_destroy_kernel_event(struct ltt_kernel_event *event); +void trace_destroy_kernel_stream(struct ltt_kernel_stream *stream); #endif /* _LTT_TRACE_H */