Implement TH reification of instances (Trac #1835)
[ghc-hetmet.git] / includes / rts / IOManager.h
1 /* -----------------------------------------------------------------------------
2  *
3  * (c) The GHC Team, 1998-2009
4  *
5  * IO Manager functionality in the RTS
6  *
7  * Do not #include this file directly: #include "Rts.h" instead.
8  *
9  * To understand the structure of the RTS headers, see the wiki:
10  *   http://hackage.haskell.org/trac/ghc/wiki/Commentary/SourceTree/Includes
11  *
12  * -------------------------------------------------------------------------- */
13
14 #ifndef RTS_IOMANAGER_H
15 #define RTS_IOMANAGER_H
16
17 #if defined(mingw32_HOST_OS)
18
19 int  rts_InstallConsoleEvent ( int action, StgStablePtr *handler );
20 void rts_ConsoleHandlerDone  ( int ev );
21 extern StgInt console_handler;
22
23 void *   getIOManagerEvent  (void);
24 HsWord32 readIOManagerEvent (void);
25 void     sendIOManagerEvent (HsWord32 event);
26
27 #else
28
29 void     setIOManagerControlFd   (int fd);
30 void     setIOManagerWakeupFd   (int fd);
31
32 #endif
33
34 //
35 // Communicating with the IO manager thread (see GHC.Conc).
36 // Posix implementation in posix/Signals.c
37 // Win32 implementation in win32/ThrIOManager.c
38 //
39 void ioManagerWakeup (void);
40 #if defined(THREADED_RTS)
41 void ioManagerDie (void);
42 void ioManagerStart (void);
43 #endif
44
45 #endif /* RTS_IOMANAGER_H */