#ifndef _LTT_TRACE_H
#define _LTT_TRACE_H
+#include "ltt-sessiond.h"
#include "session.h"
+#include "lttng-kernel.h"
-/* LTTng trace representation */
-struct ltt_kernel_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;
- char name[NAME_MAX];
- struct cds_list_head marker_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;
+};
+
+/* 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 */
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 */