From 87d85b96a2f7719c1f5f580cf643c47433bfdf63 Mon Sep 17 00:00:00 2001 From: "Frank Ch. Eigler" Date: Wed, 10 Mar 2010 11:18:11 -0500 Subject: [PATCH] sdt.h: rename volatile-control macro to STAP_SDT_VOLATILE. Document in NEWS. --- NEWS | 4 +- includes/sys/sdt.h | 120 +++++++++++++++++++++++---------------------- 2 files changed, 64 insertions(+), 60 deletions(-) diff --git a/NEWS b/NEWS index fbdb2f673..e9ded314f 100644 --- a/NEWS +++ b/NEWS @@ -5,7 +5,9 @@ ordinary system functions. - User space marker arguments no longer use volatile if the version of gcc, - which must be at least 4.4.4, supports richer DWARF debuginfo. + which must be at least 4.4.4, supports richer DWARF debuginfo. Use cflags + -DSTAP_SDT_VOLATILE=volatile or -DSTAP_SDT_VOLATILE= when building + the sys/sdt.h application to override this one way or another. - A new construct for error handling is available. It is similar to c++ exception catching, using try and catch as new keywords. Within a handler diff --git a/includes/sys/sdt.h b/includes/sys/sdt.h index 971b0c8b1..ed4b4af64 100644 --- a/includes/sys/sdt.h +++ b/includes/sys/sdt.h @@ -83,13 +83,15 @@ #ifndef __GNUC_RH_RELEASE__ #define __GNUC_RH_RELEASE__ 0 #endif + +#ifndef STAP_SDT_VOLATILE /* allow users to override */ #define GNUC_VERSION (__GNUC__ * 1000000 + __GNUC_MINOR__ * 10000 + __GNUC_PATCHLEVEL__ * 100 + __GNUC_RH_RELEASE__) -#if GNUC_VERSION >= 4040400 && ! defined VOLATILE -#define VOLATILE_ARG +#if GNUC_VERSION >= 4040400 +#define STAP_SDT_VOLATILE #else -#define VOLATILE_ARG volatile +#define STAP_SDT_VOLATILE volatile +#endif #endif - #define STAP_PROBE_(probe) \ do { \ STAP_PROBE_DATA(probe,STAP_UPROBE_GUARD,2f); \ @@ -99,7 +101,7 @@ do { \ #define STAP_PROBE1_(probe,label,parm1) \ do STAP_SEMAPHORE(probe) { \ - VOLATILE_ARG __typeof__((parm1)) arg1 = parm1; \ + STAP_SDT_VOLATILE __typeof__((parm1)) arg1 = parm1; \ STAP_UNINLINE; \ STAP_PROBE_DATA(probe,STAP_UPROBE_GUARD,2f); \ __asm__ volatile ("2:\n" \ @@ -108,8 +110,8 @@ do STAP_SEMAPHORE(probe) { \ #define STAP_PROBE2_(probe,label,parm1,parm2) \ do STAP_SEMAPHORE(probe) { \ - VOLATILE_ARG __typeof__((parm1)) arg1 = parm1; \ - VOLATILE_ARG __typeof__((parm2)) arg2 = parm2; \ + STAP_SDT_VOLATILE __typeof__((parm1)) arg1 = parm1; \ + STAP_SDT_VOLATILE __typeof__((parm2)) arg2 = parm2; \ STAP_UNINLINE; \ STAP_PROBE_DATA(probe,STAP_UPROBE_GUARD,2f); \ __asm__ volatile ("2:\n" \ @@ -118,9 +120,9 @@ do STAP_SEMAPHORE(probe) { \ #define STAP_PROBE3_(probe,label,parm1,parm2,parm3) \ do STAP_SEMAPHORE(probe) { \ - VOLATILE_ARG __typeof__((parm1)) arg1 = parm1; \ - VOLATILE_ARG __typeof__((parm2)) arg2 = parm2; \ - VOLATILE_ARG __typeof__((parm3)) arg3 = parm3; \ + STAP_SDT_VOLATILE __typeof__((parm1)) arg1 = parm1; \ + STAP_SDT_VOLATILE __typeof__((parm2)) arg2 = parm2; \ + STAP_SDT_VOLATILE __typeof__((parm3)) arg3 = parm3; \ STAP_UNINLINE; \ STAP_PROBE_DATA(probe,STAP_UPROBE_GUARD,2f); \ __asm__ volatile ("2:\n" \ @@ -129,10 +131,10 @@ do STAP_SEMAPHORE(probe) { \ #define STAP_PROBE4_(probe,label,parm1,parm2,parm3,parm4) \ do STAP_SEMAPHORE(probe) { \ - VOLATILE_ARG __typeof__((parm1)) arg1 = parm1; \ - VOLATILE_ARG __typeof__((parm2)) arg2 = parm2; \ - VOLATILE_ARG __typeof__((parm3)) arg3 = parm3; \ - VOLATILE_ARG __typeof__((parm4)) arg4 = parm4; \ + STAP_SDT_VOLATILE __typeof__((parm1)) arg1 = parm1; \ + STAP_SDT_VOLATILE __typeof__((parm2)) arg2 = parm2; \ + STAP_SDT_VOLATILE __typeof__((parm3)) arg3 = parm3; \ + STAP_SDT_VOLATILE __typeof__((parm4)) arg4 = parm4; \ STAP_UNINLINE; \ STAP_PROBE_DATA(probe,STAP_UPROBE_GUARD,2f); \ __asm__ volatile ("2:\n" \ @@ -141,11 +143,11 @@ do STAP_SEMAPHORE(probe) { \ #define STAP_PROBE5_(probe,label,parm1,parm2,parm3,parm4,parm5) \ do STAP_SEMAPHORE(probe) { \ - VOLATILE_ARG __typeof__((parm1)) arg1 = parm1; \ - VOLATILE_ARG __typeof__((parm2)) arg2 = parm2; \ - VOLATILE_ARG __typeof__((parm3)) arg3 = parm3; \ - VOLATILE_ARG __typeof__((parm4)) arg4 = parm4; \ - VOLATILE_ARG __typeof__((parm5)) arg5 = parm5; \ + STAP_SDT_VOLATILE __typeof__((parm1)) arg1 = parm1; \ + STAP_SDT_VOLATILE __typeof__((parm2)) arg2 = parm2; \ + STAP_SDT_VOLATILE __typeof__((parm3)) arg3 = parm3; \ + STAP_SDT_VOLATILE __typeof__((parm4)) arg4 = parm4; \ + STAP_SDT_VOLATILE __typeof__((parm5)) arg5 = parm5; \ STAP_UNINLINE; \ STAP_PROBE_DATA(probe,STAP_UPROBE_GUARD,2f); \ __asm__ volatile ("2:\n" \ @@ -154,12 +156,12 @@ do STAP_SEMAPHORE(probe) { \ #define STAP_PROBE6_(probe,label,parm1,parm2,parm3,parm4,parm5,parm6) \ do STAP_SEMAPHORE(probe) { \ - VOLATILE_ARG __typeof__((parm1)) arg1 = parm1; \ - VOLATILE_ARG __typeof__((parm2)) arg2 = parm2; \ - VOLATILE_ARG __typeof__((parm3)) arg3 = parm3; \ - VOLATILE_ARG __typeof__((parm4)) arg4 = parm4; \ - VOLATILE_ARG __typeof__((parm5)) arg5 = parm5; \ - VOLATILE_ARG __typeof__((parm6)) arg6 = parm6; \ + STAP_SDT_VOLATILE __typeof__((parm1)) arg1 = parm1; \ + STAP_SDT_VOLATILE __typeof__((parm2)) arg2 = parm2; \ + STAP_SDT_VOLATILE __typeof__((parm3)) arg3 = parm3; \ + STAP_SDT_VOLATILE __typeof__((parm4)) arg4 = parm4; \ + STAP_SDT_VOLATILE __typeof__((parm5)) arg5 = parm5; \ + STAP_SDT_VOLATILE __typeof__((parm6)) arg6 = parm6; \ STAP_UNINLINE; \ STAP_PROBE_DATA(probe,STAP_UPROBE_GUARD,2f); \ __asm__ volatile ("2:\n" \ @@ -168,13 +170,13 @@ do STAP_SEMAPHORE(probe) { \ #define STAP_PROBE7_(probe,label,parm1,parm2,parm3,parm4,parm5,parm6,parm7) \ do STAP_SEMAPHORE(probe) { \ - VOLATILE_ARG __typeof__((parm1)) arg1 = parm1; \ - VOLATILE_ARG __typeof__((parm2)) arg2 = parm2; \ - VOLATILE_ARG __typeof__((parm3)) arg3 = parm3; \ - VOLATILE_ARG __typeof__((parm4)) arg4 = parm4; \ - VOLATILE_ARG __typeof__((parm5)) arg5 = parm5; \ - VOLATILE_ARG __typeof__((parm6)) arg6 = parm6; \ - VOLATILE_ARG __typeof__((parm7)) arg7 = parm7; \ + STAP_SDT_VOLATILE __typeof__((parm1)) arg1 = parm1; \ + STAP_SDT_VOLATILE __typeof__((parm2)) arg2 = parm2; \ + STAP_SDT_VOLATILE __typeof__((parm3)) arg3 = parm3; \ + STAP_SDT_VOLATILE __typeof__((parm4)) arg4 = parm4; \ + STAP_SDT_VOLATILE __typeof__((parm5)) arg5 = parm5; \ + STAP_SDT_VOLATILE __typeof__((parm6)) arg6 = parm6; \ + STAP_SDT_VOLATILE __typeof__((parm7)) arg7 = parm7; \ STAP_UNINLINE; \ STAP_PROBE_DATA(probe,STAP_UPROBE_GUARD,2f); \ __asm__ volatile ("2:\n" \ @@ -183,14 +185,14 @@ do STAP_SEMAPHORE(probe) { \ #define STAP_PROBE8_(probe,label,parm1,parm2,parm3,parm4,parm5,parm6,parm7,parm8) \ do STAP_SEMAPHORE(probe) { \ - VOLATILE_ARG __typeof__((parm1)) arg1 = parm1; \ - VOLATILE_ARG __typeof__((parm2)) arg2 = parm2; \ - VOLATILE_ARG __typeof__((parm3)) arg3 = parm3; \ - VOLATILE_ARG __typeof__((parm4)) arg4 = parm4; \ - VOLATILE_ARG __typeof__((parm5)) arg5 = parm5; \ - VOLATILE_ARG __typeof__((parm6)) arg6 = parm6; \ - VOLATILE_ARG __typeof__((parm7)) arg7 = parm7; \ - VOLATILE_ARG __typeof__((parm8)) arg8 = parm8; \ + STAP_SDT_VOLATILE __typeof__((parm1)) arg1 = parm1; \ + STAP_SDT_VOLATILE __typeof__((parm2)) arg2 = parm2; \ + STAP_SDT_VOLATILE __typeof__((parm3)) arg3 = parm3; \ + STAP_SDT_VOLATILE __typeof__((parm4)) arg4 = parm4; \ + STAP_SDT_VOLATILE __typeof__((parm5)) arg5 = parm5; \ + STAP_SDT_VOLATILE __typeof__((parm6)) arg6 = parm6; \ + STAP_SDT_VOLATILE __typeof__((parm7)) arg7 = parm7; \ + STAP_SDT_VOLATILE __typeof__((parm8)) arg8 = parm8; \ STAP_UNINLINE; \ STAP_PROBE_DATA(probe,STAP_UPROBE_GUARD,2f); \ __asm__ volatile ("2:\n" \ @@ -199,15 +201,15 @@ do STAP_SEMAPHORE(probe) { \ #define STAP_PROBE9_(probe,label,parm1,parm2,parm3,parm4,parm5,parm6,parm7,parm8,parm9) \ do STAP_SEMAPHORE(probe) { \ - VOLATILE_ARG __typeof__((parm1)) arg1 = parm1; \ - VOLATILE_ARG __typeof__((parm2)) arg2 = parm2; \ - VOLATILE_ARG __typeof__((parm3)) arg3 = parm3; \ - VOLATILE_ARG __typeof__((parm4)) arg4 = parm4; \ - VOLATILE_ARG __typeof__((parm5)) arg5 = parm5; \ - VOLATILE_ARG __typeof__((parm6)) arg6 = parm6; \ - VOLATILE_ARG __typeof__((parm7)) arg7 = parm7; \ - VOLATILE_ARG __typeof__((parm8)) arg8 = parm8; \ - VOLATILE_ARG __typeof__((parm9)) arg9 = parm9; \ + STAP_SDT_VOLATILE __typeof__((parm1)) arg1 = parm1; \ + STAP_SDT_VOLATILE __typeof__((parm2)) arg2 = parm2; \ + STAP_SDT_VOLATILE __typeof__((parm3)) arg3 = parm3; \ + STAP_SDT_VOLATILE __typeof__((parm4)) arg4 = parm4; \ + STAP_SDT_VOLATILE __typeof__((parm5)) arg5 = parm5; \ + STAP_SDT_VOLATILE __typeof__((parm6)) arg6 = parm6; \ + STAP_SDT_VOLATILE __typeof__((parm7)) arg7 = parm7; \ + STAP_SDT_VOLATILE __typeof__((parm8)) arg8 = parm8; \ + STAP_SDT_VOLATILE __typeof__((parm9)) arg9 = parm9; \ STAP_UNINLINE; \ STAP_PROBE_DATA(probe,STAP_UPROBE_GUARD,2f); \ __asm__ volatile ("2:\n" \ @@ -216,16 +218,16 @@ do STAP_SEMAPHORE(probe) { \ #define STAP_PROBE10_(probe,label,parm1,parm2,parm3,parm4,parm5,parm6,parm7,parm8,parm9,parm10) \ do STAP_SEMAPHORE(probe) { \ - VOLATILE_ARG __typeof__((parm1)) arg1 = parm1; \ - VOLATILE_ARG __typeof__((parm2)) arg2 = parm2; \ - VOLATILE_ARG __typeof__((parm3)) arg3 = parm3; \ - VOLATILE_ARG __typeof__((parm4)) arg4 = parm4; \ - VOLATILE_ARG __typeof__((parm5)) arg5 = parm5; \ - VOLATILE_ARG __typeof__((parm6)) arg6 = parm6; \ - VOLATILE_ARG __typeof__((parm7)) arg7 = parm7; \ - VOLATILE_ARG __typeof__((parm8)) arg8 = parm8; \ - VOLATILE_ARG __typeof__((parm9)) arg9 = parm9; \ - VOLATILE_ARG __typeof__((parm10)) arg10 = parm10; \ + STAP_SDT_VOLATILE __typeof__((parm1)) arg1 = parm1; \ + STAP_SDT_VOLATILE __typeof__((parm2)) arg2 = parm2; \ + STAP_SDT_VOLATILE __typeof__((parm3)) arg3 = parm3; \ + STAP_SDT_VOLATILE __typeof__((parm4)) arg4 = parm4; \ + STAP_SDT_VOLATILE __typeof__((parm5)) arg5 = parm5; \ + STAP_SDT_VOLATILE __typeof__((parm6)) arg6 = parm6; \ + STAP_SDT_VOLATILE __typeof__((parm7)) arg7 = parm7; \ + STAP_SDT_VOLATILE __typeof__((parm8)) arg8 = parm8; \ + STAP_SDT_VOLATILE __typeof__((parm9)) arg9 = parm9; \ + STAP_SDT_VOLATILE __typeof__((parm10)) arg10 = parm10; \ STAP_UNINLINE; \ STAP_PROBE_DATA(probe,STAP_UPROBE_GUARD,2f); \ __asm__ volatile ("2:\n" \ -- 2.43.5