(original) (raw)

{-# LANGUAGE CPP #-} {-# LANGUAGE DerivingStrategies #-} {-# LANGUAGE GeneralizedNewtypeDeriving #-} {-# LANGUAGE MagicHash #-} {-# LANGUAGE NoImplicitPrelude #-} {-# LANGUAGE StandaloneDeriving #-} {-# LANGUAGE Trustworthy #-}

#include "HsBaseConfig.h"

module System.Posix.Types (

#if defined(HTYPE_DEV_T) CDev(..), #endif #if defined(HTYPE_INO_T) CIno(..), #endif #if defined(HTYPE_MODE_T) CMode(..), #endif #if defined(HTYPE_OFF_T) COff(..), #endif #if defined(HTYPE_PID_T) CPid(..), #endif #if defined(HTYPE_SSIZE_T) CSsize(..), #endif

#if defined(HTYPE_GID_T) CGid(..), #endif #if defined(HTYPE_NLINK_T) CNlink(..), #endif #if defined(HTYPE_UID_T) CUid(..), #endif #if defined(HTYPE_CC_T) CCc(..), #endif #if defined(HTYPE_SPEED_T) CSpeed(..), #endif #if defined(HTYPE_TCFLAG_T) CTcflag(..), #endif #if defined(HTYPE_RLIM_T) CRLim(..), #endif #if defined(HTYPE_BLKSIZE_T) CBlkSize(..), #endif #if defined(HTYPE_BLKCNT_T) CBlkCnt(..), #endif #if defined(HTYPE_CLOCKID_T) CClockId(..), #endif #if defined(HTYPE_FSBLKCNT_T) CFsBlkCnt(..), #endif #if defined(HTYPE_FSFILCNT_T) CFsFilCnt(..), #endif #if defined(HTYPE_ID_T) CId(..), #endif #if defined(HTYPE_KEY_T) CKey(..), #endif #if defined(HTYPE_TIMER_T) CTimer(..), #endif

Fd(..),

#if defined(HTYPE_NLINK_T) LinkCount, #endif #if defined(HTYPE_UID_T) UserID, #endif #if defined(HTYPE_GID_T) GroupID, #endif

ByteCount, ClockTick, EpochTime, FileOffset, ProcessID, ProcessGroupID, DeviceID, FileID, FileMode, Limit ) where

import Foreign import Foreign.C

import GHC.Base import GHC.Enum import GHC.Num import GHC.Real

import GHC.Read import GHC.Show

#include "CTypes.h"

#if defined(HTYPE_DEV_T) INTEGRAL_TYPE(CDev,HTYPE_DEV_T) #endif #if defined(HTYPE_INO_T) INTEGRAL_TYPE(CIno,HTYPE_INO_T) #endif #if defined(HTYPE_MODE_T) INTEGRAL_TYPE_WITH_CTYPE(CMode,mode_t,HTYPE_MODE_T) #endif #if defined(HTYPE_OFF_T) INTEGRAL_TYPE(COff,HTYPE_OFF_T) #endif #if defined(HTYPE_PID_T) INTEGRAL_TYPE(CPid,HTYPE_PID_T) #endif

#if defined(HTYPE_SSIZE_T) INTEGRAL_TYPE(CSsize,HTYPE_SSIZE_T) #endif

#if defined(HTYPE_GID_T) INTEGRAL_TYPE(CGid,HTYPE_GID_T) #endif #if defined(HTYPE_NLINK_T) INTEGRAL_TYPE(CNlink,HTYPE_NLINK_T) #endif

#if defined(HTYPE_UID_T) INTEGRAL_TYPE(CUid,HTYPE_UID_T) #endif #if defined(HTYPE_CC_T) ARITHMETIC_TYPE(CCc,HTYPE_CC_T) #endif #if defined(HTYPE_SPEED_T) ARITHMETIC_TYPE(CSpeed,HTYPE_SPEED_T) #endif #if defined(HTYPE_TCFLAG_T) INTEGRAL_TYPE(CTcflag,HTYPE_TCFLAG_T) #endif #if defined(HTYPE_RLIM_T) INTEGRAL_TYPE(CRLim,HTYPE_RLIM_T) #endif

#if defined(HTYPE_BLKSIZE_T)

INTEGRAL_TYPE_WITH_CTYPE(CBlkSize,blksize_t,HTYPE_BLKSIZE_T) #endif #if defined(HTYPE_BLKCNT_T)

INTEGRAL_TYPE_WITH_CTYPE(CBlkCnt,blkcnt_t,HTYPE_BLKCNT_T) #endif #if defined(HTYPE_CLOCKID_T)

INTEGRAL_TYPE_WITH_CTYPE(CClockId,clockid_t,HTYPE_CLOCKID_T) #endif #if defined(HTYPE_FSBLKCNT_T)

INTEGRAL_TYPE_WITH_CTYPE(CFsBlkCnt,fsblkcnt_t,HTYPE_FSBLKCNT_T) #endif #if defined(HTYPE_FSFILCNT_T)

INTEGRAL_TYPE_WITH_CTYPE(CFsFilCnt,fsfilcnt_t,HTYPE_FSFILCNT_T) #endif #if defined(HTYPE_ID_T)

INTEGRAL_TYPE_WITH_CTYPE(CId,id_t,HTYPE_ID_T) #endif #if defined(HTYPE_KEY_T)

INTEGRAL_TYPE_WITH_CTYPE(CKey,key_t,HTYPE_KEY_T) #endif #if defined(HTYPE_TIMER_T)

OPAQUE_TYPE_WITH_CTYPE(CTimer,timer_t,HTYPE_TIMER_T) #endif

INTEGRAL_TYPE(Fd,CInt)

#if defined(HTYPE_NLINK_T) type LinkCount = CNlink #endif #if defined(HTYPE_UID_T) type UserID = CUid #endif #if defined(HTYPE_GID_T) type GroupID = CGid #endif

type ByteCount = CSize type ClockTick = CClock type EpochTime = CTime type DeviceID = CDev type FileID = CIno type FileMode = CMode type ProcessID = CPid type FileOffset = COff type ProcessGroupID = CPid type Limit = CLong