+++ /dev/null
-
-#include <stdio.h>
-
-#define DTRACE_STRINGIFY(s) #s
-#define DTRACE_TOSTRING(s) DTRACE_STRINGIFY(s)
-
-#define DTRACE_NOPS \
- "nop" "\n\t" \
- "nop" "\n\t" \
- "nop" "\n\t"
-
-
-#define DTRACE_LAB(p, n) \
- "__dtrace_probe$" DTRACE_TOSTRING(%=__LINE__) DTRACE_STRINGIFY(_##p##___##n)
-
-#define DTRACE_LABEL(p, n) \
- ".section __DATA, __data\n\t" \
- ".globl " DTRACE_LAB(p, n) "\n\t" \
- DTRACE_LAB(p, n) ":\n\t" ".long 1f""\n\t" \
- ".text" "\n\t" \
- "1:"
-
-#define DTRACE_CALL(p,n) \
- DTRACE_LABEL(p,n) \
- DTRACE_NOPS
-
-#define DTRACE_CALL0ARGS(provider, name) \
- __asm volatile ( \
- DTRACE_CALL(provider, name) \
- : \
- : \
- );
-
-int deadwood()
-{
- DTRACE_CALL0ARGS(__foo__, test2)
- return 0;
-}
-
-
-int main() {
- int a = 1;
-
- while(a) {
- DTRACE_CALL0ARGS(__foo__, test1)
- }
-
- return 0;
-}