| 1 | #ifndef MYCPP_PROBES_H
|
| 2 | #define MYCPP_PROBES_H
|
| 3 |
|
| 4 | #include "_build/detected-cpp-config.h" // for HAVE_SYSTEMTAP_SDT
|
| 5 |
|
| 6 | #if HAVE_SYSTEMTAP_SDT && !defined(__ILP32__)
|
| 7 | // When -m32 is passed, <sys/sdt.h> may not be available.
|
| 8 | // So disable it under __ILP32__
|
| 9 | // https://docs.oracle.com/cd/E19620-01/805-3024/lp64-1/index.html
|
| 10 |
|
| 11 | // __has_include() also seems to work, but technically it's C++17, even
|
| 12 | // though it works with -std=c++11
|
| 13 | // #if HAVE_SYSTEMTAP_SDT && __has_include(<sys/sdt.h>)
|
| 14 |
|
| 15 | #include <sys/sdt.h>
|
| 16 | #else
|
| 17 | #define DTRACE_PROBE(provider, probe)
|
| 18 | #define DTRACE_PROBE1(provider, probe, parm1)
|
| 19 | #define DTRACE_PROBE2(provider, probe, parm1, parm2)
|
| 20 | #define DTRACE_PROBE3(provider, probe, parm1, parm2, parm3)
|
| 21 | #define DTRACE_PROBE4(provider, probe, parm1, parm2, parm3, parm4)
|
| 22 | #define DTRACE_PROBE5(provider, probe, parm1, parm2, parm3, parm4, parm5)
|
| 23 | #define DTRACE_PROBE6(provider, probe, parm1, parm2, parm3, parm4, parm5, \
|
| 24 | parm6)
|
| 25 | #define DTRACE_PROBE7(provider, probe, parm1, parm2, parm3, parm4, parm5, \
|
| 26 | parm6, parm7)
|
| 27 | #define DTRACE_PROBE8(provider, probe, parm1, parm2, parm3, parm4, parm5, \
|
| 28 | parm6, parm7, parm8)
|
| 29 | #define DTRACE_PROBE9(provider, probe, parm1, parm2, parm3, parm4, parm5, \
|
| 30 | parm6, parm7, parm8, parm9)
|
| 31 | #define DTRACE_PROBE10(provider, probe, parm1, parm2, parm3, parm4, parm5, \
|
| 32 | parm6, parm7, parm8, parm9, parm10)
|
| 33 | #define DTRACE_PROBE11(provider, probe, parm1, parm2, parm3, parm4, parm5, \
|
| 34 | parm6, parm7, parm8, parm9, parm10, parm11)
|
| 35 | #define DTRACE_PROBE12(provider, probe, parm1, parm2, parm3, parm4, parm5, \
|
| 36 | parm6, parm7, parm8, parm9, parm10, parm11, parm12)
|
| 37 | #endif
|
| 38 |
|
| 39 | #endif // MYCPP_PROBES_H
|