-- Portability : non-portable (requires POSIX)
--
-- POSIX data types: Haskell equivalents of the types defined by the
--- @\<sys/types.h>@ C header on a POSIX system.
+-- @\<sys\/types.h>@ C header on a POSIX system.
--
-----------------------------------------------------------------------------
module System.Posix.Types (
-- * POSIX data types
- CDev(..), CIno(..), CMode(..), COff(..), CPid(..), CSsize(..),
+ CDev, CIno, CMode, COff, CPid, CSsize,
#ifndef mingw32_TARGET_OS
- CGid(..), CNlink(..), CSsize(..), CUid(..), CCc(..), CSpeed(..),
- CTcflag(..), CBlkCnt(..),
+ CGid, CNlink, CUid, CCc, CSpeed,
+ CTcflag, CRLim,
#endif
Fd(..),
import Foreign
import Foreign.C
-import Data.Dynamic
+import Data.Typeable
import Data.Bits
#ifdef __GLASGOW_HASKELL__
import GHC.Prim
import GHC.Read
import GHC.Show
+#else
+import Control.Monad
#endif
-#include "Dynamic.h"
+#include "Typeable.h"
#include "CTypes.h"
NUMERIC_TYPE(CDev,tyConCDev,"CDev",HTYPE_DEV_T)
NUMERIC_TYPE(CCc,tyConCCc,"CCc",HTYPE_CC_T)
NUMERIC_TYPE(CSpeed,tyConCSpeed,"CSpeed",HTYPE_SPEED_T)
INTEGRAL_TYPE(CTcflag,tyConCTcflag,"CTcflag",HTYPE_TCFLAG_T)
-INTEGRAL_TYPE(CBlkCnt,tyConBlkCnd,"CBlkCnt",HTYPE_BLKCNT_T)
+INTEGRAL_TYPE(CRLim,tyConCRlim,"CRLim",HTYPE_RLIM_T)
#endif
--- ToDo: blksize_t, clockid_t, fsblkcnt_t, fsfilcnt_t, id_t, key_t
+-- ToDo: blksize_t, clockid_t, blkcnt_t, fsblkcnt_t, fsfilcnt_t, id_t, key_t
-- suseconds_t, timer_t, useconds_t
-- Make an Fd type rather than using CInt everywhere