X-Git-Url: https://git.lttng.org/?p=lttng-tools.git;a=blobdiff_plain;f=ltt-sessiond%2Ftrace.h;h=488fd757d3dfabf4d06a894ad2375876f6857cf6;hp=36b2f2270eef69bedd70aa570027da7f61660f22;hb=540126381ff8f3b1e2b3357329fe105fc0bb5e4c;hpb=d4a2a84a5533017c9d0aa9fe66e7677a6b36b521 diff --git a/ltt-sessiond/trace.h b/ltt-sessiond/trace.h index 36b2f2270..488fd757d 100644 --- a/ltt-sessiond/trace.h +++ b/ltt-sessiond/trace.h @@ -19,18 +19,79 @@ #ifndef _LTT_TRACE_H #define _LTT_TRACE_H -#include "session.h" +#include +#include +#include "lttng-kernel.h" -/* LTTng trace representation */ -struct ltt_lttng_trace { +/* Default kernel channel attributes */ +#define DEFAULT_KERNEL_OVERWRITE 0 +#define DEFAULT_KERNEL_SUBBUF_SIZE 4096 /* bytes */ +#define DEFAULT_KERNEL_SUBBUF_NUM 8 /* Must always be a power of 2 */ +#define DEFAULT_KERNEL_SWITCH_TIMER 0 /* usec */ +#define DEFAULT_KERNEL_READ_TIMER 200 /* usec */ + +/* 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 +103,24 @@ struct ltt_ust_marker { char *channel; }; -struct ltt_ust_trace *find_session_ust_trace_by_pid(struct ltt_session *session, pid_t pid); +/* + * Function prototype + */ + +/* Kernel session */ +struct ltt_kernel_session *trace_create_kernel_session(void); + +/* Kernel channel */ +struct ltt_kernel_channel *trace_create_kernel_channel(void); + +/* Kernel event */ +struct ltt_kernel_event *trace_create_kernel_event(char *name, + enum lttng_kernel_instrumentation type); + +/* Kernel metadata */ +struct ltt_kernel_metadata *trace_create_kernel_metadata(void); + +/* Kernel stream */ +struct ltt_kernel_stream *trace_create_kernel_stream(void); #endif /* _LTT_TRACE_H */