X-Git-Url: https://git.lttng.org/?a=blobdiff_plain;f=src%2Flttng-ring-buffer-metadata-client.h;h=bd2ca4753b2e4c5b9f4f6a2d46bf375f500af536;hb=f5ffbd770ec2b9d1ac9b7059eb33a01432043bce;hp=bd6fb20015996c0a47d496f6918906a7b8a70bd7;hpb=f7d06400be7d046205c20277a03f3f31bf5b1703;p=lttng-modules.git diff --git a/src/lttng-ring-buffer-metadata-client.h b/src/lttng-ring-buffer-metadata-client.h index bd6fb200..bd2ca475 100644 --- a/src/lttng-ring-buffer-metadata-client.h +++ b/src/lttng-ring-buffer-metadata-client.h @@ -34,17 +34,17 @@ struct metadata_record_header { uint8_t header_end[0]; /* End of header */ }; -static const struct lib_ring_buffer_config client_config; +static const struct lttng_kernel_ring_buffer_config client_config; static inline -u64 lib_ring_buffer_clock_read(struct channel *chan) +u64 lib_ring_buffer_clock_read(struct lttng_kernel_ring_buffer_channel *chan) { return 0; } static inline -size_t record_header_size(const struct lib_ring_buffer_config *config, - struct channel *chan, size_t offset, +size_t record_header_size(const struct lttng_kernel_ring_buffer_config *config, + struct lttng_kernel_ring_buffer_channel *chan, size_t offset, size_t *pre_header_padding, struct lttng_kernel_ring_buffer_ctx *ctx, void *client_ctx) @@ -54,14 +54,14 @@ size_t record_header_size(const struct lib_ring_buffer_config *config, #include -static u64 client_ring_buffer_clock_read(struct channel *chan) +static u64 client_ring_buffer_clock_read(struct lttng_kernel_ring_buffer_channel *chan) { return 0; } static -size_t client_record_header_size(const struct lib_ring_buffer_config *config, - struct channel *chan, size_t offset, +size_t client_record_header_size(const struct lttng_kernel_ring_buffer_config *config, + struct lttng_kernel_ring_buffer_channel *chan, size_t offset, size_t *pre_header_padding, struct lttng_kernel_ring_buffer_ctx *ctx, void *client_ctx) @@ -81,10 +81,10 @@ static size_t client_packet_header_size(void) return offsetof(struct metadata_packet_header, header_end); } -static void client_buffer_begin(struct lib_ring_buffer *buf, u64 tsc, +static void client_buffer_begin(struct lttng_kernel_ring_buffer *buf, u64 tsc, unsigned int subbuf_idx) { - struct channel *chan = buf->backend.chan; + struct lttng_kernel_ring_buffer_channel *chan = buf->backend.chan; struct metadata_packet_header *header = (struct metadata_packet_header *) lib_ring_buffer_offset_address(&buf->backend, @@ -109,10 +109,10 @@ static void client_buffer_begin(struct lib_ring_buffer *buf, u64 tsc, * offset is assumed to never be 0 here : never deliver a completely empty * subbuffer. data_size is between 1 and subbuf_size. */ -static void client_buffer_end(struct lib_ring_buffer *buf, u64 tsc, +static void client_buffer_end(struct lttng_kernel_ring_buffer *buf, u64 tsc, unsigned int subbuf_idx, unsigned long data_size) { - struct channel *chan = buf->backend.chan; + struct lttng_kernel_ring_buffer_channel *chan = buf->backend.chan; struct metadata_packet_header *header = (struct metadata_packet_header *) lib_ring_buffer_offset_address(&buf->backend, @@ -131,80 +131,80 @@ static void client_buffer_end(struct lib_ring_buffer *buf, u64 tsc, WARN_ON_ONCE(records_lost != 0); } -static int client_buffer_create(struct lib_ring_buffer *buf, void *priv, +static int client_buffer_create(struct lttng_kernel_ring_buffer *buf, void *priv, int cpu, const char *name) { return 0; } -static void client_buffer_finalize(struct lib_ring_buffer *buf, void *priv, int cpu) +static void client_buffer_finalize(struct lttng_kernel_ring_buffer *buf, void *priv, int cpu) { } -static int client_timestamp_begin(const struct lib_ring_buffer_config *config, - struct lib_ring_buffer *buf, uint64_t *timestamp_begin) +static int client_timestamp_begin(const struct lttng_kernel_ring_buffer_config *config, + struct lttng_kernel_ring_buffer *buf, uint64_t *timestamp_begin) { return -ENOSYS; } -static int client_timestamp_end(const struct lib_ring_buffer_config *config, - struct lib_ring_buffer *bufb, +static int client_timestamp_end(const struct lttng_kernel_ring_buffer_config *config, + struct lttng_kernel_ring_buffer *bufb, uint64_t *timestamp_end) { return -ENOSYS; } -static int client_events_discarded(const struct lib_ring_buffer_config *config, - struct lib_ring_buffer *bufb, +static int client_events_discarded(const struct lttng_kernel_ring_buffer_config *config, + struct lttng_kernel_ring_buffer *bufb, uint64_t *events_discarded) { return -ENOSYS; } -static int client_current_timestamp(const struct lib_ring_buffer_config *config, - struct lib_ring_buffer *bufb, +static int client_current_timestamp(const struct lttng_kernel_ring_buffer_config *config, + struct lttng_kernel_ring_buffer *bufb, uint64_t *ts) { return -ENOSYS; } -static int client_content_size(const struct lib_ring_buffer_config *config, - struct lib_ring_buffer *bufb, +static int client_content_size(const struct lttng_kernel_ring_buffer_config *config, + struct lttng_kernel_ring_buffer *bufb, uint64_t *content_size) { return -ENOSYS; } -static int client_packet_size(const struct lib_ring_buffer_config *config, - struct lib_ring_buffer *bufb, +static int client_packet_size(const struct lttng_kernel_ring_buffer_config *config, + struct lttng_kernel_ring_buffer *bufb, uint64_t *packet_size) { return -ENOSYS; } -static int client_stream_id(const struct lib_ring_buffer_config *config, - struct lib_ring_buffer *bufb, +static int client_stream_id(const struct lttng_kernel_ring_buffer_config *config, + struct lttng_kernel_ring_buffer *bufb, uint64_t *stream_id) { return -ENOSYS; } -static int client_sequence_number(const struct lib_ring_buffer_config *config, - struct lib_ring_buffer *bufb, +static int client_sequence_number(const struct lttng_kernel_ring_buffer_config *config, + struct lttng_kernel_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, +int client_instance_id(const struct lttng_kernel_ring_buffer_config *config, + struct lttng_kernel_ring_buffer *bufb, uint64_t *id) { return -ENOSYS; } -static const struct lib_ring_buffer_config client_config = { +static const struct lttng_kernel_ring_buffer_config client_config = { .cb.ring_buffer_clock_read = client_ring_buffer_clock_read, .cb.record_header_size = client_record_header_size, .cb.subbuffer_header_size = client_packet_header_size, @@ -231,20 +231,20 @@ void release_priv_ops(void *priv_ops) } static -void lttng_channel_destroy(struct channel *chan) +void lttng_channel_destroy(struct lttng_kernel_ring_buffer_channel *chan) { channel_destroy(chan); } static -struct channel *_channel_create(const char *name, +struct lttng_kernel_ring_buffer_channel *_channel_create(const char *name, void *priv, void *buf_addr, size_t subbuf_size, size_t num_subbuf, unsigned int switch_timer_interval, unsigned int read_timer_interval) { struct lttng_kernel_channel_buffer *lttng_chan = priv; - struct channel *chan; + struct lttng_kernel_ring_buffer_channel *chan; chan = channel_create(&client_config, name, lttng_chan->parent.session->priv->metadata_cache, buf_addr, @@ -270,9 +270,9 @@ error: } static -struct lib_ring_buffer *lttng_buffer_read_open(struct channel *chan) +struct lttng_kernel_ring_buffer *lttng_buffer_read_open(struct lttng_kernel_ring_buffer_channel *chan) { - struct lib_ring_buffer *buf; + struct lttng_kernel_ring_buffer *buf; buf = channel_get_ring_buffer(&client_config, chan, 0); if (!lib_ring_buffer_open_read(buf)) @@ -281,9 +281,9 @@ struct lib_ring_buffer *lttng_buffer_read_open(struct channel *chan) } static -int lttng_buffer_has_read_closed_stream(struct channel *chan) +int lttng_buffer_has_read_closed_stream(struct lttng_kernel_ring_buffer_channel *chan) { - struct lib_ring_buffer *buf; + struct lttng_kernel_ring_buffer *buf; int cpu; for_each_channel_cpu(cpu, chan) { @@ -295,7 +295,7 @@ int lttng_buffer_has_read_closed_stream(struct channel *chan) } static -void lttng_buffer_read_close(struct lib_ring_buffer *buf) +void lttng_buffer_read_close(struct lttng_kernel_ring_buffer *buf) { lib_ring_buffer_release_read(buf); } @@ -303,7 +303,7 @@ void lttng_buffer_read_close(struct lib_ring_buffer *buf) static int lttng_event_reserve(struct lttng_kernel_ring_buffer_ctx *ctx) { - struct channel *chan = ctx->client_priv; + struct lttng_kernel_ring_buffer_channel *chan = ctx->client_priv; int ret; memset(&ctx->priv, 0, sizeof(ctx->priv)); @@ -326,15 +326,17 @@ void lttng_event_commit(struct lttng_kernel_ring_buffer_ctx *ctx) static void lttng_event_write(struct lttng_kernel_ring_buffer_ctx *ctx, const void *src, - size_t len) + size_t len, size_t alignment) { + lib_ring_buffer_align_ctx(ctx, alignment); lib_ring_buffer_write(&client_config, ctx, src, len); } static void lttng_event_write_from_user(struct lttng_kernel_ring_buffer_ctx *ctx, - const void __user *src, size_t len) + const void __user *src, size_t len, size_t alignment) { + lib_ring_buffer_align_ctx(ctx, alignment); lib_ring_buffer_copy_from_user_inatomic(&client_config, ctx, src, len); } @@ -353,10 +355,10 @@ void lttng_event_strcpy(struct lttng_kernel_ring_buffer_ctx *ctx, const char *sr } static -size_t lttng_packet_avail_size(struct channel *chan) +size_t lttng_packet_avail_size(struct lttng_kernel_ring_buffer_channel *chan) { unsigned long o_begin; - struct lib_ring_buffer *buf; + struct lttng_kernel_ring_buffer *buf; buf = chan->backend.buf; /* Only for global buffer ! */ o_begin = v_read(&client_config, &buf->offset); @@ -369,27 +371,27 @@ size_t lttng_packet_avail_size(struct channel *chan) } static -wait_queue_head_t *lttng_get_writer_buf_wait_queue(struct channel *chan, int cpu) +wait_queue_head_t *lttng_get_writer_buf_wait_queue(struct lttng_kernel_ring_buffer_channel *chan, int cpu) { - struct lib_ring_buffer *buf = channel_get_ring_buffer(&client_config, + struct lttng_kernel_ring_buffer *buf = channel_get_ring_buffer(&client_config, chan, cpu); return &buf->write_wait; } static -wait_queue_head_t *lttng_get_hp_wait_queue(struct channel *chan) +wait_queue_head_t *lttng_get_hp_wait_queue(struct lttng_kernel_ring_buffer_channel *chan) { return &chan->hp_wait; } static -int lttng_is_finalized(struct channel *chan) +int lttng_is_finalized(struct lttng_kernel_ring_buffer_channel *chan) { return lib_ring_buffer_channel_is_finalized(chan); } static -int lttng_is_disabled(struct channel *chan) +int lttng_is_disabled(struct lttng_kernel_ring_buffer_channel *chan) { return lib_ring_buffer_channel_is_disabled(chan); }