X-Git-Url: https://git.liburcu.org/?a=blobdiff_plain;f=include%2Fust%2Fmarker.h;h=e8608a96b2c700740b09378ef517c3562be1b780;hb=fd0a1aea7b67696a87ffe70b8d3d8c15424f0bca;hp=41ae10ab4a07301ed63fc998f8d592dffe2d61e0;hpb=535b0d0af1b6421ceb83e22821e85bc6919d16d9;p=ust.git diff --git a/include/ust/marker.h b/include/ust/marker.h index 41ae10a..e8608a9 100644 --- a/include/ust/marker.h +++ b/include/ust/marker.h @@ -26,12 +26,13 @@ */ #include +#include +#include #include #include -#include -#include struct ust_marker; +struct ust_marker_probe_array; /** * ust_marker_probe_func - Type of a marker probe function @@ -64,11 +65,11 @@ struct ust_marker { char state; /* State. */ char ptype; /* probe type : 0 : single, 1 : multi */ /* Probe wrapper */ - u16 channel_id; /* Numeric channel identifier, dynamic */ - u16 event_id; /* Numeric event identifier, dynamic */ + uint16_t channel_id; /* Numeric channel identifier, dynamic */ + uint16_t event_id; /* Numeric event identifier, dynamic */ void (*call)(const struct ust_marker *mdata, void *call_private, ...); struct ust_marker_probe_closure single; - struct ust_marker_probe_closure *multi; + struct ust_marker_probe_array *multi; const char *tp_name; /* Optional tracepoint name */ void *tp_cb; /* Optional tracepoint callback */ }; @@ -109,7 +110,7 @@ struct ust_marker { do { \ _DEFINE_UST_MARKER(channel, name, NULL, NULL, format); \ __ust_marker_check_format(format, ## args); \ - if (unlikely(__ust_marker_def_##name.state)) \ + if (__builtin_expect(!!(__ust_marker_def_##name.state), 0)) \ (__ust_marker_def_##name.call) \ (&__ust_marker_def_##name, call_private,\ ## args); \ @@ -138,7 +139,8 @@ void __trace_mark_is_deprecated() /* To be used for string format validity checking with gcc */ static inline -void __printf(1, 2) ___ust_marker_check_format(const char *fmt, ...) +void __attribute__((format(printf, 1, 2))) + ___ust_marker_check_format(const char *fmt, ...) { }