struct lttng_kernel_type_struct {
struct lttng_kernel_type_common parent;
unsigned int nr_fields;
- const struct lttng_kernel_event_field **fields; /* Array of pointers to fields. */
+ const struct lttng_kernel_event_field * const *fields; /* Array of pointers to fields. */
unsigned int alignment;
};
struct lttng_kernel_type_variant {
struct lttng_kernel_type_common parent;
const char *tag_name; /* Tag field name. If NULL, use previous field. */
- const struct lttng_kernel_event_field **choices; /* Array of pointers to fields. */
+ const struct lttng_kernel_event_field * const *choices; /* Array of pointers to fields. */
unsigned int nr_choices;
unsigned int alignment;
};
struct lttng_kernel_enum_desc {
const char *name;
- const struct lttng_kernel_enum_entry **entries;
+ const struct lttng_kernel_enum_entry * const *entries;
unsigned int nr_entries;
const struct lttng_kernel_probe_desc *probe_desc;
};
struct lttng_kernel_tracepoint_class {
void (*probe_callback)(void);
- const struct lttng_kernel_event_field **fields; /* event payload */
+ const struct lttng_kernel_event_field * const *fields; /* event payload */
unsigned int nr_fields;
const struct lttng_kernel_probe_desc *probe_desc;
};
struct lttng_kernel_probe_desc {
const char *provider_name;
- const struct lttng_kernel_event_desc **event_desc;
+ const struct lttng_kernel_event_desc * const *event_desc;
unsigned int nr_events;
struct list_head head; /* chain registered probes */
struct list_head lazy_init_head;
int (*event_reserve)(struct lttng_kernel_ring_buffer_ctx *ctx);
void (*event_commit)(struct lttng_kernel_ring_buffer_ctx *ctx);
void (*event_write)(struct lttng_kernel_ring_buffer_ctx *ctx, const void *src,
- size_t len);
+ size_t len, size_t alignment);
void (*event_write_from_user)(struct lttng_kernel_ring_buffer_ctx *ctx,
- const void *src, size_t len);
+ const void *src, size_t len, size_t alignment);
void (*event_memset)(struct lttng_kernel_ring_buffer_ctx *ctx,
int c, size_t len);
void (*event_strcpy)(struct lttng_kernel_ring_buffer_ctx *ctx, const char *src,
size_t len);
void (*event_strcpy_from_user)(struct lttng_kernel_ring_buffer_ctx *ctx,
const char __user *src, size_t len);
+ void (*event_pstrcpy_pad)(struct lttng_kernel_ring_buffer_ctx *ctx,
+ const char *src, size_t len);
+ void (*event_pstrcpy_pad_from_user)(struct lttng_kernel_ring_buffer_ctx *ctx,
+ const char __user *src, size_t len);
void (*lost_event_too_big)(struct lttng_kernel_channel_buffer *lttng_channel);
};