Declare RTS-private prototypes with __attribute__((visibility("hidden")))
[ghc-hetmet.git] / rts / RtsSignals.h
index 6d9374a..3b569df 100644 (file)
@@ -6,10 +6,10 @@
  *
  * ---------------------------------------------------------------------------*/
 
-#ifndef RTS_SIGNALS_H
-#define RTS_SIGNALS_H
+#ifndef RTSSIGNALS_H
+#define RTSSIGNALS_H
 
-#if !defined(PAR) && !defined(mingw32_HOST_OS)
+#if !defined(mingw32_HOST_OS)
 
 #include "posix/Signals.h"
 
 
 #include "win32/ConsoleHandler.h"
 
-#else /* PAR */
+#else
 
 #define signals_pending() (rtsFalse)
 
-#endif /* PAR */
-
+#endif
 
 #if RTS_USER_SIGNALS
 
+#pragma GCC visibility push(hidden)
+
 /*
  * Function: initUserSignals()
  *
  * Initialize the console handling substrate.
  */
-extern void initUserSignals(void);
+void initUserSignals(void);
 
 /*
  * Function: initDefaultHandlers()
@@ -39,9 +40,10 @@ extern void initUserSignals(void);
  * Install any default signal/console handlers. Currently we install a
  * Ctrl+C handler that shuts down the RTS in an orderly manner.
  */
-extern void initDefaultHandlers(void);
+void initDefaultHandlers(void);
+void resetDefaultHandlers(void);
 
-extern void freeSignalHandlers(void);
+void freeSignalHandlers(void);
 
 /*
  * Function: blockUserSignals()
@@ -51,21 +53,21 @@ extern void freeSignalHandlers(void);
  * when emptying the queue by running the handlers.
  * 
  */
-extern void blockUserSignals(void);
+void blockUserSignals(void);
 
 /*
  * Function: unblockUserSignals()
  *
  * The inverse of blockUserSignals(); re-enable the deliver of console events.
  */
-extern void unblockUserSignals(void);
+void unblockUserSignals(void);
 
 /*
  * Function: awaitUserSignals()
  *
  * Wait for the next console event. Currently a NOP (returns immediately.)
  */
-extern void awaitUserSignals(void);
+void awaitUserSignals(void);
 
 /*
  * Function: markSignalHandlers()
@@ -73,8 +75,10 @@ extern void awaitUserSignals(void);
  * Evacuate the handler queue. _Assumes_ that console event delivery
  * has already been blocked.
  */
-extern void markSignalHandlers (evac_fn evac);
+void markSignalHandlers (evac_fn evac, void *user);
+
+#pragma GCC visibility pop
 
 #endif /* RTS_USER_SIGNALS */
 
-#endif /* RTS_SIGNALS_H */
+#endif /* RTSSIGNALS_H */