ajhc-0.8.0.1: lib/jhc/Jhc/Type/C.hs
module Jhc.Type.C where
import Jhc.Type.Word
import Jhc.Type.Float
-- | Haskell representation for @errno@ values.
-- The implementation is deliberately exposed, to allow users to add
-- their own definitions of 'Errno' values.
newtype Errno = Errno CInt
newtype {-# CTYPE "char" #-} CChar = CChar Int8
newtype {-# CTYPE "signed char" #-} CSChar = CSChar Int8
newtype {-# CTYPE "unsigned char" #-} CUChar = CUChar Word8
newtype {-# CTYPE "short" #-} CShort = CShort Int16
newtype {-# CTYPE "unsigned short" #-} CUShort = CUShort Word16
newtype {-# CTYPE "int" #-} CInt = CInt Int
newtype {-# CTYPE "unsigned" #-} CUInt = CUInt Word
newtype {-# CTYPE "long" #-} CLong = CLong IntPtr
newtype {-# CTYPE "unsigned long" #-} CULong = CULong WordPtr
newtype {-# CTYPE "long long" #-} CLLong = CLLong IntMax
newtype {-# CTYPE "unsigned long long" #-} CULLong = CULLong WordMax
newtype CIntMax = CIntMax IntMax
newtype CUIntMax = CUIntMax WordMax
newtype CIntPtr = CIntPtr IntPtr
newtype CUIntPtr = CUIntPtr WordPtr
newtype CFloat = CFloat Float
newtype CDouble = CDouble Double
newtype {-# CTYPE "long double" #-} CLDouble = CLDouble Double
newtype {-# CTYPE "wchar_t" #-} CWchar = CWchar Word32
newtype {-# CTYPE "wint_t" #-} CWint = CWint Int32
newtype {-# CTYPE "clock_t" #-} CClock = CClock IntMax
newtype {-# CTYPE "ptrdiff_t" #-} CPtrdiff = CPtrdiff IntPtr
newtype {-# CTYPE "size_t" #-} CSize = CSize WordPtr
newtype {-# CTYPE "time_t" #-} CTime = CTime IntMax
data {-# CTYPE "FILE" #-} CFile
data {-# CTYPE "jmp_buf" #-} CJmpBuf
data {-# CTYPE "fpos_t" #-} CFpos
data {-# CTYPE "sigatomic_t" #-} CSigAtomic