module Bindings.C ( Timeval ) where import Foreign.C import Foreign import Data.Int data Timeval = Timeval {timeval'tv_sec, timeval'tv_usec :: CLong} instance Storable Timeval where sizeOf _ = fromIntegral size_of_timeval alignment = sizeOf peek p = with 0 $ \p1 -> with 0 $ \p2 -> c2hs_timeval p p1 p2 >> peek p1 >>= \v1 -> peek p2 >>= \v2 -> return $ Timeval {timeval'tv_sec = v1, timeval'tv_usec = v2} poke p v = hs2c_timeval p (timeval'tv_sec v) (timeval'tv_usec v) foreign import ccall "size_of_timeval" size_of_timeval :: CInt foreign import ccall "hs2c_timeval" hs2c_timeval :: Ptr Timeval -> CLong -> CLong -> IO () foreign import ccall "c2hs_timeval" c2hs_timeval :: Ptr Timeval -> Ptr CLong -> Ptr CLong -> IO ()