EventLog.h 1.46 KB
Newer Older
Simon Marlow's avatar
Simon Marlow committed
1 2 3 4 5 6 7 8 9 10 11
/* -----------------------------------------------------------------------------
 *
 * (c) The GHC Team, 2008-2009
 *
 * Support for fast binary event logging.
 *
 * ---------------------------------------------------------------------------*/

#ifndef EVENTLOG_H
#define EVENTLOG_H

Simon Marlow's avatar
Simon Marlow committed
12
#include "rts/EventLogFormat.h"
Simon Marlow's avatar
Simon Marlow committed
13 14
#include "Capability.h"

15
BEGIN_RTS_PRIVATE
16

17
#ifdef TRACING
Simon Marlow's avatar
Simon Marlow committed
18 19 20 21 22 23 24 25 26 27 28 29 30

/*
 * Descriptions of EventTags for events.
 */
extern char *EventTagDesc[];

void initEventLogging(void);
void endEventLogging(void);
void freeEventLogging(void);

/* 
 * Post an event to the capability's event buffer.
 */
31 32 33 34 35
void postSchedEvent(Capability *cap, EventTypeNum tag, 
                    StgThreadID id, StgWord64 other);

void postMsg(char *msg, va_list ap);

36 37
void postUserMsg(Capability *cap, char *msg);

38
void postCapMsg(Capability *cap, char *msg, va_list ap);
Simon Marlow's avatar
Simon Marlow committed
39

40 41 42 43 44 45 46 47 48 49 50
#else /* !TRACING */

INLINE_HEADER void postSchedEvent (Capability *cap  STG_UNUSED,
                                   EventTypeNum tag STG_UNUSED,
                                   StgThreadID id   STG_UNUSED,
                                   StgWord64 other  STG_UNUSED)
{ /* nothing */ }

INLINE_HEADER void postMsg (char *msg STG_UNUSED, 
                            va_list ap STG_UNUSED)
{ /* nothing */ }
Simon Marlow's avatar
Simon Marlow committed
51

52 53 54 55
INLINE_HEADER void postCapMsg (Capability *cap,
                               char *msg STG_UNUSED, 
                               va_list ap STG_UNUSED)
{ /* nothing */ }
Simon Marlow's avatar
Simon Marlow committed
56 57 58

#endif

59
END_RTS_PRIVATE
60

61
#endif /* TRACING_H */