Tidy up file headers and copyrights; point to the wiki for docs
[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     setIOManagerPipe   (int fd);
30
31 #endif
32
33 //
34 // Communicating with the IO manager thread (see GHC.Conc).
35 // Posix implementation in posix/Signals.c
36 // Win32 implementation in win32/ThrIOManager.c
37 //
38 #if defined(THREADED_RTS)
39 void ioManagerWakeup (void);
40 void ioManagerDie (void);
41 void ioManagerStart (void);
42 #endif
43
44 #endif /* RTS_IOMANAGER_H */