X-Git-Url: http://git.liburcu.org/?a=blobdiff_plain;f=include%2Flttng%2Fust-tracepoint-event.h;h=9678b83c934604ec975e30dade671882d13fa115;hb=b2e37d27accf5e32128b82392dbe1a9522c7dc20;hp=bb5dbfe369047f85ad7f5b257a6b9cf48ef561b1;hpb=f082dde956214e3cc577d19f8bc687dc3a874d1c;p=lttng-ust.git diff --git a/include/lttng/ust-tracepoint-event.h b/include/lttng/ust-tracepoint-event.h index bb5dbfe3..9678b83c 100644 --- a/include/lttng/ust-tracepoint-event.h +++ b/include/lttng/ust-tracepoint-event.h @@ -17,14 +17,56 @@ #include #include #include +#include -#define LTTNG_UST__NULL_STRING "(null)" +#if LTTNG_UST_COMPAT_API(0) +#define TP_FIELDS LTTNG_UST_TP_FIELDS + +#define ctf_integer lttng_ust_field_integer +#define ctf_integer_hex lttng_ust_field_integer_hex +#define ctf_integer_network lttng_ust_field_integer_network +#define ctf_integer_network_hex lttng_ust_field_integer_network_hex +#define ctf_integer_nowrite lttng_ust_field_integer_nowrite + +#define ctf_float lttng_ust_field_float +#define ctf_float_nowrite lttng_ust_field_float_nowrite + +#define ctf_array lttng_ust_field_array +#define ctf_array_hex lttng_ust_field_array_hex +#define ctf_array_network lttng_ust_field_array_network +#define ctf_array_network_hex lttng_ust_field_array_network_hex +#define ctf_array_text lttng_ust_field_array_text +#define ctf_array_nowrite lttng_ust_field_array_nowrite +#define ctf_array_nowrite_hex lttng_ust_field_array_nowrite_hex +#define ctf_array_network_nowrite lttng_ust_field_array_network_nowrite +#define ctf_array_network_nowrite_hex lttng_ust_field_array_network_nowrite_hex +#define ctf_array_text_nowrite lttng_ust_field_array_text_nowrite + +#define ctf_sequence lttng_ust_field_sequence +#define ctf_sequence_hex lttng_ust_field_sequence_hex +#define ctf_sequence_network lttng_ust_field_sequence_network +#define ctf_sequence_network_hex lttng_ust_field_sequence_network_hex +#define ctf_sequence_text lttng_ust_field_sequence_text +#define ctf_sequence_nowrite lttng_ust_field_sequence_nowrite +#define ctf_sequence_nowrite_hex lttng_ust_field_sequence_nowrite_hex +#define ctf_sequence_network_nowrite lttng_ust_field_sequence_network_nowrite +#define ctf_sequence_network_nowrite_hex lttng_ust_field_sequence_network_nowrite_hex +#define ctf_sequence_text_nowrite lttng_ust_field_sequence_text_nowrite + +#define ctf_string lttng_ust_field_string +#define ctf_string_nowrite lttng_ust_field_string_nowrite + +#define ctf_unused lttng_ust_field_unused +#define ctf_unused_nowrite lttng_ust_field_unused_nowrite + +#define ctf_enum lttng_ust_field_enum +#define ctf_enum_nowrite lttng_ust_field_enum_nowrite +#define ctf_enum_value lttng_ust_field_enum_value +#define ctf_enum_range lttng_ust_field_enum_range +#define ctf_enum_auto lttng_ust_field_enum_auto +#endif /* #if LTTNG_UST_COMPAT_API(0) */ -#undef tp_list_for_each_entry_rcu -#define tp_list_for_each_entry_rcu(pos, head, member) \ - for (pos = cds_list_entry(tp_rcu_dereference((head)->next), __typeof__(*pos), member); \ - &pos->member != (head); \ - pos = cds_list_entry(tp_rcu_dereference(pos->member.next), __typeof__(*pos), member)) +#define LTTNG_UST__NULL_STRING "(null)" /* * LTTNG_UST_TRACEPOINT_EVENT_CLASS declares a class of tracepoints receiving the @@ -146,8 +188,8 @@ void lttng_ust__event_template_proto___##_provider##___##_name(LTTNG_UST__TP_ARG #include /* Enumeration entry (single value) */ -#undef ctf_enum_value -#define ctf_enum_value(_string, _value) \ +#undef lttng_ust_field_enum_value +#define lttng_ust_field_enum_value(_string, _value) \ LTTNG_UST_COMPOUND_LITERAL(const struct lttng_ust_enum_entry, { \ .struct_size = sizeof(struct lttng_ust_enum_entry), \ .start = { \ @@ -164,8 +206,8 @@ void lttng_ust__event_template_proto___##_provider##___##_name(LTTNG_UST__TP_ARG }), /* Enumeration entry (range) */ -#undef ctf_enum_range -#define ctf_enum_range(_string, _range_start, _range_end) \ +#undef lttng_ust_field_enum_range +#define lttng_ust_field_enum_range(_string, _range_start, _range_end) \ LTTNG_UST_COMPOUND_LITERAL(const struct lttng_ust_enum_entry, { \ .struct_size = sizeof(struct lttng_ust_enum_entry), \ .start = { \ @@ -182,8 +224,8 @@ void lttng_ust__event_template_proto___##_provider##___##_name(LTTNG_UST__TP_ARG }), /* Enumeration entry (automatic value; follows the rules of CTF) */ -#undef ctf_enum_auto -#define ctf_enum_auto(_string) \ +#undef lttng_ust_field_enum_auto +#define lttng_ust_field_enum_auto(_string) \ LTTNG_UST_COMPOUND_LITERAL(const struct lttng_ust_enum_entry, { \ .struct_size = sizeof(struct lttng_ust_enum_entry), \ .start = { \ @@ -211,7 +253,7 @@ void lttng_ust__event_template_proto___##_provider##___##_name(LTTNG_UST__TP_ARG #define LTTNG_UST_TRACEPOINT_ENUM(_provider, _name, _values) \ const struct lttng_ust_enum_entry * const __enum_values__##_provider##_##_name[] = { \ _values \ - ctf_enum_value("", 0) /* Dummy, 0-len array forbidden by C99. */ \ + lttng_ust_field_enum_value("", 0) /* Dummy, 0-len array forbidden by C99. */ \ }; #include LTTNG_UST_TRACEPOINT_INCLUDE @@ -225,17 +267,17 @@ void lttng_ust__event_template_proto___##_provider##___##_name(LTTNG_UST__TP_ARG #include #include -#undef _ctf_array_encoded -#define _ctf_array_encoded(_type, _item, _src, _byte_order, \ +#undef lttng_ust__field_array_encoded +#define lttng_ust__field_array_encoded(_type, _item, _src, _byte_order, \ _length, _encoding, _nowrite, \ _elem_type_base) \ - lttng_ust_ctf_array_element_type_is_supported(_type, _item); + lttng_ust_field_array_element_type_is_supported(_type, _item); -#undef _ctf_sequence_encoded -#define _ctf_sequence_encoded(_type, _item, _src, _byte_order, \ +#undef lttng_ust__field_sequence_encoded +#define lttng_ust__field_sequence_encoded(_type, _item, _src, _byte_order, \ _length_type, _src_length, _encoding, _nowrite, \ _elem_type_base) \ - lttng_ust_ctf_array_element_type_is_supported(_type, _item); + lttng_ust_field_array_element_type_is_supported(_type, _item); #undef LTTNG_UST_TP_FIELDS #define LTTNG_UST_TP_FIELDS(...) __VA_ARGS__ /* Only one used in this phase */ @@ -258,8 +300,8 @@ void lttng_ust__event_template_proto___##_provider##___##_name(LTTNG_UST__TP_ARG #include #include -#undef _ctf_integer_ext -#define _ctf_integer_ext(_type, _item, _src, _byte_order, _base, _nowrite) \ +#undef lttng_ust__field_integer_ext +#define lttng_ust__field_integer_ext(_type, _item, _src, _byte_order, _base, _nowrite) \ LTTNG_UST_COMPOUND_LITERAL(const struct lttng_ust_event_field, { \ .struct_size = sizeof(struct lttng_ust_event_field), \ .name = #_item, \ @@ -268,8 +310,8 @@ void lttng_ust__event_template_proto___##_provider##___##_name(LTTNG_UST__TP_ARG .nofilter = 0, \ }), -#undef _ctf_float -#define _ctf_float(_type, _item, _src, _nowrite) \ +#undef lttng_ust__field_float +#define lttng_ust__field_float(_type, _item, _src, _nowrite) \ LTTNG_UST_COMPOUND_LITERAL(const struct lttng_ust_event_field, { \ .struct_size = sizeof(struct lttng_ust_event_field), \ .name = #_item, \ @@ -278,8 +320,8 @@ void lttng_ust__event_template_proto___##_provider##___##_name(LTTNG_UST__TP_ARG .nofilter = 0, \ }), -#undef _ctf_array_encoded -#define _ctf_array_encoded(_type, _item, _src, _byte_order, \ +#undef lttng_ust__field_array_encoded +#define lttng_ust__field_array_encoded(_type, _item, _src, _byte_order, \ _length, _encoding, _nowrite, \ _elem_type_base) \ LTTNG_UST_COMPOUND_LITERAL(const struct lttng_ust_event_field, { \ @@ -299,14 +341,14 @@ void lttng_ust__event_template_proto___##_provider##___##_name(LTTNG_UST__TP_ARG .nofilter = 0, \ }), -#undef _ctf_sequence_encoded -#define _ctf_sequence_encoded(_type, _item, _src, _byte_order, \ +#undef lttng_ust__field_sequence_encoded +#define lttng_ust__field_sequence_encoded(_type, _item, _src, _byte_order, \ _length_type, _src_length, _encoding, _nowrite, \ _elem_type_base) \ LTTNG_UST_COMPOUND_LITERAL(const struct lttng_ust_event_field, { \ .struct_size = sizeof(struct lttng_ust_event_field), \ .name = "_" #_item "_length", \ - .type = lttng_ust_type_integer_define(_length_type, BYTE_ORDER, 10), \ + .type = lttng_ust_type_integer_define(_length_type, LTTNG_UST_BYTE_ORDER, 10), \ .nowrite = _nowrite, \ .nofilter = 1, \ }), \ @@ -327,8 +369,8 @@ void lttng_ust__event_template_proto___##_provider##___##_name(LTTNG_UST__TP_ARG .nofilter = 0, \ }), -#undef _ctf_string -#define _ctf_string(_item, _src, _nowrite) \ +#undef lttng_ust__field_string +#define lttng_ust__field_string(_item, _src, _nowrite) \ LTTNG_UST_COMPOUND_LITERAL(const struct lttng_ust_event_field, { \ .struct_size = sizeof(struct lttng_ust_event_field), \ .name = #_item, \ @@ -343,11 +385,11 @@ void lttng_ust__event_template_proto___##_provider##___##_name(LTTNG_UST__TP_ARG .nofilter = 0, \ }), -#undef _ctf_unused -#define _ctf_unused(_src) +#undef lttng_ust__field_unused +#define lttng_ust__field_unused(_src) -#undef _ctf_enum -#define _ctf_enum(_provider, _name, _type, _item, _src, _nowrite) \ +#undef lttng_ust__field_enum +#define lttng_ust__field_enum(_provider, _name, _type, _item, _src, _nowrite) \ LTTNG_UST_COMPOUND_LITERAL(const struct lttng_ust_event_field, { \ .struct_size = sizeof(struct lttng_ust_event_field), \ .name = #_item, \ @@ -357,7 +399,7 @@ void lttng_ust__event_template_proto___##_provider##___##_name(LTTNG_UST__TP_ARG }, \ .struct_size = sizeof(struct lttng_ust_type_enum), \ .desc = &__enum_##_provider##_##_name, \ - .container_type = lttng_ust_type_integer_define(_type, BYTE_ORDER, 10), \ + .container_type = lttng_ust_type_integer_define(_type, LTTNG_UST_BYTE_ORDER, 10), \ }), \ .nowrite = _nowrite, \ .nofilter = 0, \ @@ -370,7 +412,7 @@ void lttng_ust__event_template_proto___##_provider##___##_name(LTTNG_UST__TP_ARG #define LTTNG_UST__TRACEPOINT_EVENT_CLASS(_provider, _name, _args, _fields) \ static const struct lttng_ust_event_field * const lttng_ust__event_fields___##_provider##___##_name[] = { \ _fields \ - ctf_integer(int, dummy, 0) /* Dummy, C99 forbids 0-len array. */ \ + lttng_ust_field_integer(int, dummy, 0) /* Dummy, C99 forbids 0-len array. */ \ }; #undef LTTNG_UST_TRACEPOINT_ENUM @@ -412,30 +454,30 @@ static void lttng_ust__event_probe__##_provider##___##_name(LTTNG_UST__TP_ARGS_D #include #include -#undef _ctf_integer_ext -#define _ctf_integer_ext(_type, _item, _src, _byte_order, _base, _nowrite) \ +#undef lttng_ust__field_integer_ext +#define lttng_ust__field_integer_ext(_type, _item, _src, _byte_order, _base, _nowrite) \ if (0) \ (void) (_src); /* Unused */ \ __event_len += lttng_ust_ring_buffer_align(__event_len, lttng_ust_rb_alignof(_type)); \ __event_len += sizeof(_type); -#undef _ctf_float -#define _ctf_float(_type, _item, _src, _nowrite) \ +#undef lttng_ust__field_float +#define lttng_ust__field_float(_type, _item, _src, _nowrite) \ if (0) \ (void) (_src); /* Unused */ \ __event_len += lttng_ust_ring_buffer_align(__event_len, lttng_ust_rb_alignof(_type)); \ __event_len += sizeof(_type); -#undef _ctf_array_encoded -#define _ctf_array_encoded(_type, _item, _src, _byte_order, _length, _encoding, \ +#undef lttng_ust__field_array_encoded +#define lttng_ust__field_array_encoded(_type, _item, _src, _byte_order, _length, _encoding, \ _nowrite, _elem_type_base) \ if (0) \ (void) (_src); /* Unused */ \ __event_len += lttng_ust_ring_buffer_align(__event_len, lttng_ust_rb_alignof(_type)); \ __event_len += sizeof(_type) * (_length); -#undef _ctf_sequence_encoded -#define _ctf_sequence_encoded(_type, _item, _src, _byte_order, _length_type, \ +#undef lttng_ust__field_sequence_encoded +#define lttng_ust__field_sequence_encoded(_type, _item, _src, _byte_order, _length_type, \ _src_length, _encoding, _nowrite, _elem_type_base) \ if (0) \ (void) (_src); /* Unused */ \ @@ -446,19 +488,19 @@ static void lttng_ust__event_probe__##_provider##___##_name(LTTNG_UST__TP_ARGS_D __event_len += sizeof(_type) * __dynamic_len[__dynamic_len_idx]; \ __dynamic_len_idx++; -#undef _ctf_string -#define _ctf_string(_item, _src, _nowrite) \ +#undef lttng_ust__field_string +#define lttng_ust__field_string(_item, _src, _nowrite) \ __event_len += __dynamic_len[__dynamic_len_idx++] = \ strlen((_src) ? (_src) : LTTNG_UST__NULL_STRING) + 1; -#undef _ctf_unused -#define _ctf_unused(_src) \ +#undef lttng_ust__field_unused +#define lttng_ust__field_unused(_src) \ if (0) \ (void) (_src); /* Unused */ -#undef _ctf_enum -#define _ctf_enum(_provider, _name, _type, _item, _src, _nowrite) \ - _ctf_integer_ext(_type, _item, _src, BYTE_ORDER, 10, _nowrite) +#undef lttng_ust__field_enum +#define lttng_ust__field_enum(_provider, _name, _type, _item, _src, _nowrite) \ + lttng_ust__field_integer_ext(_type, _item, _src, LTTNG_UST_BYTE_ORDER, 10, _nowrite) #undef LTTNG_UST_TP_ARGS #define LTTNG_UST_TP_ARGS(...) __VA_ARGS__ @@ -500,8 +542,8 @@ size_t lttng_ust__event_get_size__##_provider##___##_name( \ #include #include -#undef _ctf_integer_ext -#define _ctf_integer_ext(_type, _item, _src, _byte_order, _base, _nowrite) \ +#undef lttng_ust__field_integer_ext +#define lttng_ust__field_integer_ext(_type, _item, _src, _byte_order, _base, _nowrite) \ if (lttng_ust_is_signed_type(_type)) { \ int64_t __ctf_tmp_int64; \ switch (sizeof(_type)) { \ @@ -514,24 +556,24 @@ size_t lttng_ust__event_get_size__##_provider##___##_name( \ case 2: \ { \ union { _type t; int16_t v; } __tmp = { (_type) (_src) }; \ - if (_byte_order != BYTE_ORDER) \ - __tmp.v = bswap_16(__tmp.v); \ + if (_byte_order != LTTNG_UST_BYTE_ORDER) \ + __tmp.v = lttng_ust_bswap_16(__tmp.v); \ __ctf_tmp_int64 = (int64_t) __tmp.v; \ break; \ } \ case 4: \ { \ union { _type t; int32_t v; } __tmp = { (_type) (_src) }; \ - if (_byte_order != BYTE_ORDER) \ - __tmp.v = bswap_32(__tmp.v); \ + if (_byte_order != LTTNG_UST_BYTE_ORDER) \ + __tmp.v = lttng_ust_bswap_32(__tmp.v); \ __ctf_tmp_int64 = (int64_t) __tmp.v; \ break; \ } \ case 8: \ { \ union { _type t; int64_t v; } __tmp = { (_type) (_src) }; \ - if (_byte_order != BYTE_ORDER) \ - __tmp.v = bswap_64(__tmp.v); \ + if (_byte_order != LTTNG_UST_BYTE_ORDER) \ + __tmp.v = lttng_ust_bswap_64(__tmp.v); \ __ctf_tmp_int64 = (int64_t) __tmp.v; \ break; \ } \ @@ -551,24 +593,24 @@ size_t lttng_ust__event_get_size__##_provider##___##_name( \ case 2: \ { \ union { _type t; uint16_t v; } __tmp = { (_type) (_src) }; \ - if (_byte_order != BYTE_ORDER) \ - __tmp.v = bswap_16(__tmp.v); \ + if (_byte_order != LTTNG_UST_BYTE_ORDER) \ + __tmp.v = lttng_ust_bswap_16(__tmp.v); \ __ctf_tmp_uint64 = (uint64_t) __tmp.v; \ break; \ } \ case 4: \ { \ union { _type t; uint32_t v; } __tmp = { (_type) (_src) }; \ - if (_byte_order != BYTE_ORDER) \ - __tmp.v = bswap_32(__tmp.v); \ + if (_byte_order != LTTNG_UST_BYTE_ORDER) \ + __tmp.v = lttng_ust_bswap_32(__tmp.v); \ __ctf_tmp_uint64 = (uint64_t) __tmp.v; \ break; \ } \ case 8: \ { \ union { _type t; uint64_t v; } __tmp = { (_type) (_src) }; \ - if (_byte_order != BYTE_ORDER) \ - __tmp.v = bswap_64(__tmp.v); \ + if (_byte_order != LTTNG_UST_BYTE_ORDER) \ + __tmp.v = lttng_ust_bswap_64(__tmp.v); \ __ctf_tmp_uint64 = (uint64_t) __tmp.v; \ break; \ } \ @@ -579,16 +621,16 @@ size_t lttng_ust__event_get_size__##_provider##___##_name( \ } \ __stack_data += sizeof(int64_t); -#undef _ctf_float -#define _ctf_float(_type, _item, _src, _nowrite) \ +#undef lttng_ust__field_float +#define lttng_ust__field_float(_type, _item, _src, _nowrite) \ { \ double __ctf_tmp_double = (double) (_type) (_src); \ memcpy(__stack_data, &__ctf_tmp_double, sizeof(double)); \ __stack_data += sizeof(double); \ } -#undef _ctf_array_encoded -#define _ctf_array_encoded(_type, _item, _src, _byte_order, _length, \ +#undef lttng_ust__field_array_encoded +#define lttng_ust__field_array_encoded(_type, _item, _src, _byte_order, _length, \ _encoding, _nowrite, _elem_type_base) \ { \ unsigned long __ctf_tmp_ulong = (unsigned long) (_length); \ @@ -599,8 +641,8 @@ size_t lttng_ust__event_get_size__##_provider##___##_name( \ __stack_data += sizeof(void *); \ } -#undef _ctf_sequence_encoded -#define _ctf_sequence_encoded(_type, _item, _src, _byte_order, _length_type, \ +#undef lttng_ust__field_sequence_encoded +#define lttng_ust__field_sequence_encoded(_type, _item, _src, _byte_order, _length_type, \ _src_length, _encoding, _nowrite, _elem_type_base) \ { \ unsigned long __ctf_tmp_ulong = (unsigned long) (_src_length); \ @@ -611,8 +653,8 @@ size_t lttng_ust__event_get_size__##_provider##___##_name( \ __stack_data += sizeof(void *); \ } -#undef _ctf_string -#define _ctf_string(_item, _src, _nowrite) \ +#undef lttng_ust__field_string +#define lttng_ust__field_string(_item, _src, _nowrite) \ { \ const void *__ctf_tmp_ptr = \ ((_src) ? (_src) : LTTNG_UST__NULL_STRING); \ @@ -620,14 +662,14 @@ size_t lttng_ust__event_get_size__##_provider##___##_name( \ __stack_data += sizeof(void *); \ } -#undef _ctf_unused -#define _ctf_unused(_src) \ +#undef lttng_ust__field_unused +#define lttng_ust__field_unused(_src) \ if (0) \ (void) (_src); -#undef _ctf_enum -#define _ctf_enum(_provider, _name, _type, _item, _src, _nowrite) \ - _ctf_integer_ext(_type, _item, _src, BYTE_ORDER, 10, _nowrite) +#undef lttng_ust__field_enum +#define lttng_ust__field_enum(_provider, _name, _type, _item, _src, _nowrite) \ + lttng_ust__field_integer_ext(_type, _item, _src, LTTNG_UST_BYTE_ORDER, 10, _nowrite) #undef LTTNG_UST_TP_ARGS #define LTTNG_UST_TP_ARGS(...) __VA_ARGS__ @@ -661,27 +703,27 @@ void lttng_ust__event_prepare_interpreter_stack__##_provider##___##_name(char *_ #include #include -#undef _ctf_integer_ext -#define _ctf_integer_ext(_type, _item, _src, _byte_order, _base, _nowrite) \ +#undef lttng_ust__field_integer_ext +#define lttng_ust__field_integer_ext(_type, _item, _src, _byte_order, _base, _nowrite) \ if (0) \ (void) (_src); /* Unused */ \ lttng_ust__event_align = lttng_ust__tp_max_t(size_t, lttng_ust__event_align, lttng_ust_rb_alignof(_type)); -#undef _ctf_float -#define _ctf_float(_type, _item, _src, _nowrite) \ +#undef lttng_ust__field_float +#define lttng_ust__field_float(_type, _item, _src, _nowrite) \ if (0) \ (void) (_src); /* Unused */ \ lttng_ust__event_align = lttng_ust__tp_max_t(size_t, lttng_ust__event_align, lttng_ust_rb_alignof(_type)); -#undef _ctf_array_encoded -#define _ctf_array_encoded(_type, _item, _src, _byte_order, _length, \ +#undef lttng_ust__field_array_encoded +#define lttng_ust__field_array_encoded(_type, _item, _src, _byte_order, _length, \ _encoding, _nowrite, _elem_type_base) \ if (0) \ (void) (_src); /* Unused */ \ lttng_ust__event_align = lttng_ust__tp_max_t(size_t, lttng_ust__event_align, lttng_ust_rb_alignof(_type)); -#undef _ctf_sequence_encoded -#define _ctf_sequence_encoded(_type, _item, _src, _byte_order, _length_type, \ +#undef lttng_ust__field_sequence_encoded +#define lttng_ust__field_sequence_encoded(_type, _item, _src, _byte_order, _length_type, \ _src_length, _encoding, _nowrite, _elem_type_base) \ if (0) \ (void) (_src); /* Unused */ \ @@ -690,19 +732,19 @@ void lttng_ust__event_prepare_interpreter_stack__##_provider##___##_name(char *_ lttng_ust__event_align = lttng_ust__tp_max_t(size_t, lttng_ust__event_align, lttng_ust_rb_alignof(_length_type)); \ lttng_ust__event_align = lttng_ust__tp_max_t(size_t, lttng_ust__event_align, lttng_ust_rb_alignof(_type)); -#undef _ctf_string -#define _ctf_string(_item, _src, _nowrite) \ +#undef lttng_ust__field_string +#define lttng_ust__field_string(_item, _src, _nowrite) \ if (0) \ (void) (_src); /* Unused */ -#undef _ctf_unused -#define _ctf_unused(_src) \ +#undef lttng_ust__field_unused +#define lttng_ust__field_unused(_src) \ if (0) \ (void) (_src); /* Unused */ -#undef _ctf_enum -#define _ctf_enum(_provider, _name, _type, _item, _src, _nowrite) \ - _ctf_integer_ext(_type, _item, _src, BYTE_ORDER, 10, _nowrite) +#undef lttng_ust__field_enum +#define lttng_ust__field_enum(_provider, _name, _type, _item, _src, _nowrite) \ + lttng_ust__field_integer_ext(_type, _item, _src, LTTNG_UST_BYTE_ORDER, 10, _nowrite) #undef LTTNG_UST_TP_ARGS #define LTTNG_UST_TP_ARGS(...) __VA_ARGS__ @@ -737,30 +779,30 @@ size_t lttng_ust__event_get_align__##_provider##___##_name(LTTNG_UST__TP_ARGS_PR #include #include -#undef _ctf_integer_ext -#define _ctf_integer_ext(_type, _item, _src, _byte_order, _base, _nowrite) \ +#undef lttng_ust__field_integer_ext +#define lttng_ust__field_integer_ext(_type, _item, _src, _byte_order, _base, _nowrite) \ { \ _type __tmp = (_src); \ __chan->ops->event_write(&__ctx, &__tmp, sizeof(__tmp), lttng_ust_rb_alignof(__tmp));\ } -#undef _ctf_float -#define _ctf_float(_type, _item, _src, _nowrite) \ +#undef lttng_ust__field_float +#define lttng_ust__field_float(_type, _item, _src, _nowrite) \ { \ _type __tmp = (_src); \ __chan->ops->event_write(&__ctx, &__tmp, sizeof(__tmp), lttng_ust_rb_alignof(__tmp));\ } -#undef _ctf_array_encoded -#define _ctf_array_encoded(_type, _item, _src, _byte_order, _length, \ +#undef lttng_ust__field_array_encoded +#define lttng_ust__field_array_encoded(_type, _item, _src, _byte_order, _length, \ _encoding, _nowrite, _elem_type_base) \ if (lttng_ust_string_encoding_##_encoding == lttng_ust_string_encoding_none) \ __chan->ops->event_write(&__ctx, _src, sizeof(_type) * (_length), lttng_ust_rb_alignof(_type)); \ else \ __chan->ops->event_pstrcpy_pad(&__ctx, (const char *) (_src), _length); \ -#undef _ctf_sequence_encoded -#define _ctf_sequence_encoded(_type, _item, _src, _byte_order, _length_type, \ +#undef lttng_ust__field_sequence_encoded +#define lttng_ust__field_sequence_encoded(_type, _item, _src, _byte_order, _length_type, \ _src_length, _encoding, _nowrite, _elem_type_base) \ { \ _length_type __tmpl = __stackvar.__dynamic_len[__dynamic_len_idx]; \ @@ -772,8 +814,8 @@ size_t lttng_ust__event_get_align__##_provider##___##_name(LTTNG_UST__TP_ARGS_PR else \ __chan->ops->event_pstrcpy_pad(&__ctx, (const char *) (_src), lttng_ust__get_dynamic_len(dest)); \ -#undef _ctf_string -#define _ctf_string(_item, _src, _nowrite) \ +#undef lttng_ust__field_string +#define lttng_ust__field_string(_item, _src, _nowrite) \ { \ const char *__ctf_tmp_string = \ ((_src) ? (_src) : LTTNG_UST__NULL_STRING); \ @@ -781,12 +823,12 @@ size_t lttng_ust__event_get_align__##_provider##___##_name(LTTNG_UST__TP_ARGS_PR lttng_ust__get_dynamic_len(dest)); \ } -#undef _ctf_unused -#define _ctf_unused(_src) +#undef lttng_ust__field_unused +#define lttng_ust__field_unused(_src) -#undef _ctf_enum -#define _ctf_enum(_provider, _name, _type, _item, _src, _nowrite) \ - _ctf_integer_ext(_type, _item, _src, BYTE_ORDER, 10, _nowrite) +#undef lttng_ust__field_enum +#define lttng_ust__field_enum(_provider, _name, _type, _item, _src, _nowrite) \ + lttng_ust__field_integer_ext(_type, _item, _src, LTTNG_UST_BYTE_ORDER, 10, _nowrite) /* Beware: this get len actually consumes the len value */ #undef lttng_ust__get_dynamic_len @@ -838,16 +880,17 @@ size_t lttng_ust__event_get_align__##_provider##___##_name(LTTNG_UST__TP_ARGS_PR * Perform UNION (||) of filter runtime list. */ #undef LTTNG_UST__TRACEPOINT_EVENT_CLASS -#define LTTNG_UST__TRACEPOINT_EVENT_CLASS(_provider, _name, _args, _fields) \ +#define LTTNG_UST__TRACEPOINT_EVENT_CLASS(_provider, _name, _args, _fields) \ static \ -void lttng_ust__event_probe__##_provider##___##_name(LTTNG_UST__TP_ARGS_DATA_PROTO(_args)) \ +void lttng_ust__event_probe__##_provider##___##_name(LTTNG_UST__TP_ARGS_DATA_PROTO(_args)) \ lttng_ust_notrace; \ static \ -void lttng_ust__event_probe__##_provider##___##_name(LTTNG_UST__TP_ARGS_DATA_PROTO(_args)) \ +void lttng_ust__event_probe__##_provider##___##_name(LTTNG_UST__TP_ARGS_DATA_PROTO(_args)) \ { \ struct lttng_ust_event_common *__event = (struct lttng_ust_event_common *) __tp_data; \ size_t __dynamic_len_idx = 0; \ const size_t __num_fields = LTTNG_UST__TP_ARRAY_SIZE(lttng_ust__event_fields___##_provider##___##_name) - 1; \ + struct lttng_ust_probe_ctx __probe_ctx; \ union { \ size_t __dynamic_len[__num_fields]; \ char __interpreter_stack_data[2 * sizeof(unsigned long) * __num_fields]; \ @@ -864,7 +907,7 @@ void lttng_ust__event_probe__##_provider##___##_name(LTTNG_UST__TP_ARGS_DATA_PRO struct lttng_ust_channel_buffer *__chan = lttng_ust__event_recorder->chan; \ struct lttng_ust_channel_common *__chan_common = __chan->parent; \ \ - if (!LTTNG_UST__TP_SESSION_CHECK(session, __chan_common->session)) \ + if (!LTTNG_UST__TP_SESSION_CHECK(session, __chan_common->session)) \ return; \ if (caa_unlikely(!CMM_ACCESS_ONCE(__chan_common->session->active))) \ return; \ @@ -877,29 +920,31 @@ void lttng_ust__event_probe__##_provider##___##_name(LTTNG_UST__TP_ARGS_DATA_PRO } \ if (caa_unlikely(!CMM_ACCESS_ONCE(__event->enabled))) \ return; \ - if (caa_unlikely(!TP_RCU_LINK_TEST())) \ + if (caa_unlikely(!LTTNG_UST_TP_RCU_LINK_TEST())) \ return; \ - if (caa_unlikely(CMM_ACCESS_ONCE(__event->eval_filter))) { \ + __probe_ctx.struct_size = sizeof(struct lttng_ust_probe_ctx); \ + __probe_ctx.ip = LTTNG_UST__TP_IP_PARAM(LTTNG_UST_TP_IP_PARAM); \ + if (caa_unlikely(CMM_ACCESS_ONCE(__event->eval_filter))) { \ lttng_ust__event_prepare_interpreter_stack__##_provider##___##_name(__stackvar.__interpreter_stack_data, \ - LTTNG_UST__TP_ARGS_DATA_VAR(_args)); \ + LTTNG_UST__TP_ARGS_DATA_VAR(_args)); \ __interpreter_stack_prepared = true; \ - if (caa_likely(__event->run_filter(__event, \ - __stackvar.__interpreter_stack_data, NULL) != LTTNG_UST_EVENT_FILTER_ACCEPT)) \ + if (caa_likely(__event->run_filter(__event, \ + __stackvar.__interpreter_stack_data, &__probe_ctx, NULL) != LTTNG_UST_EVENT_FILTER_ACCEPT)) \ return; \ } \ switch (__event->type) { \ case LTTNG_UST_EVENT_TYPE_RECORDER: \ { \ - size_t __event_len, lttng_ust__event_align; \ + size_t __event_len, lttng_ust__event_align; \ struct lttng_ust_event_recorder *lttng_ust__event_recorder = (struct lttng_ust_event_recorder *) __event->child; \ struct lttng_ust_channel_buffer *__chan = lttng_ust__event_recorder->chan; \ - struct lttng_ust_ring_buffer_ctx __ctx; \ + struct lttng_ust_ring_buffer_ctx __ctx; \ \ __event_len = lttng_ust__event_get_size__##_provider##___##_name(__stackvar.__dynamic_len, \ LTTNG_UST__TP_ARGS_DATA_VAR(_args)); \ lttng_ust__event_align = lttng_ust__event_get_align__##_provider##___##_name(LTTNG_UST__TP_ARGS_VAR(_args)); \ lttng_ust_ring_buffer_ctx_init(&__ctx, lttng_ust__event_recorder, __event_len, lttng_ust__event_align, \ - LTTNG_UST__TP_IP_PARAM(LTTNG_UST_TP_IP_PARAM)); \ + &__probe_ctx); \ __ret = __chan->ops->event_reserve(&__ctx); \ if (__ret < 0) \ return; \ @@ -917,10 +962,11 @@ void lttng_ust__event_probe__##_provider##___##_name(LTTNG_UST__TP_ARGS_DATA_PRO \ if (caa_unlikely(!__interpreter_stack_prepared && __notif_ctx.eval_capture)) \ lttng_ust__event_prepare_interpreter_stack__##_provider##___##_name(__stackvar.__interpreter_stack_data, \ - LTTNG_UST__TP_ARGS_DATA_VAR(_args)); \ + LTTNG_UST__TP_ARGS_DATA_VAR(_args)); \ \ - lttng_ust__event_notifier->notification_send(lttng_ust__event_notifier, \ + lttng_ust__event_notifier->notification_send(lttng_ust__event_notifier, \ __stackvar.__interpreter_stack_data, \ + &__probe_ctx, \ &__notif_ctx); \ break; \ } \ @@ -1122,10 +1168,10 @@ static struct lttng_ust_registered_probe *LTTNG_UST__TP_COMBINE_TOKENS(lttng_ust /* Reset all macros within LTTNG_UST_TRACEPOINT_EVENT */ #include static void -LTTNG_UST__TP_COMBINE_TOKENS(__lttng_ust_events_init__, LTTNG_UST_TRACEPOINT_PROVIDER)(void) +LTTNG_UST__TP_COMBINE_TOKENS(lttng_ust__events_init__, LTTNG_UST_TRACEPOINT_PROVIDER)(void) lttng_ust_notrace __attribute__((constructor)); static void -LTTNG_UST__TP_COMBINE_TOKENS(__lttng_ust_events_init__, LTTNG_UST_TRACEPOINT_PROVIDER)(void) +LTTNG_UST__TP_COMBINE_TOKENS(lttng_ust__events_init__, LTTNG_UST_TRACEPOINT_PROVIDER)(void) { struct lttng_ust_registered_probe *reg_probe; @@ -1152,10 +1198,10 @@ LTTNG_UST__TP_COMBINE_TOKENS(__lttng_ust_events_init__, LTTNG_UST_TRACEPOINT_PRO } static void -LTTNG_UST__TP_COMBINE_TOKENS(__lttng_ust_events_exit__, LTTNG_UST_TRACEPOINT_PROVIDER)(void) +LTTNG_UST__TP_COMBINE_TOKENS(lttng_ust__events_exit__, LTTNG_UST_TRACEPOINT_PROVIDER)(void) lttng_ust_notrace __attribute__((destructor)); static void -LTTNG_UST__TP_COMBINE_TOKENS(__lttng_ust_events_exit__, LTTNG_UST_TRACEPOINT_PROVIDER)(void) +LTTNG_UST__TP_COMBINE_TOKENS(lttng_ust__events_exit__, LTTNG_UST_TRACEPOINT_PROVIDER)(void) { if (--LTTNG_UST__TP_COMBINE_TOKENS(lttng_ust__probe_register_refcount___, LTTNG_UST_TRACEPOINT_PROVIDER)) {