Replace `__hsunix_time` wrapper with CApiFFI
authorHerbert Valerio Riedel <hvr@gnu.org>
Sat, 30 Jan 2016 16:25:01 +0000 (17:25 +0100)
committerHerbert Valerio Riedel <hvr@gnu.org>
Sat, 30 Jan 2016 16:28:30 +0000 (17:28 +0100)
System/Posix/Time.hs [moved from System/Posix/Time.hsc with 92% similarity]
cbits/HsUnix.c
include/HsUnix.h

similarity index 92%
rename from System/Posix/Time.hsc
rename to System/Posix/Time.hs
index a28050d..7a2232f 100644 (file)
@@ -1,3 +1,5 @@
+{-# LANGUAGE CApiFFI #-}
+{-# LANGUAGE CPP #-}
 #if __GLASGOW_HASKELL__ >= 709
 {-# LANGUAGE Safe #-}
 #elif __GLASGOW_HASKELL__ >= 703
@@ -23,8 +25,6 @@ module System.Posix.Time (
         -- how much already supported by System.Time?
   ) where
 
-#include "HsUnix.h"
-
 import System.Posix.Types
 import Foreign
 import Foreign.C
@@ -37,5 +37,5 @@ import Foreign.C
 epochTime :: IO EpochTime
 epochTime = throwErrnoIfMinus1 "epochTime" (c_time nullPtr)
 
-foreign import ccall unsafe "__hsunix_time"
+foreign import capi unsafe "HsUnix.h time"
   c_time :: Ptr CTime -> IO CTime
index 039203e..e61f835 100644 (file)
@@ -76,12 +76,6 @@ int __hsunix_nanosleep(const struct timespec *rqtp, struct timespec *rmtp)
 }
 #endif
 
-// time is a macro on some platforms, so we need a wrapper:
-time_t __hsunix_time(time_t *tloc)
-{
-    return time(tloc);
-}
-
 // times is a macro on some platforms, so we need a wrapper:
 clock_t __hsunix_times(struct tms *tp)
 {
index 72613b6..62d0f31 100644 (file)
@@ -143,9 +143,6 @@ int __hsunix_getpwuid_r(uid_t, struct passwd *, char *, size_t,
 int __hsunix_nanosleep(const struct timespec *, struct timespec *);
 #endif
 
-// time is a macro on some platforms, so we need a wrapper:
-time_t __hsunix_time(time_t *);
-
 // times is a macro on some platforms, so we need a wrapper:
 clock_t __hsunix_times(struct tms *);