8c0d2cb8beb544a2527d1ff8f9854e144d990403
[ghc-hetmet.git] / ghc / lib / cbits / stgio.h
1 #ifndef STGIO_H
2 #define STGIO_H
3
4 /* Decls for routines in ghc/lib/cbits/ only used there.
5  * This file is used when compiling the Haskell library
6  * that _ccalls_ those routines; and when compiling those
7  * routines (to check consistency).
8  */
9
10 /* closeFile.lc */
11 StgInt closeFile PROTO((StgForeignObj));
12
13 /* createDirectory.lc */
14 StgInt createDirectory PROTO((StgByteArray));
15
16 /* env.lc */
17 char *  strDup          PROTO((const char *));
18 int     setenviron      PROTO((char **));
19 int     copyenv         (STG_NO_ARGS);
20 int     _setenv         PROTO((char *));
21 int     delenv          PROTO((char *));
22
23 /* errno.lc */
24 extern  int ghc_errno;
25 extern  int ghc_errtype;
26 void    cvtErrno(STG_NO_ARGS);
27 void    stdErrno(STG_NO_ARGS);
28
29 /* execvpe.lc */
30 int     execvpe PROTO((char *, char **, char **));
31
32 /* fileEOF.lc */
33 StgInt  fileEOF PROTO((StgForeignObj));
34 /* fileGetc.lc */
35 StgInt  fileGetc PROTO((StgForeignObj));
36
37 /* fileLookAhead.lc */
38 StgInt  fileLookAhead PROTO((StgForeignObj));
39
40 /* filePosn.lc */
41 StgInt  getFilePosn PROTO((StgForeignObj));
42 StgInt  setFilePosn PROTO((StgForeignObj, StgInt));
43
44 /* filePutc.lc */
45 StgInt  filePutc    PROTO((StgForeignObj, StgInt));
46
47 /* fileSize.lc */
48 StgInt  fileSize    PROTO((StgForeignObj, StgByteArray));
49
50 /* flushFile.lc */
51 StgInt  flushFile   PROTO((StgForeignObj));
52
53 /* freeFile.lc */
54 void freeStdChannel PROTO((StgForeignObj));
55 void freeFile PROTO((StgForeignObj));
56
57 /* getBufferMode.lc */
58 StgInt  getBufferMode PROTO((StgForeignObj));
59
60 /* getClockTime.lc */
61 StgInt  getClockTime PROTO((StgByteArray, StgByteArray));
62
63 /* getCPUTime.lc */
64 StgByteArray getCPUTime PROTO((StgByteArray));
65 StgInt clockTicks();
66
67 /* getCurrentDirectory.lc */
68 StgAddr getCurrentDirectory(STG_NO_ARGS);
69
70 /* getDirectoryContents.lc */
71 StgAddr getDirectoryContents PROTO((StgByteArray));
72
73 /* getLock.lc */
74 int     lockFile    PROTO((int, int));
75 int     unlockFile  PROTO((int));
76 StgInt  getLock     PROTO((StgForeignObj, StgInt));
77
78 /* inputReady.lc */
79 StgInt  inputReady  PROTO((StgForeignObj));
80
81 /* openFile.lc */
82 StgAddr openFile PROTO((StgByteArray, StgByteArray));
83
84 /* readFile.lc */
85 StgInt  readBlock PROTO((StgAddr, StgForeignObj, StgInt));
86 StgInt  readLine PROTO((StgAddr,  StgForeignObj, StgInt));
87 StgInt  readChar PROTO((StgForeignObj));
88
89 /* removeDirectory.lc */
90 StgInt removeDirectory PROTO((StgByteArray));
91
92 /* removeFile.lc */
93 StgInt removeFile PROTO((StgByteArray));
94
95 /* renameDirectory.lc */
96 StgInt renameDirectory PROTO((StgByteArray, StgByteArray));
97
98 /* renameFile.lc */
99 StgInt renameFile PROTO((StgByteArray, StgByteArray));
100
101 /* seekFile.lc */
102 StgInt  seekFile  PROTO((StgForeignObj, StgInt, StgInt, StgByteArray));
103 StgInt  seekFileP PROTO((StgForeignObj));
104
105 /* setBuffering.lc */
106 StgInt  setBuffering PROTO((StgForeignObj, StgInt));
107
108 /* setCurrentDirectory.lc */
109 StgInt setCurrentDirectory PROTO((StgByteArray));
110
111 /* showTime.lc */
112 StgAddr showTime PROTO((StgInt, StgByteArray, StgByteArray));
113
114 /* system.lc */
115 StgInt  systemCmd PROTO((StgByteArray));
116
117 /* toLocalTime.lc */
118 StgAddr toLocalTime PROTO((StgInt, StgByteArray, StgByteArray));
119
120 /* toUTCTime.lc */
121 StgAddr toUTCTime PROTO((StgInt, StgByteArray, StgByteArray));
122
123 /* toClockSec.lc */
124 StgAddr toClockSec PROTO((StgInt, StgInt, StgInt, StgInt, StgInt, StgInt, StgInt, StgByteArray));
125
126 /* writeFile.lc */
127 StgInt  writeFile PROTO((StgAddr, StgForeignObj, StgInt));
128
129 #endif /* ! STGIO_H */