| 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
 |