X-Git-Url: http://git.lttng.org./?a=blobdiff_plain;f=include%2Flttng%2Fust-tracepoint-event.h;h=e743ffdad43a6982b87a6ca35a69cfb0c436ba52;hb=49926dbd13cfcb46f6947b7e99bc2999c06dc743;hp=5b3d9a1b9773b88a19e89cc64ec11ba6c8525408;hpb=ba99fbe29216df4090f308bbe805bd93db470938;p=lttng-ust.git diff --git a/include/lttng/ust-tracepoint-event.h b/include/lttng/ust-tracepoint-event.h index 5b3d9a1b..e743ffda 100644 --- a/include/lttng/ust-tracepoint-event.h +++ b/include/lttng/ust-tracepoint-event.h @@ -147,7 +147,8 @@ void __event_template_proto___##_provider##___##_name(_TP_ARGS_DATA_PROTO(_args) /* 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), \ @@ -159,12 +160,13 @@ void __event_template_proto___##_provider##___##_name(_TP_ARGS_DATA_PROTO(_args) .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), \ @@ -176,12 +178,13 @@ void __event_template_proto___##_provider##___##_name(_TP_ARGS_DATA_PROTO(_args) .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, \ @@ -191,12 +194,8 @@ void __event_template_proto___##_provider##___##_name(_TP_ARGS_DATA_PROTO(_args) .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(...) \ @@ -204,7 +203,7 @@ void __event_template_proto___##_provider##___##_name(_TP_ARGS_DATA_PROTO(_args) #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. */ \ }; @@ -254,120 +253,95 @@ void __event_template_proto___##_provider##___##_name(_TP_ARGS_DATA_PROTO(_args) #include #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, \ @@ -380,26 +354,23 @@ void __event_template_proto___##_provider##___##_name(_TP_ARGS_DATA_PROTO(_args) }, \ }, \ .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, \ @@ -1020,19 +991,16 @@ static const int * \ 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 @@ -1050,7 +1018,7 @@ static const struct lttng_event_desc __event_desc___##_provider##_##_name = { #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. */ }; @@ -1063,7 +1031,8 @@ static const struct lttng_event_desc *_TP_COMBINE_TOKENS(__event_desc___, TRACEP */ /* 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, @@ -1109,7 +1078,7 @@ _TP_COMBINE_TOKENS(__lttng_events_init__, TRACEPOINT_PROVIDER)(void) * 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(); @@ -1125,7 +1094,7 @@ _TP_COMBINE_TOKENS(__lttng_events_exit__, TRACEPOINT_PROVIDER)(void) 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)