X-Git-Url: https://git.lttng.org/?a=blobdiff_plain;f=src%2Flttng-ring-buffer-event-notifier-client.h;h=ccd3a0206f12d1a6c56437302b21de17f350bc2b;hb=f5ffbd770ec2b9d1ac9b7059eb33a01432043bce;hp=be083350da8d9a893d48ee5501337f0ca52172bf;hpb=860c213b645593fa19d7a3abf7ffdd1282f0a1c6;p=lttng-modules.git diff --git a/src/lttng-ring-buffer-event-notifier-client.h b/src/lttng-ring-buffer-event-notifier-client.h index be083350..ccd3a020 100644 --- a/src/lttng-ring-buffer-event-notifier-client.h +++ b/src/lttng-ring-buffer-event-notifier-client.h @@ -28,7 +28,7 @@ struct event_notifier_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 lttng_kernel_ring_buffer_channel *chan) @@ -37,7 +37,7 @@ u64 lib_ring_buffer_clock_read(struct lttng_kernel_ring_buffer_channel *chan) } static inline -size_t record_header_size(const struct lib_ring_buffer_config *config, +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, @@ -64,7 +64,7 @@ static u64 client_ring_buffer_clock_read(struct lttng_kernel_ring_buffer_channel } static -size_t client_record_header_size(const struct lib_ring_buffer_config *config, +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, @@ -86,7 +86,7 @@ static size_t client_packet_header_size(void) return offsetof(struct event_notifier_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) { } @@ -95,86 +95,86 @@ 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) { } -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 void client_record_get(const struct lib_ring_buffer_config *config, - struct lttng_kernel_ring_buffer_channel *chan, struct lib_ring_buffer *buf, +static void client_record_get(const struct lttng_kernel_ring_buffer_config *config, + struct lttng_kernel_ring_buffer_channel *chan, struct lttng_kernel_ring_buffer *buf, size_t offset, size_t *header_len, size_t *payload_len, u64 *timestamp) { @@ -189,7 +189,7 @@ static void client_record_get(const struct lib_ring_buffer_config *config, *timestamp = 0; } -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, @@ -256,9 +256,9 @@ error: } static -struct lib_ring_buffer *lttng_buffer_read_open(struct lttng_kernel_ring_buffer_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)) @@ -269,7 +269,7 @@ struct lib_ring_buffer *lttng_buffer_read_open(struct lttng_kernel_ring_buffer_c static 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) { @@ -281,13 +281,13 @@ int lttng_buffer_has_read_closed_stream(struct lttng_kernel_ring_buffer_channel } 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); } static -void lttng_write_event_notifier_header(const struct lib_ring_buffer_config *config, +void lttng_write_event_notifier_header(const struct lttng_kernel_ring_buffer_config *config, struct lttng_kernel_ring_buffer_ctx *ctx) { uint32_t data_size; @@ -328,15 +328,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); } @@ -358,7 +360,7 @@ static 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); @@ -373,7 +375,7 @@ size_t lttng_packet_avail_size(struct lttng_kernel_ring_buffer_channel *chan) static 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; }