X-Git-Url: http://git.lttng.org/?a=blobdiff_plain;f=include%2Flttng%2Fust-tracepoint-event.h;h=2bb4a38ee7df3e7f9751c94ec81a9d943d3db011;hb=4ea4f80e8c57628907b035bd1a0372f7b8faec51;hp=2b703dc57ce2b5c522ccdb8faad5c208178d833a;hpb=2c3f4c28698f497756f194ef88cd991e2cca6bb4;p=lttng-ust.git diff --git a/include/lttng/ust-tracepoint-event.h b/include/lttng/ust-tracepoint-event.h index 2b703dc5..2bb4a38e 100644 --- a/include/lttng/ust-tracepoint-event.h +++ b/include/lttng/ust-tracepoint-event.h @@ -161,6 +161,26 @@ static const char \ .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__ @@ -824,14 +844,31 @@ static const char __tp_event_signature___##_provider##___##_name[] = \ /* Reset all macros within TRACEPOINT_EVENT */ #include +/* + * Declare _loglevel___##__provider##___##__name as non-static, with + * hidden visibility for c++ handling of weakref. We do a weakref to the + * symbol in a later stage, which requires that the symbol is not + * mangled. + */ +#ifdef __cplusplus +#define LTTNG_TP_EXTERN_C extern "C" +#else +#define LTTNG_TP_EXTERN_C +#endif + #undef TRACEPOINT_LOGLEVEL #define TRACEPOINT_LOGLEVEL(__provider, __name, __loglevel) \ static const int _loglevel_value___##__provider##___##__name = __loglevel; \ -static const int *_loglevel___##__provider##___##__name = \ +LTTNG_TP_EXTERN_C const int *_loglevel___##__provider##___##__name \ + __attribute__((visibility("hidden"))) = \ &_loglevel_value___##__provider##___##__name; #include TRACEPOINT_INCLUDE +#ifdef __cplusplus +#undef LTTNG_TP_EXTERN_C +#endif + /* * Stage 6.1 of tracepoint event generation. * @@ -841,12 +878,29 @@ static const int *_loglevel___##__provider##___##__name = \ /* Reset all macros within TRACEPOINT_EVENT */ #include +/* + * Declare _model_emf_uri___##__provider##___##__name as non-static, + * with hidden visibility for c++ handling of weakref. We do a weakref + * to the symbol in a later stage, which requires that the symbol is not + * mangled. + */ +#ifdef __cplusplus +#define LTTNG_TP_EXTERN_C extern "C" +#else +#define LTTNG_TP_EXTERN_C +#endif + #undef TRACEPOINT_MODEL_EMF_URI #define TRACEPOINT_MODEL_EMF_URI(__provider, __name, __uri) \ -static const char *_model_emf_uri___##__provider##___##__name = __uri; +LTTNG_TP_EXTERN_C const char *_model_emf_uri___##__provider##___##__name \ + __attribute__((visibility("hidden"))) = __uri \ #include TRACEPOINT_INCLUDE +#ifdef __cplusplus +#undef LTTNG_TP_EXTERN_C +#endif + /* * Stage 7.1 of tracepoint event generation. *