From c5211a4d5ce75ab11d8be38664cca047ccbc7777 Mon Sep 17 00:00:00 2001 From: sof Date: Wed, 7 Nov 2001 18:23:31 +0000 Subject: [PATCH] [project @ 2001-11-07 18:23:31 by sof] prev. commit didn't introduce these two files correctly - PrelIOUtils.{c,h} contain simple C wrappers to handle some aspects of OS I/O in a plat-indep. manner. --- ghc/lib/std/cbits/PrelIOUtils.c | 75 +++++++++++++++++++++++++++++++++++++++ ghc/lib/std/cbits/PrelIOUtils.h | 1 + 2 files changed, 76 insertions(+) create mode 100644 ghc/lib/std/cbits/PrelIOUtils.c diff --git a/ghc/lib/std/cbits/PrelIOUtils.c b/ghc/lib/std/cbits/PrelIOUtils.c new file mode 100644 index 0000000..9176d28 --- /dev/null +++ b/ghc/lib/std/cbits/PrelIOUtils.c @@ -0,0 +1,75 @@ +/* + * (c) The GRASP/AQUA Project, Glasgow University, 1994- + * + * IO / Handle support. + */ +#include "HsStd.h" +#include "PrelIOUtils.h" + +#ifdef _WIN32 +#include +#include +#endif + +HsBool prel_supportsTextMode() +{ +#if defined(mingw32_TARGET_OS) + return HS_BOOL_FALSE; +#else + return HS_BOOL_TRUE; +#endif +} + +HsInt prel_bufsiz() +{ + return BUFSIZ; +} + +HsInt prel_seek_cur() +{ + return SEEK_CUR; +} + +HsInt prel_o_binary() +{ +#ifdef HAVE_O_BINARY + return O_BINARY; +#else + return 0; +#endif +} + +HsInt prel_seek_set() +{ + return SEEK_SET; +} + +HsInt prel_seek_end() +{ + return SEEK_END; +} + +HsInt prel_setmode(HsInt fd, HsBool toBin) +{ +#ifdef _WIN32 + return setmode(fd,(toBin == HS_BOOL_TRUE) ? _O_BINARY : _O_TEXT); +#else + return EOK; +#endif +} + +HsInt prel_PrelHandle_write(HsInt fd, HsAddr ptr, HsInt off, HsInt sz) +{ + return write(fd,ptr + off, sz); +} + +HsInt prel_PrelHandle_read(HsInt fd, HsAddr ptr, HsInt off, HsInt sz) +{ + return write(fd,ptr + off, sz); +} + +void *prel_PrelIO_memcpy(char *dst, HsInt dst_off, const char *src, size_t sz) +{ + return memcpy(dst+dst_off, src, sz); +} + diff --git a/ghc/lib/std/cbits/PrelIOUtils.h b/ghc/lib/std/cbits/PrelIOUtils.h index bb1e5c5..4491c87 100644 --- a/ghc/lib/std/cbits/PrelIOUtils.h +++ b/ghc/lib/std/cbits/PrelIOUtils.h @@ -26,3 +26,4 @@ extern void* prel_PrelIO_memcpy(char *dst, HsInt dst_off, const char *src, size_ extern void writeErrString__(HsAddr msg_hdr, HsAddr msg, HsInt len); #endif /* __PRELIOUTILS_H__ */ + -- 1.7.10.4