diff options
author | Herbert Valerio Riedel <hvr@gnu.org> | 2016-01-30 17:25:01 +0100 |
---|---|---|
committer | Herbert Valerio Riedel <hvr@gnu.org> | 2016-01-30 17:28:30 +0100 |
commit | 44a8b5240a8766f2561f36400713ea524dd745b0 (patch) | |
tree | ea13e66e626841575f67353eb36782a03b9755fd /System/Posix/Time.hs | |
parent | c41080e2f7802e269a12f6511f1846f4740e5300 (diff) |
Replace `__hsunix_time` wrapper with CApiFFI
Diffstat (limited to 'System/Posix/Time.hs')
-rw-r--r-- | System/Posix/Time.hs | 41 |
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 |