X-Git-Url: http://git.liburcu.org/?a=blobdiff_plain;f=include%2Flttng%2Fust-tracepoint-event.h;h=801ccda40a5ca354fffdfa8ef0e8a1e9d8bcb311;hb=f3b06377a014332947b20cc4c266369ea85ddcfa;hp=df3aebf6e0aa19b3ed17dbcfba981b8820512e86;hpb=b4064f282fc27c80f17166b1439442d6ddd118b2;p=lttng-ust.git diff --git a/include/lttng/ust-tracepoint-event.h b/include/lttng/ust-tracepoint-event.h index df3aebf6..801ccda4 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(lttng_ust_tp_rcu_dereference((head)->next), __typeof__(*pos), member); \ - &pos->member != (head); \ - pos = cds_list_entry(lttng_ust_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 */ @@ -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,8 +341,8 @@ 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, { \ @@ -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, \ @@ -419,23 +461,23 @@ static void lttng_ust__event_probe__##_provider##___##_name(LTTNG_UST__TP_ARGS_D __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,18 +488,18 @@ 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) \ +#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 @@ -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,13 +662,13 @@ 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) \ +#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 @@ -667,21 +709,21 @@ void lttng_ust__event_prepare_interpreter_stack__##_provider##___##_name(char *_ (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,18 +732,18 @@ 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) \ +#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 @@ -744,23 +786,23 @@ size_t lttng_ust__event_get_align__##_provider##___##_name(LTTNG_UST__TP_ARGS_PR __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,11 +823,11 @@ 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) \ +#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 */