27 #include <sys/sdt.h> |
27 #include <sys/sdt.h> |
28 |
28 |
29 #define DTRACE_ONLY(x) x |
29 #define DTRACE_ONLY(x) x |
30 #define NOT_DTRACE(x) |
30 #define NOT_DTRACE(x) |
31 |
31 |
|
32 // Work around dtrace tail call bug 6672627 until it is fixed in solaris 10. |
|
33 #define HS_DTRACE_WORKAROUND_TAIL_CALL_BUG() \ |
|
34 do { volatile size_t dtrace_workaround_tail_call_bug = 1; } while (0) |
|
35 |
32 #else // ndef SOLARIS || ndef DTRACE_ENABLED |
36 #else // ndef SOLARIS || ndef DTRACE_ENABLED |
33 |
37 |
34 #define DTRACE_ONLY(x) |
38 #define DTRACE_ONLY(x) |
35 #define NOT_DTRACE(x) x |
39 #define NOT_DTRACE(x) x |
36 |
40 |
38 #define DTRACE_PROBE1(a,b,c) {;} |
42 #define DTRACE_PROBE1(a,b,c) {;} |
39 #define DTRACE_PROBE2(a,b,c,d) {;} |
43 #define DTRACE_PROBE2(a,b,c,d) {;} |
40 #define DTRACE_PROBE3(a,b,c,d,e) {;} |
44 #define DTRACE_PROBE3(a,b,c,d,e) {;} |
41 #define DTRACE_PROBE4(a,b,c,d,e,f) {;} |
45 #define DTRACE_PROBE4(a,b,c,d,e,f) {;} |
42 #define DTRACE_PROBE5(a,b,c,d,e,f,g) {;} |
46 #define DTRACE_PROBE5(a,b,c,d,e,f,g) {;} |
|
47 |
|
48 #define HS_DTRACE_WORKAROUND_TAIL_CALL_BUG() |
43 |
49 |
44 #endif |
50 #endif |
45 |
51 |
46 #define HS_DTRACE_PROBE_FN(provider,name)\ |
52 #define HS_DTRACE_PROBE_FN(provider,name)\ |
47 __dtrace_##provider##___##name |
53 __dtrace_##provider##___##name |