struct lib_ring_buffer_ctx;
struct perf_event;
struct perf_event_attr;
+struct lib_ring_buffer_config;
/* Type description */
};
struct lttng_event_desc {
- const char *name;
+ const char *name; /* lttng-modules name */
+ const char *kname; /* Linux kernel name (tracepoints) */
void *probe_callback;
const struct lttng_event_ctx *ctx; /* context */
const struct lttng_event_field *fields; /* event payload */
wait_queue_head_t *(*get_hp_wait_queue)(struct channel *chan);
int (*is_finalized)(struct channel *chan);
int (*is_disabled)(struct channel *chan);
+ int (*timestamp_begin) (const struct lib_ring_buffer_config *config,
+ struct lib_ring_buffer *bufb,
+ uint64_t *timestamp_begin);
+ int (*timestamp_end) (const struct lib_ring_buffer_config *config,
+ struct lib_ring_buffer *bufb,
+ uint64_t *timestamp_end);
+ int (*events_discarded) (const struct lib_ring_buffer_config *config,
+ struct lib_ring_buffer *bufb,
+ uint64_t *events_discarded);
+ int (*content_size) (const struct lib_ring_buffer_config *config,
+ struct lib_ring_buffer *bufb,
+ uint64_t *content_size);
+ int (*packet_size) (const struct lib_ring_buffer_config *config,
+ struct lib_ring_buffer *bufb,
+ uint64_t *packet_size);
+ int (*stream_id) (const struct lib_ring_buffer_config *config,
+ struct lib_ring_buffer *bufb,
+ uint64_t *stream_id);
+ int (*current_timestamp) (const struct lib_ring_buffer_config *config,
+ struct lib_ring_buffer *bufb,
+ uint64_t *ts);
};
struct lttng_transport {
struct lttng_metadata_stream {
void *priv; /* Ring buffer private data */
struct lttng_metadata_cache *metadata_cache;
- unsigned int metadata_cache_read; /* Bytes read from the cache */
+ unsigned int metadata_in; /* Bytes read from the cache */
+ unsigned int metadata_out; /* Bytes consumed from stream */
int finalized; /* Has channel been finalized */
wait_queue_head_t read_wait; /* Reader buffer-level wait queue */
struct list_head list; /* Stream list */
+ struct lttng_transport *transport;
};
struct lttng_session {
int lttng_probes_init(void);
void lttng_probes_exit(void);
-int lttng_metadata_output_channel(struct lttng_channel *chan,
- struct lttng_metadata_stream *stream);
+int lttng_metadata_output_channel(struct lttng_metadata_stream *stream,
+ struct channel *chan);
#if defined(CONFIG_HAVE_SYSCALL_TRACEPOINTS)
int lttng_syscalls_register(struct lttng_channel *chan, void *filter);
}
#endif
+int lttng_logger_init(void);
+void lttng_logger_exit(void);
+
extern int lttng_statedump_start(struct lttng_session *session);
#ifdef CONFIG_KPROBES