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);
}
len, '#');
}
+static
+void lttng_event_pstrcpy_pad(struct lttng_kernel_ring_buffer_ctx *ctx, const char *src,
+ size_t len)
+{
+ lib_ring_buffer_pstrcpy(&client_config, ctx, src, len, '\0');
+}
+
+static
+void lttng_event_pstrcpy_pad_from_user(struct lttng_kernel_ring_buffer_ctx *ctx, const char __user *src,
+ size_t len)
+{
+ lib_ring_buffer_pstrcpy_from_user_inatomic(&client_config, ctx, src, len, '\0');
+}
+
static
void lttng_channel_buffer_lost_event_too_big(struct lttng_kernel_channel_buffer *lttng_chan)
{
.event_memset = lttng_event_memset,
.event_strcpy = lttng_event_strcpy,
.event_strcpy_from_user = lttng_event_strcpy_from_user,
+ .event_pstrcpy_pad = lttng_event_pstrcpy_pad,
+ .event_pstrcpy_pad_from_user = lttng_event_pstrcpy_pad_from_user,
.lost_event_too_big = lttng_channel_buffer_lost_event_too_big,
},
};