Add capability sets to the event system. Contains code from Duncan Coutts.
[ghc-hetmet.git] / rts / eventlog / EventLog.h
index 0f31509..26a2e94 100644 (file)
@@ -24,13 +24,38 @@ extern char *EventTagDesc[];
 void initEventLogging(void);
 void endEventLogging(void);
 void freeEventLogging(void);
+void abortEventLogging(void); // #4512 - after fork child needs to abort
+void flushEventLog(void);     // event log inherited from parent
 
 /* 
  * Post a scheduler event to the capability's event buffer (an event
  * that has an associated thread).
  */
 void postSchedEvent(Capability *cap, EventTypeNum tag, 
-                    StgThreadID id, StgWord64 other);
+                    StgThreadID id, StgWord info1, StgWord info2);
+
+/*
+ * Post a capability set modification event
+ */
+void postCapsetModifyEvent (EventTypeNum tag,
+                            EventCapsetID capset,
+                            StgWord32 other,
+                            StgWord32 other2);
+
+/*
+ * Post a capability set event with a string payload
+ */
+void postCapsetStrEvent (EventTypeNum tag,
+                         EventCapsetID capset,
+                         char *msg);
+
+/*
+ * Post a capability set event with several strings payload
+ */
+void postCapsetVecEvent (EventTypeNum tag,
+                         EventCapsetID capset,
+                         int argc,
+                         char *msg[]);
 
 /*
  * Post a nullary event.
@@ -48,7 +73,14 @@ void postCapMsg(Capability *cap, char *msg, va_list ap);
 INLINE_HEADER void postSchedEvent (Capability *cap  STG_UNUSED,
                                    EventTypeNum tag STG_UNUSED,
                                    StgThreadID id   STG_UNUSED,
-                                   StgWord64 other  STG_UNUSED)
+                                   StgWord info1    STG_UNUSED,
+                                   StgWord info2    STG_UNUSED)
+{ /* nothing */ }
+
+INLINE_HEADER void postCapsetModifyEvent (EventTypeNum tag     STG_UNUSED,
+                                          EventCapsetID capset STG_UNUSED,
+                                          StgWord32 other      STG_UNUSED,
+                                          StgWord32 other2     STG_UNUSED)
 { /* nothing */ }
 
 INLINE_HEADER void postEvent (Capability *cap  STG_UNUSED,