From 8d2079dc3f7f127c1e17acfa8a71d874fd480c77 Mon Sep 17 00:00:00 2001 From: sof Date: Mon, 13 Oct 2003 05:22:59 +0000 Subject: [PATCH] [project @ 2003-10-13 05:22:59 by sof] support CFoo iff HTYPE_FOO_T is defined --- System/Posix/Types.hs | 85 +++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 76 insertions(+), 9 deletions(-) diff --git a/System/Posix/Types.hs b/System/Posix/Types.hs index cc04f32..77ec354 100644 --- a/System/Posix/Types.hs +++ b/System/Posix/Types.hs @@ -19,18 +19,56 @@ module System.Posix.Types ( -- * POSIX data types - CDev, CIno, CMode, COff, CPid, CSsize, +#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_SIZE_T) || defined(HTYPE_SSIZE_T) + CSsize, +#endif -#ifndef mingw32_TARGET_OS - CGid, CNlink, CUid, CCc, CSpeed, - CTcflag, CRLim, +#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 Fd(..), -#ifndef mingw32_TARGET_OS +#if defined(HTYPE_NLINK_T) LinkCount, +#endif +#if defined(HTYPE_UID_T) UserID, +#endif +#if defined(HTYPE_GID_T) GroupID, #endif @@ -66,25 +104,50 @@ import Control.Monad #include "Typeable.h" #include "CTypes.h" +#if defined(HTYPE_DEV_T) NUMERIC_TYPE(CDev,tyConCDev,"CDev",HTYPE_DEV_T) +#endif +#if defined(HTYPE_INO_T) INTEGRAL_TYPE(CIno,tyConCIno,"CIno",HTYPE_INO_T) +#endif +#if defined(HTYPE_MODE_T) INTEGRAL_TYPE(CMode,tyConCMode,"CMode",HTYPE_MODE_T) +#endif +#if defined(HTYPE_OFF_T) INTEGRAL_TYPE(COff,tyConCOff,"COff",HTYPE_OFF_T) +#endif +#if defined(HTYPE_PID_T) INTEGRAL_TYPE(CPid,tyConCPid,"CPid",HTYPE_PID_T) +#endif -#ifdef mingw32_TARGET_OS +#if defined(HTYPE_SIZE_T) INTEGRAL_TYPE(CSsize,tyConCSsize,"CSsize",HTYPE_SIZE_T) -#else +#endif + +#if defined(HTYPE_SSIZE_T) && !defined(HTYPE_SIZE_T) INTEGRAL_TYPE(CSsize,tyConCSsize,"CSsize",HTYPE_SSIZE_T) #endif -#ifndef mingw32_TARGET_OS +#if defined(HTYPE_GID_T) INTEGRAL_TYPE(CGid,tyConCGid,"CGid",HTYPE_GID_T) +#endif +#if defined(HTYPE_NLINK_T) INTEGRAL_TYPE(CNlink,tyConCNlink,"CNlink",HTYPE_NLINK_T) +#endif + +#if defined(HTYPE_UID_T) INTEGRAL_TYPE(CUid,tyConCUid,"CUid",HTYPE_UID_T) +#endif +#if defined(HTYPE_CC_T) NUMERIC_TYPE(CCc,tyConCCc,"CCc",HTYPE_CC_T) +#endif +#if defined(HTYPE_SPEED_T) NUMERIC_TYPE(CSpeed,tyConCSpeed,"CSpeed",HTYPE_SPEED_T) +#endif +#if defined(HTYPE_TCFLAG_T) INTEGRAL_TYPE(CTcflag,tyConCTcflag,"CTcflag",HTYPE_TCFLAG_T) +#endif +#if defined(HTYPE_RLIM_T) INTEGRAL_TYPE(CRLim,tyConCRlim,"CRLim",HTYPE_RLIM_T) #endif @@ -95,9 +158,13 @@ INTEGRAL_TYPE(CRLim,tyConCRlim,"CRLim",HTYPE_RLIM_T) INTEGRAL_TYPE(Fd,tyConFd,"Fd",CInt) -- nicer names, and backwards compatibility with POSIX library: -#ifndef mingw32_TARGET_OS +#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 -- 1.7.10.4