#define ctf_enum_value(_string, _value) \
{ \
.start = { \
- .signedness = lttng_is_signed_type(__typeof__(_value)), \
.value = lttng_is_signed_type(__typeof__(_value)) ? \
(long long) (_value) : (_value), \
+ .signedness = lttng_is_signed_type(__typeof__(_value)), \
}, \
.end = { \
- .signedness = lttng_is_signed_type(__typeof__(_value)), \
.value = lttng_is_signed_type(__typeof__(_value)) ? \
(long long) (_value) : (_value), \
+ .signedness = lttng_is_signed_type(__typeof__(_value)), \
}, \
.string = (_string), \
},
#define ctf_enum_range(_string, _range_start, _range_end) \
{ \
.start = { \
- .signedness = lttng_is_signed_type(__typeof__(_range_start)), \
.value = lttng_is_signed_type(__typeof__(_range_start)) ? \
(long long) (_range_start) : (_range_start), \
+ .signedness = lttng_is_signed_type(__typeof__(_range_start)), \
}, \
.end = { \
- .signedness = lttng_is_signed_type(__typeof__(_range_end)), \
.value = lttng_is_signed_type(__typeof__(_range_end)) ? \
(long long) (_range_end) : (_range_end), \
+ .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) \
+ { \
+ .start = { \
+ .value = -1ULL, \
+ .signedness = 0, \
+ }, \
+ .end = { \
+ .value = -1ULL, \
+ .signedness = 0, \
+ }, \
+ .string = (_string), \
+ .u = { \
+ .extra = { \
+ .options = LTTNG_ENUM_ENTRY_OPTION_IS_AUTO, \
+ }, \
+ }, \
+ },
+
#undef TP_ENUM_VALUES
#define TP_ENUM_VALUES(...) \
__VA_ARGS__