aboutsummaryrefslogtreecommitdiffhomepage
path: root/System/Posix/Time.hs
diff options
context:
space:
mode:
Diffstat (limited to 'System/Posix/Time.hs')
-rw-r--r--System/Posix/Time.hs41
1 files changed, 41 insertions, 0 deletions
diff --git a/System/Posix/Time.hs b/System/Posix/Time.hs
new file mode 100644
index 0000000..7a2232f
--- /dev/null
+++ b/System/Posix/Time.hs
@@ -0,0 +1,41 @@
+{-# LANGUAGE CApiFFI #-}
+{-# LANGUAGE CPP #-}
+#if __GLASGOW_HASKELL__ >= 709
+{-# LANGUAGE Safe #-}
+#elif __GLASGOW_HASKELL__ >= 703
+{-# LANGUAGE Trustworthy #-}
+#endif
+-----------------------------------------------------------------------------
+-- |
+-- Module : System.Posix.Time
+-- Copyright : (c) The University of Glasgow 2002
+-- License : BSD-style (see the file libraries/base/LICENSE)
+--
+-- Maintainer : libraries@haskell.org
+-- Stability : provisional
+-- Portability : non-portable (requires POSIX)
+--
+-- POSIX Time support
+--
+-----------------------------------------------------------------------------
+
+module System.Posix.Time (
+ epochTime,
+ -- ToDo: lots more from sys/time.h
+ -- how much already supported by System.Time?
+ ) where
+
+import System.Posix.Types
+import Foreign
+import Foreign.C
+
+-- -----------------------------------------------------------------------------
+-- epochTime
+
+-- | @epochTime@ calls @time@ to obtain the number of
+-- seconds that have elapsed since the epoch (Jan 01 00:00:00 GMT 1970).
+epochTime :: IO EpochTime
+epochTime = throwErrnoIfMinus1 "epochTime" (c_time nullPtr)
+
+foreign import capi unsafe "HsUnix.h time"
+ c_time :: Ptr CTime -> IO CTime