/* Enumeration entry (single value) */
#undef ctf_enum_value
#define ctf_enum_value(_string, _value) \
- { \
+ __LTTNG_COMPOUND_LITERAL(struct lttng_ust_enum_entry, { \
+ .struct_size = sizeof(struct lttng_ust_enum_entry), \
.start = { \
.value = lttng_is_signed_type(__typeof__(_value)) ? \
(long long) (_value) : (_value), \
.signedness = lttng_is_signed_type(__typeof__(_value)), \
}, \
.string = (_string), \
- },
+ }),
/* Enumeration entry (range) */
#undef ctf_enum_range
#define ctf_enum_range(_string, _range_start, _range_end) \
- { \
+ __LTTNG_COMPOUND_LITERAL(struct lttng_ust_enum_entry, { \
+ .struct_size = sizeof(struct lttng_ust_enum_entry), \
.start = { \
.value = lttng_is_signed_type(__typeof__(_range_start)) ? \
(long long) (_range_start) : (_range_start), \
.signedness = lttng_is_signed_type(__typeof__(_range_end)), \
}, \
.string = (_string), \
- },
+ }),
/* Enumeration entry (automatic value; follows the rules of CTF) */
#undef ctf_enum_auto
-#define ctf_enum_auto(_string) \
- { \
+#define ctf_enum_auto(_string) \
+ __LTTNG_COMPOUND_LITERAL(struct lttng_ust_enum_entry, { \
+ .struct_size = sizeof(struct lttng_ust_enum_entry), \
.start = { \
.value = -1ULL, \
.signedness = 0, \
.signedness = 0, \
}, \
.string = (_string), \
- .u = { \
- .extra = { \
- .options = LTTNG_ENUM_ENTRY_OPTION_IS_AUTO, \
- }, \
- }, \
- },
+ .options = LTTNG_ENUM_ENTRY_OPTION_IS_AUTO, \
+ }),
#undef TP_ENUM_VALUES
#define TP_ENUM_VALUES(...) \
#undef TRACEPOINT_ENUM
#define TRACEPOINT_ENUM(_provider, _name, _values) \
- const struct lttng_enum_entry __enum_values__##_provider##_##_name[] = { \
+ const struct lttng_ust_enum_entry *__enum_values__##_provider##_##_name[] = { \
_values \
ctf_enum_value("", 0) /* Dummy, 0-len array forbidden by C99. */ \
};
#include <lttng/ust-tracepoint-event-nowrite.h>
#undef _ctf_integer_ext
-#define _ctf_integer_ext(_type, _item, _src, _byte_order, _base, _nowrite) \
- { \
- .name = #_item, \
- .type = __type_integer(_type, _byte_order, _base, none),\
- .nowrite = _nowrite, \
- .u = { \
- .ext = { \
- .nofilter = 0, \
- }, \
- }, \
- },
+#define _ctf_integer_ext(_type, _item, _src, _byte_order, _base, _nowrite) \
+ __LTTNG_COMPOUND_LITERAL(struct lttng_ust_event_field, { \
+ .struct_size = sizeof(struct lttng_ust_event_field), \
+ .name = #_item, \
+ .type = __type_integer(_type, _byte_order, _base, none), \
+ .nowrite = _nowrite, \
+ .nofilter = 0, \
+ }),
#undef _ctf_float
#define _ctf_float(_type, _item, _src, _nowrite) \
- { \
- .name = #_item, \
- .type = __type_float(_type), \
- .nowrite = _nowrite, \
- .u = { \
- .ext = { \
- .nofilter = 0, \
- }, \
- }, \
- },
+ __LTTNG_COMPOUND_LITERAL(struct lttng_ust_event_field, { \
+ .struct_size = sizeof(struct lttng_ust_event_field), \
+ .name = #_item, \
+ .type = __type_float(_type), \
+ .nowrite = _nowrite, \
+ .nofilter = 0, \
+ }),
#undef _ctf_array_encoded
#define _ctf_array_encoded(_type, _item, _src, _byte_order, \
_length, _encoding, _nowrite, \
_elem_type_base) \
- { \
- .name = #_item, \
- .type = \
- { \
- .atype = atype_array_nestable, \
- .u = \
- { \
- .array_nestable = \
- { \
- .elem_type = __LTTNG_COMPOUND_LITERAL(struct lttng_type, \
+ __LTTNG_COMPOUND_LITERAL(struct lttng_ust_event_field, { \
+ .struct_size = sizeof(struct lttng_ust_event_field), \
+ .name = #_item, \
+ .type = { \
+ .atype = atype_array_nestable, \
+ .u = { \
+ .array_nestable = { \
+ .elem_type = __LTTNG_COMPOUND_LITERAL(struct lttng_type, \
__type_integer(_type, _byte_order, _elem_type_base, _encoding)), \
- .length = _length, \
- .alignment = 0, \
+ .length = _length, \
+ .alignment = 0, \
} \
} \
}, \
- .nowrite = _nowrite, \
- .u = { \
- .ext = { \
- .nofilter = 0, \
- }, \
- }, \
- },
+ .nowrite = _nowrite, \
+ .nofilter = 0, \
+ }),
#undef _ctf_sequence_encoded
#define _ctf_sequence_encoded(_type, _item, _src, _byte_order, \
_length_type, _src_length, _encoding, _nowrite, \
_elem_type_base) \
- { \
- .name = "_" #_item "_length", \
- .type = __type_integer(_length_type, BYTE_ORDER, 10, none), \
- .nowrite = _nowrite, \
- .u = { \
- .ext = { \
- .nofilter = 1, \
- }, \
- }, \
- }, \
- { \
- .name = #_item, \
- .type = \
- { \
- .atype = atype_sequence_nestable, \
- .u = \
- { \
- .sequence_nestable = \
- { \
- .length_name = "_" #_item "_length", \
- .elem_type = __LTTNG_COMPOUND_LITERAL(struct lttng_type, \
- __type_integer(_type, _byte_order, _elem_type_base, _encoding)), \
- .alignment = 0, \
+ __LTTNG_COMPOUND_LITERAL(struct lttng_ust_event_field, { \
+ .struct_size = sizeof(struct lttng_ust_event_field), \
+ .name = "_" #_item "_length", \
+ .type = __type_integer(_length_type, BYTE_ORDER, 10, none), \
+ .nowrite = _nowrite, \
+ .nofilter = 1, \
+ }), \
+ __LTTNG_COMPOUND_LITERAL(struct lttng_ust_event_field, { \
+ .struct_size = sizeof(struct lttng_ust_event_field), \
+ .name = #_item, \
+ .type = { \
+ .atype = atype_sequence_nestable, \
+ .u = { \
+ .sequence_nestable = { \
+ .length_name = "_" #_item "_length", \
+ .elem_type = __LTTNG_COMPOUND_LITERAL(struct lttng_type, \
+ __type_integer(_type, _byte_order, _elem_type_base, _encoding)), \
+ .alignment = 0, \
}, \
}, \
}, \
- .nowrite = _nowrite, \
- .u = { \
- .ext = { \
- .nofilter = 0, \
- }, \
- }, \
- },
+ .nowrite = _nowrite, \
+ .nofilter = 0, \
+ }),
#undef _ctf_string
#define _ctf_string(_item, _src, _nowrite) \
- { \
- .name = #_item, \
- .type = \
- { \
- .atype = atype_string, \
- .u = \
- { \
- .string = { .encoding = lttng_encode_UTF8 } \
+ __LTTNG_COMPOUND_LITERAL(struct lttng_ust_event_field, { \
+ .struct_size = sizeof(struct lttng_ust_event_field), \
+ .name = #_item, \
+ .type = { \
+ .atype = atype_string, \
+ .u = { \
+ .string = { .encoding = lttng_encode_UTF8 } \
}, \
}, \
- .nowrite = _nowrite, \
- .u = { \
- .ext = { \
- .nofilter = 0, \
- }, \
- }, \
- },
+ .nowrite = _nowrite, \
+ .nofilter = 0, \
+ }),
#undef _ctf_enum
#define _ctf_enum(_provider, _name, _type, _item, _src, _nowrite) \
- { \
+ __LTTNG_COMPOUND_LITERAL(struct lttng_ust_event_field, { \
+ .struct_size = sizeof(struct lttng_ust_event_field), \
.name = #_item, \
.type = { \
.atype = atype_enum_nestable, \
}, \
}, \
.nowrite = _nowrite, \
- .u = { \
- .ext = { \
- .nofilter = 0, \
- }, \
- }, \
- },
+ .nofilter = 0, \
+ }),
#undef TP_FIELDS
#define TP_FIELDS(...) __VA_ARGS__ /* Only one used in this phase */
#undef _TRACEPOINT_EVENT_CLASS
#define _TRACEPOINT_EVENT_CLASS(_provider, _name, _args, _fields) \
- static const struct lttng_event_field __event_fields___##_provider##___##_name[] = { \
+ static const struct lttng_ust_event_field *__event_fields___##_provider##___##_name[] = { \
_fields \
ctf_integer(int, dummy, 0) /* Dummy, C99 forbids 0-len array. */ \
};
#undef TRACEPOINT_ENUM
#define TRACEPOINT_ENUM(_provider, _name, _values) \
- static const struct lttng_enum_desc __enum_##_provider##_##_name = { \
+ static const struct lttng_ust_enum_desc __enum_##_provider##_##_name = { \
+ .struct_size = sizeof(struct lttng_ust_enum_desc), \
.name = #_provider "_" #_name, \
.entries = __enum_values__##_provider##_##_name, \
.nr_entries = _TP_ARRAY_SIZE(__enum_values__##_provider##_##_name) - 1, \
if (caa_unlikely(!TP_RCU_LINK_TEST())) \
return; \
if (caa_unlikely(!cds_list_empty(&__event->filter_bytecode_runtime_head))) { \
- struct lttng_bytecode_runtime *__filter_bc_runtime; \
+ struct lttng_ust_bytecode_runtime *__filter_bc_runtime; \
int __filter_record = __event->has_enablers_without_bytecode; \
\
__event_prepare_interpreter_stack__##_provider##___##_name(__stackvar.__interpreter_stack_data, \
struct lttng_ust_event_recorder *__event_recorder = (struct lttng_ust_event_recorder *) __event->child; \
struct lttng_channel *__chan = __event_recorder->chan; \
struct lttng_ust_lib_ring_buffer_ctx __ctx; \
- struct lttng_stack_ctx __lttng_ctx; \
+ struct lttng_ust_stack_ctx __lttng_ctx; \
\
__event_len = __event_get_size__##_provider##___##_name(__stackvar.__dynamic_len, \
_TP_ARGS_DATA_VAR(_args)); \
__event_align = __event_get_align__##_provider##___##_name(_TP_ARGS_VAR(_args)); \
memset(&__lttng_ctx, 0, sizeof(__lttng_ctx)); \
+ __lttng_ctx.struct_size = sizeof(struct lttng_ust_stack_ctx); \
__lttng_ctx.event_recorder = __event_recorder; \
__lttng_ctx.chan_ctx = tp_rcu_dereference(__chan->ctx); \
__lttng_ctx.event_ctx = tp_rcu_dereference(__event_recorder->ctx); \
static const char * \
__ref_model_emf_uri___##_provider##___##_name \
__attribute__((weakref ("_model_emf_uri___" #_provider "___" #_name)));\
-static const struct lttng_event_desc __event_desc___##_provider##_##_name = { \
+static const struct lttng_ust_event_desc __event_desc___##_provider##_##_name = { \
+ .struct_size = sizeof(struct lttng_ust_event_desc), \
.name = #_provider ":" #_name, \
- .probe_callback = (void (*)(void)) &__event_probe__##_provider##___##_template,\
+ .probe_callback = (void (*)(void)) &__event_probe__##_provider##___##_template, \
.ctx = NULL, \
.fields = __event_fields___##_provider##___##_template, \
.nr_fields = _TP_ARRAY_SIZE(__event_fields___##_provider##___##_template) - 1, \
.loglevel = &__ref_loglevel___##_provider##___##_name, \
.signature = __tp_event_signature___##_provider##___##_template, \
- .u = { \
- .ext = { \
- .model_emf_uri = &__ref_model_emf_uri___##_provider##___##_name, \
- }, \
- }, \
+ .model_emf_uri = &__ref_model_emf_uri___##_provider##___##_name, \
};
#include TRACEPOINT_INCLUDE
#define _TRACEPOINT_EVENT_INSTANCE(_provider, _template, _name, _args) \
&__event_desc___##_provider##_##_name,
-static const struct lttng_event_desc *_TP_COMBINE_TOKENS(__event_desc___, TRACEPOINT_PROVIDER)[] = {
+static const struct lttng_ust_event_desc *_TP_COMBINE_TOKENS(__event_desc___, TRACEPOINT_PROVIDER)[] = {
#include TRACEPOINT_INCLUDE
NULL, /* Dummy, C99 forbids 0-len array. */
};
*/
/* non-const because list head will be modified when registered. */
-static struct lttng_probe_desc _TP_COMBINE_TOKENS(__probe_desc___, TRACEPOINT_PROVIDER) = {
+static struct lttng_ust_probe_desc _TP_COMBINE_TOKENS(__probe_desc___, TRACEPOINT_PROVIDER) = {
+ .struct_size = sizeof(struct lttng_ust_probe_desc),
.provider = __tp_stringify(TRACEPOINT_PROVIDER),
.event_desc = _TP_COMBINE_TOKENS(__event_desc___, TRACEPOINT_PROVIDER),
.nr_events = _TP_ARRAY_SIZE(_TP_COMBINE_TOKENS(__event_desc___, TRACEPOINT_PROVIDER)) - 1,
* error will appear.
*/
_TP_COMBINE_TOKENS(__tracepoint_provider_check_, TRACEPOINT_PROVIDER)();
- ret = lttng_probe_register(&_TP_COMBINE_TOKENS(__probe_desc___, TRACEPOINT_PROVIDER));
+ ret = lttng_ust_probe_register(&_TP_COMBINE_TOKENS(__probe_desc___, TRACEPOINT_PROVIDER));
if (ret) {
fprintf(stderr, "LTTng-UST: Error (%d) while registering tracepoint probe.\n", ret);
abort();
TRACEPOINT_PROVIDER)) {
return;
}
- lttng_probe_unregister(&_TP_COMBINE_TOKENS(__probe_desc___, TRACEPOINT_PROVIDER));
+ lttng_ust_probe_unregister(&_TP_COMBINE_TOKENS(__probe_desc___, TRACEPOINT_PROVIDER));
}
int _TP_COMBINE_TOKENS(__tracepoint_provider_, TRACEPOINT_PROVIDER)