tracepoint: Refactor representation of nested types
[lttng-modules.git] / probes / lttng-tracepoint-event-impl.h
index b304dde368b90e46ba480e9cbcd3ede633221b04..5f77bf4d5405f6c8c50bc06f99e5a166869f4765 100644 (file)
@@ -257,29 +257,34 @@ void __event_template_proto___##_name(void);
 #define _ctf_integer_ext(_type, _item, _src, _byte_order, _base, _user, _nowrite) \
        {                                                       \
          .name = #_item,                                       \
-         .type = __type_integer(_type, 0, 0, -1, _byte_order, _base, none),\
+         .type = __type_integer(_type, 0, 0, -1, _byte_order, _base, none), \
          .nowrite = _nowrite,                                  \
          .user = _user,                                        \
+         .nofilter = 0,                                        \
        },
 
 #undef _ctf_array_encoded
-#define _ctf_array_encoded(_type, _item, _src, _length, _encoding, _byte_order, _base, _user, _nowrite) \
+#define _ctf_array_encoded(_type, _item, _src, _length,                \
+               _encoding, _byte_order, _elem_type_base, _user, _nowrite) \
        {                                                       \
          .name = #_item,                                       \
          .type =                                               \
                {                                               \
-                 .atype = atype_array,                         \
+                 .atype = atype_array_nestable,                \
                  .u =                                          \
                        {                                       \
-                         .array =                              \
+                         .array_nestable =                     \
                                {                               \
-                                 .elem_type = __type_integer(_type, 0, 0, 0, _byte_order, _base, _encoding), \
+                                 .elem_type = __LTTNG_COMPOUND_LITERAL(struct lttng_type, \
+                                       __type_integer(_type, 0, 0, -1, _byte_order, _elem_type_base, _encoding)), \
                                  .length = _length,            \
+                                 .alignment = 0,               \
                                }                               \
                        }                                       \
                },                                              \
          .nowrite = _nowrite,                                  \
          .user = _user,                                        \
+         .nofilter = 0,                                        \
        },
 
 #undef _ctf_array_bitfield
@@ -288,65 +293,84 @@ void __event_template_proto___##_name(void);
          .name = #_item,                                       \
          .type =                                               \
                {                                               \
-                 .atype = atype_array_bitfield,                \
+                 .atype = atype_array_nestable,                \
                  .u =                                          \
                        {                                       \
-                         .array =                              \
+                         .array_nestable =                     \
                                {                               \
-                                 .elem_type = __type_integer(_type, 1, 1, 0, __LITTLE_ENDIAN, 10, none), \
+                                 .elem_type = __LTTNG_COMPOUND_LITERAL(struct lttng_type, \
+                                       __type_integer(_type, 1, 1, 0, __LITTLE_ENDIAN, 10, none)), \
                                  .length = (_length) * sizeof(_type) * CHAR_BIT, \
-                                 .elem_alignment = lttng_alignof(_type), \
+                                 .alignment = lttng_alignof(_type), \
                                }                               \
                        }                                       \
                },                                              \
          .nowrite = _nowrite,                                  \
          .user = _user,                                        \
+         .nofilter = 0,                                        \
        },
 
 
 #undef _ctf_sequence_encoded
 #define _ctf_sequence_encoded(_type, _item, _src,              \
                        _length_type, _src_length, _encoding,   \
-                       _byte_order, _base, _user, _nowrite)    \
+                       _byte_order, _elem_type_base, _user, _nowrite) \
+       {                                                       \
+         .name = "_" #_item "_length",                         \
+         .type = __type_integer(_length_type, 0, 0, -1, __BYTE_ORDER, 10, none), \
+         .nowrite = _nowrite,                                  \
+         .nofilter = 1,                                        \
+       },                                                      \
        {                                                       \
          .name = #_item,                                       \
          .type =                                               \
                {                                               \
-                 .atype = atype_sequence,                      \
+                 .atype = atype_sequence_nestable,             \
                  .u =                                          \
                        {                                       \
-                         .sequence =                           \
+                         .sequence_nestable =                  \
                                {                               \
-                                 .length_type = __type_integer(_length_type, 0, 0, 0, __BYTE_ORDER, 10, none), \
-                                 .elem_type = __type_integer(_type, 0, 0, -1, _byte_order, _base, _encoding), \
+                                 .length_name = "_" #_item "_length", \
+                                 .elem_type = __LTTNG_COMPOUND_LITERAL(struct lttng_type, \
+                                       __type_integer(_type, 0, 0, -1, _byte_order, _elem_type_base, _encoding)), \
+                                 .alignment = 0,               \
                                },                              \
                        },                                      \
                },                                              \
          .nowrite = _nowrite,                                  \
          .user = _user,                                        \
+         .nofilter = 0,                                        \
        },
 
 #undef _ctf_sequence_bitfield
 #define _ctf_sequence_bitfield(_type, _item, _src,             \
                        _length_type, _src_length,              \
                        _user, _nowrite)                        \
+       {                                                       \
+         .name = "_" #_item "_length",                         \
+         .type = __type_integer(_length_type, 0, 0, -1, __BYTE_ORDER, 10, none), \
+         .nowrite = _nowrite,                                  \
+         .nofilter = 1,                                        \
+       },                                                      \
        {                                                       \
          .name = #_item,                                       \
          .type =                                               \
                {                                               \
-                 .atype = atype_sequence_bitfield,             \
+                 .atype = atype_sequence_nestable,             \
                  .u =                                          \
                        {                                       \
-                         .sequence =                           \
+                         .sequence_nestable =                  \
                                {                               \
-                                 .length_type = __type_integer(_length_type, 0, 0, 0, __BYTE_ORDER, 10, none), \
-                                 .elem_type = __type_integer(_type, 1, 1, 0, __LITTLE_ENDIAN, 10, none), \
-                                 .elem_alignment = lttng_alignof(_type), \
+                                 .length_name = "_" #_item "_length", \
+                                 .elem_type = __LTTNG_COMPOUND_LITERAL(struct lttng_type, \
+                                       __type_integer(_type, 1, 1, 0, __LITTLE_ENDIAN, 10, none)), \
+                                 .alignment = lttng_alignof(_type), \
                                },                              \
                        },                                      \
                },                                              \
          .nowrite = _nowrite,                                  \
          .user = _user,                                        \
+         .nofilter = 0,                                        \
        },
 
 #undef _ctf_string
@@ -358,11 +382,12 @@ void __event_template_proto___##_name(void);
                  .atype = atype_string,                        \
                  .u =                                          \
                        {                                       \
-                         .basic = { .string = { .encoding = lttng_encode_UTF8 } } \
+                         .string = { .encoding = lttng_encode_UTF8 }, \
                        },                                      \
                },                                              \
          .nowrite = _nowrite,                                  \
          .user = _user,                                        \
+         .nofilter = 0,                                        \
        },
 
 #undef _ctf_enum
@@ -370,34 +395,28 @@ void __event_template_proto___##_name(void);
        {                                                       \
                .name = #_item,                                 \
                .type = {                                       \
-                       .atype = atype_enum,                    \
+                       .atype = atype_enum_nestable,           \
                        .u = {                                  \
-                               .basic = {                      \
-                                       .enumeration = {        \
-                                               .desc = &__enum_##_name, \
-                                               .container_type = { \
-                                                       .size = sizeof(_type) * CHAR_BIT, \
-                                                       .alignment = lttng_alignof(_type) * CHAR_BIT, \
-                                                       .signedness = lttng_is_signed_type(_type), \
-                                                       .reverse_byte_order = 0, \
-                                                       .base = 10, \
-                                                       .encoding = lttng_encode_none, \
-                                               },              \
-                                       },                      \
-                                },                             \
+                               .enum_nestable = {              \
+                                       .desc = &__enum_##_name, \
+                                       .container_type = __LTTNG_COMPOUND_LITERAL(struct lttng_type, \
+                                               __type_integer(_type, 0, 0, -1, __BYTE_ORDER, 10, none)), \
+                               },                              \
                        },                                      \
                },                                              \
                .nowrite = _nowrite,                            \
                .user = _user,                                  \
+               .nofilter = 0,                                  \
        },
 
 #undef ctf_custom_field
 #define ctf_custom_field(_type, _item, _code)                  \
        {                                                       \
                .name = #_item,                                 \
-               .type = { _type },                              \
+               .type = _type,                                  \
                .nowrite = 0,                                   \
                .user = 0,                                      \
+               .nofilter = 1,                                  \
        },
 
 #undef ctf_custom_type
This page took 0.026061 seconds and 4 git commands to generate.