diff options
author | Nick Mathewson <nickm@torproject.org> | 2018-06-21 12:02:14 -0400 |
---|---|---|
committer | Nick Mathewson <nickm@torproject.org> | 2018-06-21 13:14:14 -0400 |
commit | 4bdda6d05faf24b4ff46bfcb7e40fb5d21e51259 (patch) | |
tree | 37e8b0fc3cb748365d3dddbe8984dd27386f49c9 /src/lib/trace/events.h | |
parent | 03d78126152bc79c82a4510fa654bb5a23c150cd (diff) | |
download | tor-4bdda6d05faf24b4ff46bfcb7e40fb5d21e51259.tar.gz tor-4bdda6d05faf24b4ff46bfcb7e40fb5d21e51259.zip |
Move trace into its own library in libs.
Apparently it has no testing variant.
Diffstat (limited to 'src/lib/trace/events.h')
-rw-r--r-- | src/lib/trace/events.h | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/src/lib/trace/events.h b/src/lib/trace/events.h new file mode 100644 index 0000000000..761a0f4eb8 --- /dev/null +++ b/src/lib/trace/events.h @@ -0,0 +1,45 @@ +/* Copyright (c) 2017-2018, The Tor Project, Inc. */ +/* See LICENSE for licensing information */ + +/** + * \file events.h + * \brief Header file for Tor event tracing. + **/ + +#ifndef TOR_TRACE_EVENTS_H +#define TOR_TRACE_EVENTS_H + +/* + * The following defines a generic event tracing function name that has to be + * used to trace events in the code base. + * + * That generic function is then defined by a event tracing framework. For + * instance, the "log debug" framework sends all trace events to log_debug() + * which is defined in src/trace/debug.h which can only be enabled at compile + * time (--enable-event-tracing-debug). + * + * By default, every trace events in the code base are replaced by a NOP. See + * doc/HACKING/Tracing.md for more information on how to use event tracing or + * add events. + */ + +#ifdef TOR_EVENT_TRACING_ENABLED +/* Map every trace event to a per subsystem macro. */ +#define tor_trace(subsystem, name, ...) \ + tor_trace_##subsystem(name, __VA_ARGS__) + +/* Enable event tracing for the debug framework where all trace events are + * mapped to a log_debug(). */ +#ifdef USE_EVENT_TRACING_DEBUG +#include "trace/debug.h" +#endif + +#else /* TOR_EVENT_TRACING_ENABLED */ + +/* Reaching this point, we NOP every event declaration because event tracing + * is not been enabled at compile time. */ +#define tor_trace(subsystem, name, args...) + +#endif /* TOR_EVENT_TRACING_ENABLED */ + +#endif /* TOR_TRACE_EVENTS_H */ |