1 /* -----------------------------------------------------------------------------
3 * (c) The GHC Team, 1998-2009
5 * IO Manager functionality in the RTS
7 * Do not #include this file directly: #include "Rts.h" instead.
9 * To understand the structure of the RTS headers, see the wiki:
10 * http://hackage.haskell.org/trac/ghc/wiki/Commentary/SourceTree/Includes
12 * -------------------------------------------------------------------------- */
14 #ifndef RTS_IOMANAGER_H
15 #define RTS_IOMANAGER_H
17 #if defined(mingw32_HOST_OS)
19 int rts_InstallConsoleEvent ( int action, StgStablePtr *handler );
20 void rts_ConsoleHandlerDone ( int ev );
21 extern StgInt console_handler;
23 void * getIOManagerEvent (void);
24 HsWord32 readIOManagerEvent (void);
25 void sendIOManagerEvent (HsWord32 event);
29 void setIOManagerControlFd (int fd);
30 void setIOManagerWakeupFd (int fd);
35 // Communicating with the IO manager thread (see GHC.Conc).
36 // Posix implementation in posix/Signals.c
37 // Win32 implementation in win32/ThrIOManager.c
39 void ioManagerWakeup (void);
40 #if defined(THREADED_RTS)
41 void ioManagerDie (void);
42 void ioManagerStart (void);
45 #endif /* RTS_IOMANAGER_H */