X-Git-Url: https://git.lttng.org/?a=blobdiff_plain;f=ltt-sessiond%2Ftrace.h;h=2f80143fe8042ec8d22b5c97b1c80a325e10dc92;hb=8c0faa1d8372c06087498985643ec9d2619d785b;hp=36b2f2270eef69bedd70aa570027da7f61660f22;hpb=d4a2a84a5533017c9d0aa9fe66e7677a6b36b521;p=lttng-tools.git diff --git a/ltt-sessiond/trace.h b/ltt-sessiond/trace.h index 36b2f2270..2f80143fe 100644 --- a/ltt-sessiond/trace.h +++ b/ltt-sessiond/trace.h @@ -19,18 +19,72 @@ #ifndef _LTT_TRACE_H #define _LTT_TRACE_H +#include "ltt-sessiond.h" #include "session.h" +#include "lttng-kernel.h" -/* LTTng trace representation */ -struct ltt_lttng_trace { +/* 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; + 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_kernel_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_kernel_channel *conf; +}; + +/* Channel stream */ +struct ltt_kernel_stream { + int fd; + char *pathname; + int state; struct cds_list_head list; - char trace_name[NAME_MAX]; - struct cds_list_head marker_list; +}; + +/* Kernel session */ +struct ltt_kernel_session { + int fd; + int metadata_stream_fd; + unsigned int channel_count; + unsigned int stream_count_global; + struct ltt_kernel_metadata *metadata; + struct ltt_kernel_channel_list channel_list; }; /* UST trace representation */ struct ltt_ust_trace { struct cds_list_head list; + char name[NAME_MAX]; int shmid; pid_t pid; struct cds_list_head markers; @@ -42,6 +96,10 @@ 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); +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); #endif /* _LTT_TRACE_H */