[project @ 2001-12-20 17:38:40 by sewardj]
authorsewardj <unknown>
Thu, 20 Dec 2001 17:38:41 +0000 (17:38 +0000)
committersewardj <unknown>
Thu, 20 Dec 2001 17:38:41 +0000 (17:38 +0000)
Move some small inline-in-C functions out of PrelPosix.hsc and into
the supporting cbits sources, where they belong.

Following this change, can you now compile the entire Prelude on
x86-linux with the native code generator, and get something which
actually works properly.

ghc/lib/std/PrelPosix.hsc
ghc/lib/std/cbits/PrelIOUtils.c
ghc/lib/std/cbits/PrelIOUtils.h

index c18124d..b558b47 100644 (file)
@@ -1,4 +1,4 @@
-{-# OPTIONS -fno-implicit-prelude #-}
+{-# OPTIONS -fno-implicit-prelude -#include "PrelIOUtils.h" #-}
 
 -- ---------------------------------------------------------------------------
 --
@@ -101,23 +101,13 @@ ioe_unknownfiletype = IOError Nothing UnsupportedOperation "fdType"
                        "unknown file type" Nothing
 
 foreign import "s_isreg_PrelPosix_wrap" unsafe s_isreg :: CMode -> Bool
-#def inline int s_isreg_PrelPosix_wrap(m) { return S_ISREG(m); }
-
 foreign import "s_isdir_PrelPosix_wrap" unsafe s_isdir :: CMode -> Bool
-#def inline int s_isdir_PrelPosix_wrap(m) { return S_ISDIR(m); }
-
 foreign import "s_isfifo_PrelPosix_wrap" unsafe s_isfifo :: CMode -> Bool
-#def inline int s_isfifo_PrelPosix_wrap(m) { return S_ISFIFO(m); }
-
 foreign import "s_ischr_PrelPosix_wrap" unsafe s_ischr :: CMode -> Bool
-#def inline int s_ischr_PrelPosix_wrap(m) { return S_ISCHR(m); }
-
 foreign import "s_isblk_PrelPosix_wrap" unsafe s_isblk :: CMode -> Bool
-#def inline int s_isblk_PrelPosix_wrap(m) { return S_ISBLK(m); }
 
 #ifndef mingw32_TARGET_OS
 foreign import "s_issock_PrelPosix_wrap" unsafe s_issock :: CMode -> Bool
-#def inline int s_issock_PrelPosix_wrap(m) { return S_ISSOCK(m); }
 #else
 s_issock :: CMode -> Bool
 s_issock cmode = False
@@ -312,7 +302,6 @@ foreign import "fork" unsafe
 
 foreign import "sigemptyset_PrelPosix_wrap" unsafe
    c_sigemptyset :: Ptr CSigset -> IO ()
-#def inline void sigemptyset_PrelPosix_wrap(sigset_t *set) { sigemptyset(set); }
 
 foreign import "sigaddset" unsafe
    c_sigaddset :: Ptr CSigset -> CInt -> IO ()
index 8f7b8c6..7699277 100644 (file)
@@ -91,3 +91,13 @@ void *prel_PrelIO_memcpy(char *dst, HsInt dst_off, const char *src, size_t sz)
   return memcpy(dst+dst_off, src, sz);
 }
 
+
+int s_isreg_PrelPosix_wrap(int m) { return S_ISREG(m); }
+int s_isdir_PrelPosix_wrap(int m) { return S_ISDIR(m); }
+int s_isfifo_PrelPosix_wrap(int m) { return S_ISFIFO(m); }
+int s_isblk_PrelPosix_wrap(int m) { return S_ISBLK(m); }
+int s_ischr_PrelPosix_wrap(int m) { return S_ISCHR(m); }
+#ifndef mingw32_TARGET_OS
+int s_issock_PrelPosix_wrap(int m) { return S_ISSOCK(m); }
+void sigemptyset_PrelPosix_wrap(sigset_t *set) { sigemptyset(set); }
+#endif
index 8dd19c1..da26c77 100644 (file)
@@ -25,5 +25,16 @@ extern void* prel_PrelIO_memcpy(char *dst, HsInt dst_off, const char *src, size_
 /* writeError.c */
 extern void writeErrString__(HsAddr msg_hdr, HsAddr msg, HsInt len);
 
+extern int s_isreg_PrelPosix_wrap(int);
+extern int s_isdir_PrelPosix_wrap(int);
+extern int s_isfifo_PrelPosix_wrap(int);
+extern int s_isblk_PrelPosix_wrap(int);
+extern int s_ischr_PrelPosix_wrap(int);
+#ifndef mingw32_TARGET_OS
+extern int s_issock_PrelPosix_wrap(int);
+extern void sigemptyset_PrelPosix_wrap(sigset_t *set);
+#endif
+
+
 #endif /* __PRELIOUTILS_H__ */