summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xdtrace9
-rw-r--r--includes/sys/sdt.h56
2 files changed, 50 insertions, 15 deletions
diff --git a/dtrace b/dtrace
index d6d5ce21..7966e1f2 100755
--- a/dtrace
+++ b/dtrace
@@ -73,6 +73,15 @@ class provider:
self.h.write ('#define %s(arg1,arg2,arg3,arg4,arg5) STAP_PROBE%d(provider,%s,arg1,arg2,arg3,arg4,arg5)\n' % (this_probe_canon, c+1, this_probe))
elif (c == 5):
self.h.write ('#define %s(arg1,arg2,arg3,arg4,arg5,arg6) STAP_PROBE%d(provider,%s,arg1,arg2,arg3,arg4,arg5,arg6)\n' % (this_probe_canon, c+1, this_probe))
+ elif (c == 6):
+ self.h.write ('#define %s(arg1,arg2,arg3,arg4,arg5,arg6,arg7) STAP_PROBE%d(provider,%s,arg1,arg2,arg3,arg4,arg5,arg6,arg7)\n' % (this_probe_canon, c+1, this_probe))
+ elif (c == 7):
+ self.h.write ('#define %s(arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8) STAP_PROBE%d(provider,%s,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8)\n' % (this_probe_canon, c+1, this_probe))
+ elif (c == 8):
+ self.h.write ('#define %s(arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9) STAP_PROBE%d(provider,%s,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9)\n' % (this_probe_canon, c+1, this_probe))
+ elif (c == 9):
+ self.h.write('// X %d %s\n' % (c+1,this_probe_canon))
+ self.h.write ('#define %s(arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10) STAP_PROBE%d(provider,%s,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10)\n' % (this_probe_canon, c+1, this_probe))
self.h.write ('#define %s_ENABLED() 1\n' % this_probe_canon)
def get(self, arg):
diff --git a/includes/sys/sdt.h b/includes/sys/sdt.h
index d68fed6c..ef0977ea 100644
--- a/includes/sys/sdt.h
+++ b/includes/sys/sdt.h
@@ -43,30 +43,33 @@ static volatile struct _probe_ ## probe _probe_ ## probe __attribute__ ((section
// The goto _probe_ prevents the label from "drifting"
#define STAP_PROBE(provider,probe) \
- { \
-STAP_LABEL(probe,__LINE__): \
+ {__label__ STAP_LABEL(probe,__LINE__); \
+STAP_LABEL(probe,__LINE__): \
asm volatile ("nop"); \
STAP_PROBE_STRUCT(probe,(size_t)&& STAP_LABEL(probe,__LINE__)) \
STAP_LABEL_REF(probe) \
}
#define STAP_PROBE1(provider,probe,parm1) \
- {volatile typeof((parm1)) arg1 __attribute__ ((unused)) = parm1; \
-STAP_LABEL(probe,__LINE__): \
+ {__label__ STAP_LABEL(probe,__LINE__); \
+ volatile typeof((parm1)) arg1 __attribute__ ((unused)) = parm1; \
+STAP_LABEL(probe,__LINE__): \
asm volatile ("nop /* %0 */" :: "g"( arg1)); \
STAP_PROBE_STRUCT(probe,(size_t)&& STAP_LABEL(probe,__LINE__)) \
STAP_LABEL_REF(probe);}
#define STAP_PROBE2(provider,probe,parm1,parm2) \
- {volatile typeof((parm1)) arg1 __attribute__ ((unused)) = parm1; \
- volatile typeof((parm2)) arg2 __attribute__ ((unused)) = parm2; \
+ {__label__ STAP_LABEL(probe,__LINE__); \
+ volatile typeof((parm1)) arg1 __attribute__ ((unused)) = parm1; \
+ volatile typeof((parm2)) arg2 __attribute__ ((unused)) = parm2; \
STAP_LABEL(probe,__LINE__): \
asm volatile ("nop /* %0 %1 */" :: "g"(arg1), "g"(arg2)); \
STAP_PROBE_STRUCT(probe,(size_t)&& STAP_LABEL(probe,__LINE__)) \
STAP_LABEL_REF(probe);}
#define STAP_PROBE3(provider,probe,parm1,parm2,parm3) \
- {volatile typeof((parm1)) arg1 __attribute__ ((unused)) = parm1; \
+ {__label__ STAP_LABEL(probe,__LINE__); \
+ volatile typeof((parm1)) arg1 __attribute__ ((unused)) = parm1; \
volatile typeof((parm2)) arg2 __attribute__ ((unused)) = parm2; \
volatile typeof((parm3)) arg3 __attribute__ ((unused)) = parm3; \
STAP_LABEL(probe,__LINE__): \
@@ -75,17 +78,19 @@ STAP_LABEL(probe,__LINE__): \
STAP_LABEL_REF(probe);}
#define STAP_PROBE4(provider,probe,parm1,parm2,parm3,parm4) \
- {volatile typeof((parm1)) arg1 __attribute__ ((unused)) = parm1; \
+ {__label__ STAP_LABEL(probe,__LINE__); \
+ volatile typeof((parm1)) arg1 __attribute__ ((unused)) = parm1; \
volatile typeof((parm2)) arg2 __attribute__ ((unused)) = parm2; \
volatile typeof((parm3)) arg3 __attribute__ ((unused)) = parm3; \
volatile typeof((parm4)) arg4 __attribute__ ((unused)) = parm4; \
STAP_LABEL(probe,__LINE__): \
asm volatile ("nop /* %0 %1 %2 %3 */" :: "g"(arg1), "g"(arg2), "g"(arg3), "g"(arg4)); \
- STAP_PROBE_STRUCT(probe,(size_t)&& STAP_LABEL(probe,__LINE__)) \
+ STAP_PROBE_STRUCT(probe,(size_t)&& STAP_LABEL(probe,__LINE__)) \
STAP_LABEL_REF(probe);}
#define STAP_PROBE5(provider,probe,parm1,parm2,parm3,parm4,parm5) \
- {volatile typeof((parm1)) arg1 __attribute__ ((unused)) = parm1; \
+ {__label__ STAP_LABEL(probe,__LINE__); \
+ volatile typeof((parm1)) arg1 __attribute__ ((unused)) = parm1; \
volatile typeof((parm2)) arg2 __attribute__ ((unused)) = parm2; \
volatile typeof((parm3)) arg3 __attribute__ ((unused)) = parm3; \
volatile typeof((parm4)) arg4 __attribute__ ((unused)) = parm4; \
@@ -96,7 +101,8 @@ STAP_LABEL(probe,__LINE__): \
STAP_LABEL_REF(probe);}
#define STAP_PROBE6(provider,probe,parm1,parm2,parm3,parm4,parm5,parm6) \
- {volatile typeof((parm1)) arg1 __attribute__ ((unused)) = parm1; \
+ {__label__ STAP_LABEL(probe,__LINE__); \
+ volatile typeof((parm1)) arg1 __attribute__ ((unused)) = parm1; \
volatile typeof((parm2)) arg2 __attribute__ ((unused)) = parm2; \
volatile typeof((parm3)) arg3 __attribute__ ((unused)) = parm3; \
volatile typeof((parm4)) arg4 __attribute__ ((unused)) = parm4; \
@@ -108,7 +114,8 @@ STAP_LABEL(probe,__LINE__): \
STAP_LABEL_REF(probe);}
#define STAP_PROBE7(provider,probe,parm1,parm2,parm3,parm4,parm5,parm6,parm7) \
- {volatile typeof((parm1)) arg1 __attribute__ ((unused)) = parm1; \
+ {__label__ STAP_LABEL(probe,__LINE__); \
+ volatile typeof((parm1)) arg1 __attribute__ ((unused)) = parm1; \
volatile typeof((parm2)) arg2 __attribute__ ((unused)) = parm2; \
volatile typeof((parm3)) arg3 __attribute__ ((unused)) = parm3; \
volatile typeof((parm4)) arg4 __attribute__ ((unused)) = parm4; \
@@ -121,7 +128,8 @@ STAP_LABEL(probe,__LINE__): \
STAP_LABEL_REF(probe);}
#define STAP_PROBE8(provider,probe,parm1,parm2,parm3,parm4,parm5,parm6,parm7,parm8) \
- {volatile typeof((parm1)) arg1 __attribute__ ((unused)) = parm1; \
+ {__label__ STAP_LABEL(probe,__LINE__); \
+ volatile typeof((parm1)) arg1 __attribute__ ((unused)) = parm1; \
volatile typeof((parm2)) arg2 __attribute__ ((unused)) = parm2; \
volatile typeof((parm3)) arg3 __attribute__ ((unused)) = parm3; \
volatile typeof((parm4)) arg4 __attribute__ ((unused)) = parm4; \
@@ -135,7 +143,8 @@ STAP_LABEL(probe,__LINE__): \
STAP_LABEL_REF(probe);}
#define STAP_PROBE9(provider,probe,parm1,parm2,parm3,parm4,parm5,parm6,parm7,parm8,parm9) \
- {volatile typeof((parm1)) arg1 __attribute__ ((unused)) = parm1; \
+ {__label__ STAP_LABEL(probe,__LINE__); \
+ volatile typeof((parm1)) arg1 __attribute__ ((unused)) = parm1; \
volatile typeof((parm2)) arg2 __attribute__ ((unused)) = parm2; \
volatile typeof((parm3)) arg3 __attribute__ ((unused)) = parm3; \
volatile typeof((parm4)) arg4 __attribute__ ((unused)) = parm4; \
@@ -149,6 +158,23 @@ STAP_LABEL(probe,__LINE__): \
STAP_PROBE_STRUCT(probe,(size_t)&& STAP_LABEL(probe,__LINE__)) \
STAP_LABEL_REF(probe);}
+#define STAP_PROBE10(provider,probe,parm1,parm2,parm3,parm4,parm5,parm6,parm7,parm8,parm9,parm10) \
+ {__label__ STAP_LABEL(probe,__LINE__); \
+ volatile typeof((parm1)) arg1 __attribute__ ((unused)) = parm1; \
+ volatile typeof((parm2)) arg2 __attribute__ ((unused)) = parm2; \
+ volatile typeof((parm3)) arg3 __attribute__ ((unused)) = parm3; \
+ volatile typeof((parm4)) arg4 __attribute__ ((unused)) = parm4; \
+ volatile typeof((parm5)) arg5 __attribute__ ((unused)) = parm5; \
+ volatile typeof((parm6)) arg6 __attribute__ ((unused)) = parm6; \
+ volatile typeof((parm7)) arg7 __attribute__ ((unused)) = parm7; \
+ volatile typeof((parm8)) arg8 __attribute__ ((unused)) = parm8; \
+ volatile typeof((parm9)) arg9 __attribute__ ((unused)) = parm9; \
+ volatile typeof((parm10)) arg10 __attribute__ ((unused)) = parm9; \
+STAP_LABEL(probe,__LINE__): \
+ asm volatile ("nop" :: "X"(arg1), "X"(arg2), "X"(arg3), "X"(arg4), "X"(arg5), "X"(arg6), "X"(arg7), "X"(arg8), "X"(arg9), "X"(arg10)); \
+ STAP_PROBE_STRUCT(probe,(size_t)&& STAP_LABEL(probe,__LINE__)) \
+ STAP_LABEL_REF(probe);}
+
#define DTRACE_PROBE(provider,probe) \
STAP_PROBE(provider,probe)
#define DTRACE_PROBE1(provider,probe,parm1) \
@@ -169,5 +195,5 @@ STAP_PROBE7(provider,probe,parm1,parm2,parm3,parm4,parm5,parm6,parm7)
STAP_PROBE8(provider,probe,parm1,parm2,parm3,parm4,parm5,parm6,parm7,parm8)
#define DTRACE_PROBE9(provider,probe,parm1,parm2,parm3,parm4,parm5,parm6,parm7,parm8,parm9) \
STAP_PROBE9(provider,probe,parm1,parm2,parm3,parm4,parm5,parm6,parm7,parm8,parm9)
-
#endif /* sys/sdt.h */
+