*/
#include <linux/list.h>
+#include <linux/uuid.h>
#include "ltt-debugfs-abi.h"
struct ltt_channel;
.u.basic.integer = \
{ \
.size = sizeof(_type), \
- .alignment = __alignof__(_type), \
+ .alignment = ltt_alignof(_type) * CHAR_BIT, \
.signedness = is_signed_type(_type), \
.reverse_byte_order = _byte_order != __BYTE_ORDER, \
}, \
struct ltt_channel_ops {
struct channel *(*channel_create)(const char *name,
- struct ltt_session *session,
+ struct ltt_channel *ltt_chan,
void *buf_addr,
size_t subbuf_size, size_t num_subbuf,
unsigned int switch_timer_interval,
void (*event_commit)(struct lib_ring_buffer_ctx *ctx);
void (*event_write)(struct lib_ring_buffer_ctx *ctx, const void *src,
size_t len);
+ /*
+ * packet_avail_size returns the available size in the current
+ * packet. Note that the size returned is only a hint, since it
+ * may change due to concurrent writes.
+ */
+ size_t (*packet_avail_size)(struct channel *chan);
wait_queue_head_t *(*get_reader_wait_queue)(struct ltt_channel *chan);
};
struct list_head list; /* Channel list */
wait_queue_head_t notify_wait; /* Channel addition notif. waitqueue */
struct ltt_channel_ops *ops;
+ int header_type; /* 0: unset, 1: compact, 2: large */
int metadata_dumped:1;
- int header_type:2; /* 0: unset, 1: compact, 2: large */
};
struct ltt_session {
struct list_head events; /* Event list head */
struct list_head list; /* Session list */
unsigned int free_chan_id; /* Next chan ID to allocate */
+ uuid_le uuid; /* Trace session unique ID */
int metadata_dumped:1;
};
enum instrum_type itype,
const struct lttng_event_desc *event_desc,
void *filter);
-int _ltt_event_unregister(struct ltt_event *event);
-void _ltt_event_destroy(struct ltt_event *event);
+int ltt_event_unregister(struct ltt_event *event);
void ltt_transport_register(struct ltt_transport *transport);
void ltt_transport_unregister(struct ltt_transport *transport);