+/* Reset all macros within TRACEPOINT_EVENT */
+#include "lttng-events-reset.h"
+#include "lttng-events-write.h"
+#include "lttng-events-nowrite.h"
+
+#undef _ctf_integer_ext
+#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),\
+ .nowrite = _nowrite, \
+ .user = _user, \
+ },
+
+#undef _ctf_array_encoded
+#define _ctf_array_encoded(_type, _item, _src, _length, _encoding, _user, _nowrite) \
+ { \
+ .name = #_item, \
+ .type = \
+ { \
+ .atype = atype_array, \
+ .u = \
+ { \
+ .array = \
+ { \
+ .elem_type = __type_integer(_type, 0, 0, 0, __BYTE_ORDER, 10, _encoding), \
+ .length = _length, \
+ } \
+ } \
+ }, \
+ .nowrite = _nowrite, \
+ .user = _user, \
+ },
+
+#undef _ctf_array_bitfield
+#define _ctf_array_bitfield(_type, _item, _src, _length, _user, _nowrite) \
+ { \
+ .name = #_item, \
+ .type = \
+ { \
+ .atype = atype_array, \
+ .u = \
+ { \
+ .array = \
+ { \
+ .elem_type = __type_integer(_type, 1, 1, 0, __LITTLE_ENDIAN, 10, none), \
+ .length = (_length) * sizeof(_type) * CHAR_BIT, \
+ .elem_alignment = lttng_alignof(_type), \
+ } \
+ } \
+ }, \
+ .nowrite = _nowrite, \
+ .user = _user, \
+ },
+
+
+#undef _ctf_sequence_encoded
+#define _ctf_sequence_encoded(_type, _item, _src, \
+ _length_type, _src_length, _encoding, \
+ _byte_order, _base, _user, _nowrite) \
+ { \
+ .name = #_item, \
+ .type = \
+ { \
+ .atype = atype_sequence, \
+ .u = \
+ { \
+ .sequence = \
+ { \
+ .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), \
+ }, \
+ }, \
+ }, \
+ .nowrite = _nowrite, \
+ .user = _user, \
+ },
+
+#undef _ctf_sequence_bitfield
+#define _ctf_sequence_bitfield(_type, _item, _src, \
+ _length_type, _src_length, \
+ _user, _nowrite) \
+ { \
+ .name = #_item, \
+ .type = \
+ { \
+ .atype = atype_sequence, \
+ .u = \
+ { \
+ .sequence = \
+ { \
+ .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), \
+ }, \
+ }, \
+ }, \
+ .nowrite = _nowrite, \
+ .user = _user, \
+ },
+
+#undef _ctf_string
+#define _ctf_string(_item, _src, _user, _nowrite) \
+ { \
+ .name = #_item, \
+ .type = \
+ { \
+ .atype = atype_string, \
+ .u = \
+ { \
+ .basic = { .string = { .encoding = lttng_encode_UTF8 } } \
+ }, \
+ }, \
+ .nowrite = _nowrite, \
+ .user = _user, \
+ },
+
+#undef TP_FIELDS
+#define TP_FIELDS(...) __VA_ARGS__ /* Only one used in this phase */
+
+#undef LTTNG_TRACEPOINT_EVENT_CLASS_CODE_NOARGS
+#define LTTNG_TRACEPOINT_EVENT_CLASS_CODE_NOARGS(_name, _locvar, _code_pre, _fields, _code_post) \
+ static const struct lttng_event_field __event_fields___##_name[] = { \
+ _fields \
+ };