X-Git-Url: http://git.liburcu.org/?a=blobdiff_plain;f=lttng-ring-buffer-metadata-client.h;h=b2c0c82147999d2c09042431cf65ba9313802965;hb=7b510611fd1903e97b88dfc9c70b5011eb4ae3c3;hp=f077f4f6c523b56f2c20337a893afa25827037eb;hpb=16f78f3ad7dea4a0b442b8c7e0de01935f28e656;p=lttng-modules.git diff --git a/lttng-ring-buffer-metadata-client.h b/lttng-ring-buffer-metadata-client.h index f077f4f6..b2c0c821 100644 --- a/lttng-ring-buffer-metadata-client.h +++ b/lttng-ring-buffer-metadata-client.h @@ -22,9 +22,9 @@ #include #include -#include "wrapper/vmalloc.h" /* for wrapper_vmalloc_sync_all() */ -#include "lttng-events.h" -#include "lttng-tracer.h" +#include /* for wrapper_vmalloc_sync_all() */ +#include +#include static struct lttng_transport lttng_relay_transport; @@ -55,7 +55,7 @@ u64 lib_ring_buffer_clock_read(struct channel *chan) } static inline -unsigned char record_header_size(const struct lib_ring_buffer_config *config, +size_t record_header_size(const struct lib_ring_buffer_config *config, struct channel *chan, size_t offset, size_t *pre_header_padding, struct lib_ring_buffer_ctx *ctx) @@ -63,7 +63,7 @@ unsigned char record_header_size(const struct lib_ring_buffer_config *config, return 0; } -#include "wrapper/ringbuffer/api.h" +#include static u64 client_ring_buffer_clock_read(struct channel *chan) { @@ -99,11 +99,12 @@ static void client_buffer_begin(struct lib_ring_buffer *buf, u64 tsc, (struct metadata_packet_header *) lib_ring_buffer_offset_address(&buf->backend, subbuf_idx * chan->backend.subbuf_size); - struct lttng_channel *lttng_chan = channel_get_private(chan); - struct lttng_session *session = lttng_chan->session; + struct lttng_metadata_cache *metadata_cache = + channel_get_private(chan); header->magic = TSDL_MAGIC_NUMBER; - memcpy(header->uuid, session->uuid.b, sizeof(session->uuid)); + memcpy(header->uuid, metadata_cache->uuid.b, + sizeof(metadata_cache->uuid)); header->checksum = 0; /* 0 if unused */ header->content_size = 0xFFFFFFFF; /* in bits, for debugging */ header->packet_size = 0xFFFFFFFF; /* in bits, for debugging */ @@ -198,6 +199,21 @@ static int client_stream_id(const struct lib_ring_buffer_config *config, return -ENOSYS; } +static int client_sequence_number(const struct lib_ring_buffer_config *config, + struct lib_ring_buffer *bufb, + uint64_t *seq) +{ + return -ENOSYS; +} + +static +int client_instance_id(const struct lib_ring_buffer_config *config, + struct lib_ring_buffer *bufb, + uint64_t *id) +{ + return -ENOSYS; +} + static const struct lib_ring_buffer_config client_config = { .cb.ring_buffer_clock_read = client_ring_buffer_clock_read, .cb.record_header_size = client_record_header_size, @@ -239,7 +255,8 @@ struct channel *_channel_create(const char *name, { struct channel *chan; - chan = channel_create(&client_config, name, lttng_chan, buf_addr, + chan = channel_create(&client_config, name, + lttng_chan->session->metadata_cache, buf_addr, subbuf_size, num_subbuf, switch_timer_interval, read_timer_interval); if (chan) { @@ -295,7 +312,15 @@ void lttng_buffer_read_close(struct lib_ring_buffer *buf) static int lttng_event_reserve(struct lib_ring_buffer_ctx *ctx, uint32_t event_id) { - return lib_ring_buffer_reserve(&client_config, ctx); + int ret; + + ret = lib_ring_buffer_reserve(&client_config, ctx); + if (ret) + return ret; + lib_ring_buffer_backend_get_pages(&client_config, ctx, + &ctx->backend_pages); + return 0; + } static @@ -403,6 +428,8 @@ static struct lttng_transport lttng_relay_transport = { .packet_size = client_packet_size, .stream_id = client_stream_id, .current_timestamp = client_current_timestamp, + .sequence_number = client_sequence_number, + .instance_id = client_instance_id, }, };