diff options
Diffstat (limited to 'src/include/pg_trace.h')
-rw-r--r-- | src/include/pg_trace.h | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/src/include/pg_trace.h b/src/include/pg_trace.h new file mode 100644 index 00000000000..6c35cb2e8dd --- /dev/null +++ b/src/include/pg_trace.h @@ -0,0 +1,56 @@ +/* ---------- + * pg_trace.h + * + * Definitions for the PostgreSQL tracing framework + * + * Copyright (c) 2006, PostgreSQL Global Development Group + * + * $PostgreSQL: pgsql/src/include/pg_trace.h,v 1.1 2006/07/24 16:32:45 petere Exp $ + * ---------- + */ + +#ifndef PG_TRACE_H +#define PG_TRACE_H + +#ifdef ENABLE_DTRACE + +#include <sys/sdt.h> + +/* + * The PG_TRACE macros are mapped to the appropriate macros used by DTrace. + * + * Only one DTrace provider called "postgresql" will be used for PostgreSQL, + * so the name is hard-coded here to avoid having to specify it in the + * source code. + */ + +#define PG_TRACE(name) \ + DTRACE_PROBE(postgresql, name) +#define PG_TRACE1(name, arg1) \ + DTRACE_PROBE1(postgresql, name, arg1) +#define PG_TRACE2(name, arg1, arg2) \ + DTRACE_PROBE2(postgresql, name, arg1, arg2) +#define PG_TRACE3(name, arg1, arg2, arg3) \ + DTRACE_PROBE3(postgresql, name, arg1, arg2, arg3) +#define PG_TRACE4(name, arg1, arg2, arg3, arg4) \ + DTRACE_PROBE4(postgresql, name, arg1, arg2, arg3, arg4) +#define PG_TRACE5(name, arg1, arg2, arg3, arg4, arg5) \ + DTRACE_PROBE5(postgresql, name, arg1, arg2, arg3, arg4, arg5) + +#else /* not ENABLE_DTRACE */ + +/* + * Unless DTrace is explicitly enabled with --enable-dtrace, the PG_TRACE + * macros will expand to no-ops. + */ + +#define PG_TRACE(name) +#define PG_TRACE1(name, arg1) +#define PG_TRACE2(name, arg1, arg2) +#define PG_TRACE3(name, arg1, arg2, arg3) +#define PG_TRACE4(name, arg1, arg2, arg3, arg4) +#define PG_TRACE5(name, arg1, arg2, arg3, arg4, arg5) + +#endif /* not ENABLE_DTRACE */ + +#endif /* PG_TRACE_H */ |