diff options
Diffstat (limited to 'rts/eventlog/EventLog.h')
-rw-r--r-- | rts/eventlog/EventLog.h | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/rts/eventlog/EventLog.h b/rts/eventlog/EventLog.h new file mode 100644 index 0000000000..386730106e --- /dev/null +++ b/rts/eventlog/EventLog.h @@ -0,0 +1,52 @@ +/* ----------------------------------------------------------------------------- + * + * (c) The GHC Team, 2008-2009 + * + * Support for fast binary event logging. + * + * ---------------------------------------------------------------------------*/ + +#ifndef EVENTLOG_H +#define EVENTLOG_H + +#include "Capability.h" +#include "EventLogFormat.h" + +#ifdef EVENTLOG + +/* + * Descriptions of EventTags for events. + */ +extern char *EventTagDesc[]; + +void initEventLogging(void); +void endEventLogging(void); +void freeEventLogging(void); + +void postEvent_(Capability *cap, EventTypeNum tag, StgThreadID id, nat from); + +/* + * Post an event to the capability's event buffer. + */ +INLINE_HEADER void postEvent(Capability *cap, EventTypeNum tag, StgThreadID id, nat from) +{ + if (RtsFlags.EventLogFlags.doEventLogging) { + postEvent_(cap, tag, id, from); + } +} + +void printAndClearEventLog(Capability *cap); + +#else /* !EVENTLOG */ + +INLINE_HEADER void postEvent(Capability *cap STG_UNUSED, + EventTypeNum tag STG_UNUSED, + StgThreadID id STG_UNUSED, + nat from STG_UNUSED) +{ + /* nothing */ +} + +#endif + +#endif /* EVENTLOG_H */ |