Index: generic/nsfInt.h =================================================================== diff -u -r19ef72a5f87241def42fa2a2ec15e28a8717b59b -r0078146a2bcee10f8f7f65313b86b288f6d2f652 --- generic/nsfInt.h (.../nsfInt.h) (revision 19ef72a5f87241def42fa2a2ec15e28a8717b59b) +++ generic/nsfInt.h (.../nsfInt.h) (revision 0078146a2bcee10f8f7f65313b86b288f6d2f652) @@ -28,9 +28,29 @@ #endif #if defined(NSF_PROFILE) -# include +# include #endif +#if defined(NSF_DTRACE) +# include "nsfDTrace.h" +# if defined(__GNUC__) && __GNUC__ > 2 +/* Use gcc branch prediction hint to minimize cost of DTrace ENABLED checks. */ +# define unlikely(x) (__builtin_expect((x), 0)) +# else +# define unlikely(x) (x) +# endif +# define NSF_DTRACE_METHOD_ENTRY_ENABLED() unlikely(NSF_METHOD_ENTRY_ENABLED()) +# define NSF_DTRACE_METHOD_RETURN_ENABLED() unlikely(NSF_METHOD_RETURN_ENABLED()) +# define NSF_DTRACE_METHOD_ENTRY(a0, a1, a2, a3) NSF_METHOD_ENTRY(a0, a1, a2, a3) +# define NSF_DTRACE_METHOD_RETURN(a0, a1, a2) NSF_METHOD_RETURN(a0, a1, a2) +#else +# define NSF_DTRACE_METHOD_ENTRY_ENABLED() 0 +# define NSF_DTRACE_METHOD_RETURN_ENABLED() 0 +# define NSF_DTRACE_METHOD_ENTRY(a0, a1, a2, a3) {} +# define NSF_DTRACE_METHOD_RETURN(a0, a1, a2) {} +#endif + + #ifdef DMALLOC # include "dmalloc.h" #endif