X-Git-Url: https://git.lttng.org/?p=lttng-tools.git;a=blobdiff_plain;f=ltt-sessiond%2Ftrace.h;h=ac070908ae0cc15867d72067e2bcb92a216866f1;hp=5b4ff68ff3a0c2718d90c5f5c8f377551e81e052;hb=050349bbb362ea993533591532643022efeab864;hpb=f34daff7d0139d162e949f1b4fbb4cd003746b15 diff --git a/ltt-sessiond/trace.h b/ltt-sessiond/trace.h index 5b4ff68ff..ac070908a 100644 --- a/ltt-sessiond/trace.h +++ b/ltt-sessiond/trace.h @@ -3,8 +3,8 @@ * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. + * as published by the Free Software Foundation; only version 2 + * of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -19,8 +19,11 @@ #ifndef _LTT_TRACE_H #define _LTT_TRACE_H -#include "ltt-sessiond.h" -#include "session.h" +#include +#include + +#include + #include "lttng-kernel.h" /* Kernel event list */ @@ -28,9 +31,21 @@ 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_context *ctx; struct lttng_kernel_event *event; struct cds_list_head list; }; @@ -38,14 +53,43 @@ struct ltt_kernel_event { /* Kernel channel */ struct ltt_kernel_channel { int fd; - struct lttng_kernel_channel *channel; + int enabled; + char *pathname; + unsigned int stream_count; + unsigned int event_count; + struct lttng_kernel_context *ctx; + struct lttng_channel *channel; struct ltt_kernel_event_list events_list; + struct ltt_kernel_stream_list stream_list; + struct cds_list_head 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; - struct ltt_kernel_channel *channel; + int metadata_stream_fd; + int kconsumer_fds_sent; + int consumer_fd; + unsigned int channel_count; + unsigned int stream_count_global; + char *trace_path; + struct ltt_kernel_metadata *metadata; + struct ltt_kernel_channel_list channel_list; }; /* UST trace representation */ @@ -63,10 +107,28 @@ struct ltt_ust_marker { char *channel; }; -int get_trace_count_per_session(struct ltt_session *session); -void get_traces_per_session(struct ltt_session *session, struct lttng_trace *traces); -int ust_create_trace(struct command_ctx *cmd_ctx); -int ust_start_trace(struct command_ctx *cmd_ctx); -int ust_stop_trace(struct command_ctx *cmd_ctx); +struct ltt_kernel_event *get_kernel_event_by_name( + char *name, struct ltt_kernel_channel *channel); +struct ltt_kernel_channel *get_kernel_channel_by_name( + char *name, struct ltt_kernel_session *session); + +/* + * 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, char *path); +struct ltt_kernel_event *trace_create_kernel_event(struct lttng_event *ev); +struct ltt_kernel_metadata *trace_create_kernel_metadata(char *path); +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 */