Add more C wrappers for NetBSD
authorSimon Marlow <marlowsd@gmail.com>
Tue, 8 Sep 2009 10:33:30 +0000 (10:33 +0000)
committerSimon Marlow <marlowsd@gmail.com>
Tue, 8 Sep 2009 10:33:30 +0000 (10:33 +0000)
Contributed-by: Krister Walfridsson <krister.walfridsson@gmail.com>
System/Time.hsc
cbits/timeUtils.c
include/HsTime.h

index 4b71c17..c2e4561 100644 (file)
@@ -731,14 +731,14 @@ formatTimeDiff l fmt (TimeDiff year month day hour minute sec _)
 type CTm = () -- struct tm
 
 #if HAVE_LOCALTIME_R
-foreign import ccall unsafe "time.h localtime_r"
+foreign import ccall unsafe "HsTime.h __hscore_localtime_r"
     localtime_r :: Ptr CTime -> Ptr CTm -> IO (Ptr CTm)
 #else
 foreign import ccall unsafe "time.h localtime"
     localtime   :: Ptr CTime -> IO (Ptr CTm)
 #endif
 #if HAVE_GMTIME_R
-foreign import ccall unsafe "time.h gmtime_r"
+foreign import ccall unsafe "HsTime.h __hscore_gmtime_r"
     gmtime_r    :: Ptr CTime -> Ptr CTm -> IO (Ptr CTm)
 #else
 foreign import ccall unsafe "time.h gmtime"
@@ -750,7 +750,7 @@ foreign import ccall unsafe "time.h mktime"
 #if HAVE_GETTIMEOFDAY
 type CTimeVal = ()
 type CTimeZone = ()
-foreign import ccall unsafe "time.h gettimeofday"
+foreign import ccall unsafe "HsTime.h __hscore_gettimeofday"
     gettimeofday :: Ptr CTimeVal -> Ptr CTimeZone -> IO CInt
 #elif HAVE_FTIME
 type CTimeB = ()
index 6212a34..d2d9ef4 100644 (file)
@@ -6,6 +6,27 @@
  */
 #include "HsTime.h"
 
+#if HAVE_GETTIMEOFDAY
+int __hscore_gettimeofday(struct timeval *tp, void *tzp)
+{
+    return gettimeofday(tp, tzp);
+}
+#endif
+
+#if HAVE_GMTIME_R
+struct tm *__hscore_gmtime_r(const time_t *clock, struct tm *result)
+{
+    return gmtime_r(clock, result);
+}
+#endif
+
+#if HAVE_LOCALTIME_R
+struct tm *__hscore_localtime_r(const time_t *clock, struct tm *result)
+{
+    return localtime_r(clock, result);
+}
+#endif
+
 #if defined(_MSC_VER) || defined(__MINGW32__) || defined(_WIN32) /* to the end */
 
 long *__hscore_timezone( void )
index 897f9b5..544cd02 100644 (file)
 extern long *__hscore_timezone( void );
 extern char **__hscore_tzname( void );
 
+#if HAVE_GETTIMEOFDAY
+extern int __hscore_gettimeofday(struct timeval *tp, void *tzp);
+#endif
+
+#if HAVE_GMTIME_R
+extern struct tm *__hscore_gmtime_r(const time_t *clock, struct tm *result);
+#endif
+
+#if HAVE_LOCALTIME_R
+extern struct tm *__hscore_localtime_r(const time_t *clock, struct tm *result);
+#endif
+
 #endif /* __TIMEUTILS_H__ */