82b223f9cd9cf29ae2e5c69cf7bf49b7f784e3dd
[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 /* getBufferMode.lc */
54 StgInt  getBufferMode PROTO((StgForeignObj));
55
56 /* getClockTime.lc */
57 StgInt  getClockTime PROTO((StgByteArray, StgByteArray));
58
59 /* getCPUTime.lc */
60 StgByteArray getCPUTime PROTO((StgByteArray));
61
62 /* getCurrentDirectory.lc */
63 StgAddr getCurrentDirectory(STG_NO_ARGS);
64
65 /* getDirectoryContents.lc */
66 StgAddr getDirectoryContents PROTO((StgByteArray));
67
68 /* getLock.lc */
69 int     lockFile    PROTO((int, int));
70 int     unlockFile  PROTO((int));
71 StgInt  getLock     PROTO((StgForeignObj, StgInt));
72
73 /* inputReady.lc */
74 StgInt  inputReady  PROTO((StgForeignObj));
75
76 /* openFile.lc */
77 StgAddr openFile PROTO((StgByteArray, StgByteArray));
78
79 /* freeFile.lc */
80 void freeStdChannel PROTO((StgForeignObj));
81 void freeFile PROTO((StgForeignObj));
82
83 /* readFile.lc */
84 StgInt  readBlock PROTO((StgAddr, StgForeignObj, StgInt));
85 StgInt  readLine PROTO((StgAddr,  StgForeignObj, StgInt));
86 StgInt  readChar PROTO((StgForeignObj));
87
88 /* removeDirectory.lc */
89 StgInt removeDirectory PROTO((StgByteArray));
90
91 /* removeFile.lc */
92 StgInt removeFile PROTO((StgByteArray));
93
94 /* renameDirectory.lc */
95 StgInt renameDirectory PROTO((StgByteArray, StgByteArray));
96
97 /* renameFile.lc */
98 StgInt renameFile PROTO((StgByteArray, StgByteArray));
99
100 /* seekFile.lc */
101 StgInt  seekFile  PROTO((StgForeignObj, StgInt, StgInt, StgByteArray));
102 StgInt  seekFileP PROTO((StgForeignObj));
103
104 /* setBuffering.lc */
105 StgInt  setBuffering PROTO((StgForeignObj, StgInt));
106
107 /* setCurrentDirectory.lc */
108 StgInt setCurrentDirectory PROTO((StgByteArray));
109
110 /* showTime.lc */
111 StgAddr showTime PROTO((StgInt, StgByteArray, StgByteArray));
112
113 /* system.lc */
114 StgInt  systemCmd PROTO((StgByteArray));
115
116 /* toLocalTime.lc */
117 StgAddr toLocalTime PROTO((StgInt, StgByteArray, StgByteArray));
118
119 /* toUTCTime.lc */
120 StgAddr toUTCTime PROTO((StgInt, StgByteArray, StgByteArray));
121
122 /* toClockSec.lc */
123 StgAddr toClockSec PROTO((StgInt, StgInt, StgInt, StgInt, StgInt, StgInt, StgInt, StgByteArray));
124
125 /* writeFile.lc */
126 StgInt  writeFile PROTO((StgAddr, StgForeignObj, StgInt));
127
128 #endif /* ! STGIO_H */