[project @ 2001-11-07 18:23:31 by sof]
[ghc-hetmet.git] / ghc / lib / std / cbits / PrelIOUtils.c
1 /* 
2  * (c) The GRASP/AQUA Project, Glasgow University, 1994-
3  *
4  * IO / Handle support.
5  */
6 #include "HsStd.h"
7 #include "PrelIOUtils.h"
8
9 #ifdef _WIN32
10 #include <io.h>
11 #include <fcntl.h>
12 #endif
13
14 HsBool prel_supportsTextMode()
15 {
16 #if defined(mingw32_TARGET_OS)
17   return HS_BOOL_FALSE;
18 #else
19   return HS_BOOL_TRUE;
20 #endif
21 }
22
23 HsInt prel_bufsiz()
24 {
25   return BUFSIZ;
26 }
27
28 HsInt prel_seek_cur()
29 {
30   return SEEK_CUR;
31 }
32
33 HsInt prel_o_binary()
34 {
35 #ifdef HAVE_O_BINARY
36   return O_BINARY;
37 #else
38   return 0;
39 #endif
40 }
41
42 HsInt prel_seek_set()
43 {
44   return SEEK_SET;
45 }
46
47 HsInt prel_seek_end()
48 {
49   return SEEK_END;
50 }
51
52 HsInt prel_setmode(HsInt fd, HsBool toBin)
53 {
54 #ifdef _WIN32
55   return setmode(fd,(toBin == HS_BOOL_TRUE) ? _O_BINARY : _O_TEXT);
56 #else
57   return EOK;
58 #endif  
59 }
60
61 HsInt prel_PrelHandle_write(HsInt fd, HsAddr ptr, HsInt off, HsInt sz)
62 {
63   return write(fd,ptr + off, sz);
64 }
65
66 HsInt prel_PrelHandle_read(HsInt fd, HsAddr ptr, HsInt off, HsInt sz)
67 {
68   return write(fd,ptr + off, sz);
69 }
70
71 void *prel_PrelIO_memcpy(char *dst, HsInt dst_off, const char *src, size_t sz)
72
73   return memcpy(dst+dst_off, src, sz);
74 }
75