X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=Foreign%2FC%2FError.hs;h=7dc8d3a1730f0fd6c39269495367f12e4fab76b3;hb=f7a485978f04e84b086f1974b88887cc72d832d0;hp=71a05ac8aecca34a6b08c91553530c1f290ec442;hpb=d6a751fe82a7b606ece980f8a14210649883f59e;p=ghc-base.git diff --git a/Foreign/C/Error.hs b/Foreign/C/Error.hs index 71a05ac..7dc8d3a 100644 --- a/Foreign/C/Error.hs +++ b/Foreign/C/Error.hs @@ -1,16 +1,14 @@ -{-# OPTIONS -fno-implicit-prelude -#include "HsCore.h" #-} +{-# OPTIONS -fno-implicit-prelude -#include "HsBase.h" #-} ----------------------------------------------------------------------------- --- +-- | -- Module : Foreign.C.Error -- Copyright : (c) The FFI task force 2001 --- License : BSD-style (see the file libraries/core/LICENSE) +-- License : BSD-style (see the file libraries/base/LICENSE) -- -- Maintainer : ffi@haskell.org -- Stability : provisional -- Portability : portable -- --- $Id: Error.hs,v 1.3 2001/07/31 12:59:30 simonmar Exp $ --- -- C-specific Marshalling support: Handling of C "errno" error codes -- ----------------------------------------------------------------------------- @@ -120,7 +118,8 @@ import System.IO ( IOError, Handle, ioError ) -- import of C function that gives address of errno -- This function exists because errno is a variable on some systems, but on -- Windows it is a macro for a function... -foreign import "ghcErrno" unsafe _errno :: Ptr CInt +-- [yes, global variables and thread safety don't really go hand-in-hand. -- sof] +foreign import ccall unsafe "ghcErrno" _errno :: Ptr CInt -- Haskell representation for "errno" values -- @@ -148,108 +147,108 @@ eOK, e2BIG, eACCES, eADDRINUSE, eADDRNOTAVAIL, eADV, eAFNOSUPPORT, eAGAIN, eSOCKTNOSUPPORT, eSPIPE, eSRCH, eSRMNT, eSTALE, eTIME, eTIMEDOUT, eTOOMANYREFS, eTXTBSY, eUSERS, eWOULDBLOCK, eXDEV :: Errno -- --- the CCONST_XXX identifiers are cpp symbols whose value is computed by +-- the cCONST_XXX identifiers are cpp symbols whose value is computed by -- configure -- eOK = Errno 0 -e2BIG = Errno (CCONST_E2BIG) -eACCES = Errno (CCONST_EACCES) -eADDRINUSE = Errno (CCONST_EADDRINUSE) -eADDRNOTAVAIL = Errno (CCONST_EADDRNOTAVAIL) -eADV = Errno (CCONST_EADV) -eAFNOSUPPORT = Errno (CCONST_EAFNOSUPPORT) -eAGAIN = Errno (CCONST_EAGAIN) -eALREADY = Errno (CCONST_EALREADY) -eBADF = Errno (CCONST_EBADF) -eBADMSG = Errno (CCONST_EBADMSG) -eBADRPC = Errno (CCONST_EBADRPC) -eBUSY = Errno (CCONST_EBUSY) -eCHILD = Errno (CCONST_ECHILD) -eCOMM = Errno (CCONST_ECOMM) -eCONNABORTED = Errno (CCONST_ECONNABORTED) -eCONNREFUSED = Errno (CCONST_ECONNREFUSED) -eCONNRESET = Errno (CCONST_ECONNRESET) -eDEADLK = Errno (CCONST_EDEADLK) -eDESTADDRREQ = Errno (CCONST_EDESTADDRREQ) -eDIRTY = Errno (CCONST_EDIRTY) -eDOM = Errno (CCONST_EDOM) -eDQUOT = Errno (CCONST_EDQUOT) -eEXIST = Errno (CCONST_EEXIST) -eFAULT = Errno (CCONST_EFAULT) -eFBIG = Errno (CCONST_EFBIG) -eFTYPE = Errno (CCONST_EFTYPE) -eHOSTDOWN = Errno (CCONST_EHOSTDOWN) -eHOSTUNREACH = Errno (CCONST_EHOSTUNREACH) -eIDRM = Errno (CCONST_EIDRM) -eILSEQ = Errno (CCONST_EILSEQ) -eINPROGRESS = Errno (CCONST_EINPROGRESS) -eINTR = Errno (CCONST_EINTR) -eINVAL = Errno (CCONST_EINVAL) -eIO = Errno (CCONST_EIO) -eISCONN = Errno (CCONST_EISCONN) -eISDIR = Errno (CCONST_EISDIR) -eLOOP = Errno (CCONST_ELOOP) -eMFILE = Errno (CCONST_EMFILE) -eMLINK = Errno (CCONST_EMLINK) -eMSGSIZE = Errno (CCONST_EMSGSIZE) -eMULTIHOP = Errno (CCONST_EMULTIHOP) -eNAMETOOLONG = Errno (CCONST_ENAMETOOLONG) -eNETDOWN = Errno (CCONST_ENETDOWN) -eNETRESET = Errno (CCONST_ENETRESET) -eNETUNREACH = Errno (CCONST_ENETUNREACH) -eNFILE = Errno (CCONST_ENFILE) -eNOBUFS = Errno (CCONST_ENOBUFS) -eNODATA = Errno (CCONST_ENODATA) -eNODEV = Errno (CCONST_ENODEV) -eNOENT = Errno (CCONST_ENOENT) -eNOEXEC = Errno (CCONST_ENOEXEC) -eNOLCK = Errno (CCONST_ENOLCK) -eNOLINK = Errno (CCONST_ENOLINK) -eNOMEM = Errno (CCONST_ENOMEM) -eNOMSG = Errno (CCONST_ENOMSG) -eNONET = Errno (CCONST_ENONET) -eNOPROTOOPT = Errno (CCONST_ENOPROTOOPT) -eNOSPC = Errno (CCONST_ENOSPC) -eNOSR = Errno (CCONST_ENOSR) -eNOSTR = Errno (CCONST_ENOSTR) -eNOSYS = Errno (CCONST_ENOSYS) -eNOTBLK = Errno (CCONST_ENOTBLK) -eNOTCONN = Errno (CCONST_ENOTCONN) -eNOTDIR = Errno (CCONST_ENOTDIR) -eNOTEMPTY = Errno (CCONST_ENOTEMPTY) -eNOTSOCK = Errno (CCONST_ENOTSOCK) -eNOTTY = Errno (CCONST_ENOTTY) -eNXIO = Errno (CCONST_ENXIO) -eOPNOTSUPP = Errno (CCONST_EOPNOTSUPP) -ePERM = Errno (CCONST_EPERM) -ePFNOSUPPORT = Errno (CCONST_EPFNOSUPPORT) -ePIPE = Errno (CCONST_EPIPE) -ePROCLIM = Errno (CCONST_EPROCLIM) -ePROCUNAVAIL = Errno (CCONST_EPROCUNAVAIL) -ePROGMISMATCH = Errno (CCONST_EPROGMISMATCH) -ePROGUNAVAIL = Errno (CCONST_EPROGUNAVAIL) -ePROTO = Errno (CCONST_EPROTO) -ePROTONOSUPPORT = Errno (CCONST_EPROTONOSUPPORT) -ePROTOTYPE = Errno (CCONST_EPROTOTYPE) -eRANGE = Errno (CCONST_ERANGE) -eREMCHG = Errno (CCONST_EREMCHG) -eREMOTE = Errno (CCONST_EREMOTE) -eROFS = Errno (CCONST_EROFS) -eRPCMISMATCH = Errno (CCONST_ERPCMISMATCH) -eRREMOTE = Errno (CCONST_ERREMOTE) -eSHUTDOWN = Errno (CCONST_ESHUTDOWN) -eSOCKTNOSUPPORT = Errno (CCONST_ESOCKTNOSUPPORT) -eSPIPE = Errno (CCONST_ESPIPE) -eSRCH = Errno (CCONST_ESRCH) -eSRMNT = Errno (CCONST_ESRMNT) -eSTALE = Errno (CCONST_ESTALE) -eTIME = Errno (CCONST_ETIME) -eTIMEDOUT = Errno (CCONST_ETIMEDOUT) -eTOOMANYREFS = Errno (CCONST_ETOOMANYREFS) -eTXTBSY = Errno (CCONST_ETXTBSY) -eUSERS = Errno (CCONST_EUSERS) -eWOULDBLOCK = Errno (CCONST_EWOULDBLOCK) -eXDEV = Errno (CCONST_EXDEV) +e2BIG = Errno (cCONST_E2BIG) +eACCES = Errno (cCONST_EACCES) +eADDRINUSE = Errno (cCONST_EADDRINUSE) +eADDRNOTAVAIL = Errno (cCONST_EADDRNOTAVAIL) +eADV = Errno (cCONST_EADV) +eAFNOSUPPORT = Errno (cCONST_EAFNOSUPPORT) +eAGAIN = Errno (cCONST_EAGAIN) +eALREADY = Errno (cCONST_EALREADY) +eBADF = Errno (cCONST_EBADF) +eBADMSG = Errno (cCONST_EBADMSG) +eBADRPC = Errno (cCONST_EBADRPC) +eBUSY = Errno (cCONST_EBUSY) +eCHILD = Errno (cCONST_ECHILD) +eCOMM = Errno (cCONST_ECOMM) +eCONNABORTED = Errno (cCONST_ECONNABORTED) +eCONNREFUSED = Errno (cCONST_ECONNREFUSED) +eCONNRESET = Errno (cCONST_ECONNRESET) +eDEADLK = Errno (cCONST_EDEADLK) +eDESTADDRREQ = Errno (cCONST_EDESTADDRREQ) +eDIRTY = Errno (cCONST_EDIRTY) +eDOM = Errno (cCONST_EDOM) +eDQUOT = Errno (cCONST_EDQUOT) +eEXIST = Errno (cCONST_EEXIST) +eFAULT = Errno (cCONST_EFAULT) +eFBIG = Errno (cCONST_EFBIG) +eFTYPE = Errno (cCONST_EFTYPE) +eHOSTDOWN = Errno (cCONST_EHOSTDOWN) +eHOSTUNREACH = Errno (cCONST_EHOSTUNREACH) +eIDRM = Errno (cCONST_EIDRM) +eILSEQ = Errno (cCONST_EILSEQ) +eINPROGRESS = Errno (cCONST_EINPROGRESS) +eINTR = Errno (cCONST_EINTR) +eINVAL = Errno (cCONST_EINVAL) +eIO = Errno (cCONST_EIO) +eISCONN = Errno (cCONST_EISCONN) +eISDIR = Errno (cCONST_EISDIR) +eLOOP = Errno (cCONST_ELOOP) +eMFILE = Errno (cCONST_EMFILE) +eMLINK = Errno (cCONST_EMLINK) +eMSGSIZE = Errno (cCONST_EMSGSIZE) +eMULTIHOP = Errno (cCONST_EMULTIHOP) +eNAMETOOLONG = Errno (cCONST_ENAMETOOLONG) +eNETDOWN = Errno (cCONST_ENETDOWN) +eNETRESET = Errno (cCONST_ENETRESET) +eNETUNREACH = Errno (cCONST_ENETUNREACH) +eNFILE = Errno (cCONST_ENFILE) +eNOBUFS = Errno (cCONST_ENOBUFS) +eNODATA = Errno (cCONST_ENODATA) +eNODEV = Errno (cCONST_ENODEV) +eNOENT = Errno (cCONST_ENOENT) +eNOEXEC = Errno (cCONST_ENOEXEC) +eNOLCK = Errno (cCONST_ENOLCK) +eNOLINK = Errno (cCONST_ENOLINK) +eNOMEM = Errno (cCONST_ENOMEM) +eNOMSG = Errno (cCONST_ENOMSG) +eNONET = Errno (cCONST_ENONET) +eNOPROTOOPT = Errno (cCONST_ENOPROTOOPT) +eNOSPC = Errno (cCONST_ENOSPC) +eNOSR = Errno (cCONST_ENOSR) +eNOSTR = Errno (cCONST_ENOSTR) +eNOSYS = Errno (cCONST_ENOSYS) +eNOTBLK = Errno (cCONST_ENOTBLK) +eNOTCONN = Errno (cCONST_ENOTCONN) +eNOTDIR = Errno (cCONST_ENOTDIR) +eNOTEMPTY = Errno (cCONST_ENOTEMPTY) +eNOTSOCK = Errno (cCONST_ENOTSOCK) +eNOTTY = Errno (cCONST_ENOTTY) +eNXIO = Errno (cCONST_ENXIO) +eOPNOTSUPP = Errno (cCONST_EOPNOTSUPP) +ePERM = Errno (cCONST_EPERM) +ePFNOSUPPORT = Errno (cCONST_EPFNOSUPPORT) +ePIPE = Errno (cCONST_EPIPE) +ePROCLIM = Errno (cCONST_EPROCLIM) +ePROCUNAVAIL = Errno (cCONST_EPROCUNAVAIL) +ePROGMISMATCH = Errno (cCONST_EPROGMISMATCH) +ePROGUNAVAIL = Errno (cCONST_EPROGUNAVAIL) +ePROTO = Errno (cCONST_EPROTO) +ePROTONOSUPPORT = Errno (cCONST_EPROTONOSUPPORT) +ePROTOTYPE = Errno (cCONST_EPROTOTYPE) +eRANGE = Errno (cCONST_ERANGE) +eREMCHG = Errno (cCONST_EREMCHG) +eREMOTE = Errno (cCONST_EREMOTE) +eROFS = Errno (cCONST_EROFS) +eRPCMISMATCH = Errno (cCONST_ERPCMISMATCH) +eRREMOTE = Errno (cCONST_ERREMOTE) +eSHUTDOWN = Errno (cCONST_ESHUTDOWN) +eSOCKTNOSUPPORT = Errno (cCONST_ESOCKTNOSUPPORT) +eSPIPE = Errno (cCONST_ESPIPE) +eSRCH = Errno (cCONST_ESRCH) +eSRMNT = Errno (cCONST_ESRMNT) +eSTALE = Errno (cCONST_ESTALE) +eTIME = Errno (cCONST_ETIME) +eTIMEDOUT = Errno (cCONST_ETIMEDOUT) +eTOOMANYREFS = Errno (cCONST_ETOOMANYREFS) +eTXTBSY = Errno (cCONST_ETXTBSY) +eUSERS = Errno (cCONST_EUSERS) +eWOULDBLOCK = Errno (cCONST_EWOULDBLOCK) +eXDEV = Errno (cCONST_EXDEV) -- checks whether the given errno value is supported on the current -- architecture @@ -457,7 +456,7 @@ errnoToIOError loc errno maybeHdl maybeName = unsafePerformIO $ do | errno == eNFILE = ResourceExhausted | errno == eNOBUFS = ResourceExhausted | errno == eNODATA = NoSuchThing - | errno == eNODEV = NoSuchThing + | errno == eNODEV = UnsupportedOperation | errno == eNOENT = NoSuchThing | errno == eNOEXEC = InvalidArgument | errno == eNOLCK = ResourceExhausted @@ -512,4 +511,107 @@ errnoToIOError loc errno maybeHdl maybeName = unsafePerformIO $ do return (userError (loc ++ ": " ++ str ++ maybe "" (": "++) maybeName)) #endif -foreign import unsafe strerror :: Errno -> IO (Ptr CChar) +foreign import ccall unsafe strerror :: Errno -> IO (Ptr CChar) + + +-- Dreadfully tedious callouts to wrappers which define the +-- actual values for the error codes. +foreign import ccall unsafe "prel_error_E2BIG" cCONST_E2BIG :: CInt +foreign import ccall unsafe "prel_error_EACCES" cCONST_EACCES :: CInt +foreign import ccall unsafe "prel_error_EADDRINUSE" cCONST_EADDRINUSE :: CInt +foreign import ccall unsafe "prel_error_EADDRNOTAVAIL" cCONST_EADDRNOTAVAIL :: CInt +foreign import ccall unsafe "prel_error_EADV" cCONST_EADV :: CInt +foreign import ccall unsafe "prel_error_EAFNOSUPPORT" cCONST_EAFNOSUPPORT :: CInt +foreign import ccall unsafe "prel_error_EAGAIN" cCONST_EAGAIN :: CInt +foreign import ccall unsafe "prel_error_EALREADY" cCONST_EALREADY :: CInt +foreign import ccall unsafe "prel_error_EBADF" cCONST_EBADF :: CInt +foreign import ccall unsafe "prel_error_EBADMSG" cCONST_EBADMSG :: CInt +foreign import ccall unsafe "prel_error_EBADRPC" cCONST_EBADRPC :: CInt +foreign import ccall unsafe "prel_error_EBUSY" cCONST_EBUSY :: CInt +foreign import ccall unsafe "prel_error_ECHILD" cCONST_ECHILD :: CInt +foreign import ccall unsafe "prel_error_ECOMM" cCONST_ECOMM :: CInt +foreign import ccall unsafe "prel_error_ECONNABORTED" cCONST_ECONNABORTED :: CInt +foreign import ccall unsafe "prel_error_ECONNREFUSED" cCONST_ECONNREFUSED :: CInt +foreign import ccall unsafe "prel_error_ECONNRESET" cCONST_ECONNRESET :: CInt +foreign import ccall unsafe "prel_error_EDEADLK" cCONST_EDEADLK :: CInt +foreign import ccall unsafe "prel_error_EDESTADDRREQ" cCONST_EDESTADDRREQ :: CInt +foreign import ccall unsafe "prel_error_EDIRTY" cCONST_EDIRTY :: CInt +foreign import ccall unsafe "prel_error_EDOM" cCONST_EDOM :: CInt +foreign import ccall unsafe "prel_error_EDQUOT" cCONST_EDQUOT :: CInt +foreign import ccall unsafe "prel_error_EEXIST" cCONST_EEXIST :: CInt +foreign import ccall unsafe "prel_error_EFAULT" cCONST_EFAULT :: CInt +foreign import ccall unsafe "prel_error_EFBIG" cCONST_EFBIG :: CInt +foreign import ccall unsafe "prel_error_EFTYPE" cCONST_EFTYPE :: CInt +foreign import ccall unsafe "prel_error_EHOSTDOWN" cCONST_EHOSTDOWN :: CInt +foreign import ccall unsafe "prel_error_EHOSTUNREACH" cCONST_EHOSTUNREACH :: CInt +foreign import ccall unsafe "prel_error_EIDRM" cCONST_EIDRM :: CInt +foreign import ccall unsafe "prel_error_EILSEQ" cCONST_EILSEQ :: CInt +foreign import ccall unsafe "prel_error_EINPROGRESS" cCONST_EINPROGRESS :: CInt +foreign import ccall unsafe "prel_error_EINTR" cCONST_EINTR :: CInt +foreign import ccall unsafe "prel_error_EINVAL" cCONST_EINVAL :: CInt +foreign import ccall unsafe "prel_error_EIO" cCONST_EIO :: CInt +foreign import ccall unsafe "prel_error_EISCONN" cCONST_EISCONN :: CInt +foreign import ccall unsafe "prel_error_EISDIR" cCONST_EISDIR :: CInt +foreign import ccall unsafe "prel_error_ELOOP" cCONST_ELOOP :: CInt +foreign import ccall unsafe "prel_error_EMFILE" cCONST_EMFILE :: CInt +foreign import ccall unsafe "prel_error_EMLINK" cCONST_EMLINK :: CInt +foreign import ccall unsafe "prel_error_EMSGSIZE" cCONST_EMSGSIZE :: CInt +foreign import ccall unsafe "prel_error_EMULTIHOP" cCONST_EMULTIHOP :: CInt +foreign import ccall unsafe "prel_error_ENAMETOOLONG" cCONST_ENAMETOOLONG :: CInt +foreign import ccall unsafe "prel_error_ENETDOWN" cCONST_ENETDOWN :: CInt +foreign import ccall unsafe "prel_error_ENETRESET" cCONST_ENETRESET :: CInt +foreign import ccall unsafe "prel_error_ENETUNREACH" cCONST_ENETUNREACH :: CInt +foreign import ccall unsafe "prel_error_ENFILE" cCONST_ENFILE :: CInt +foreign import ccall unsafe "prel_error_ENOBUFS" cCONST_ENOBUFS :: CInt +foreign import ccall unsafe "prel_error_ENODATA" cCONST_ENODATA :: CInt +foreign import ccall unsafe "prel_error_ENODEV" cCONST_ENODEV :: CInt +foreign import ccall unsafe "prel_error_ENOENT" cCONST_ENOENT :: CInt +foreign import ccall unsafe "prel_error_ENOEXEC" cCONST_ENOEXEC :: CInt +foreign import ccall unsafe "prel_error_ENOLCK" cCONST_ENOLCK :: CInt +foreign import ccall unsafe "prel_error_ENOLINK" cCONST_ENOLINK :: CInt +foreign import ccall unsafe "prel_error_ENOMEM" cCONST_ENOMEM :: CInt +foreign import ccall unsafe "prel_error_ENOMSG" cCONST_ENOMSG :: CInt +foreign import ccall unsafe "prel_error_ENONET" cCONST_ENONET :: CInt +foreign import ccall unsafe "prel_error_ENOPROTOOPT" cCONST_ENOPROTOOPT :: CInt +foreign import ccall unsafe "prel_error_ENOSPC" cCONST_ENOSPC :: CInt +foreign import ccall unsafe "prel_error_ENOSR" cCONST_ENOSR :: CInt +foreign import ccall unsafe "prel_error_ENOSTR" cCONST_ENOSTR :: CInt +foreign import ccall unsafe "prel_error_ENOSYS" cCONST_ENOSYS :: CInt +foreign import ccall unsafe "prel_error_ENOTBLK" cCONST_ENOTBLK :: CInt +foreign import ccall unsafe "prel_error_ENOTCONN" cCONST_ENOTCONN :: CInt +foreign import ccall unsafe "prel_error_ENOTDIR" cCONST_ENOTDIR :: CInt +foreign import ccall unsafe "prel_error_ENOTEMPTY" cCONST_ENOTEMPTY :: CInt +foreign import ccall unsafe "prel_error_ENOTSOCK" cCONST_ENOTSOCK :: CInt +foreign import ccall unsafe "prel_error_ENOTTY" cCONST_ENOTTY :: CInt +foreign import ccall unsafe "prel_error_ENXIO" cCONST_ENXIO :: CInt +foreign import ccall unsafe "prel_error_EOPNOTSUPP" cCONST_EOPNOTSUPP :: CInt +foreign import ccall unsafe "prel_error_EPERM" cCONST_EPERM :: CInt +foreign import ccall unsafe "prel_error_EPFNOSUPPORT" cCONST_EPFNOSUPPORT :: CInt +foreign import ccall unsafe "prel_error_EPIPE" cCONST_EPIPE :: CInt +foreign import ccall unsafe "prel_error_EPROCLIM" cCONST_EPROCLIM :: CInt +foreign import ccall unsafe "prel_error_EPROCUNAVAIL" cCONST_EPROCUNAVAIL :: CInt +foreign import ccall unsafe "prel_error_EPROGMISMATCH" cCONST_EPROGMISMATCH :: CInt +foreign import ccall unsafe "prel_error_EPROGUNAVAIL" cCONST_EPROGUNAVAIL :: CInt +foreign import ccall unsafe "prel_error_EPROTO" cCONST_EPROTO :: CInt +foreign import ccall unsafe "prel_error_EPROTONOSUPPORT" cCONST_EPROTONOSUPPORT :: CInt +foreign import ccall unsafe "prel_error_EPROTOTYPE" cCONST_EPROTOTYPE :: CInt +foreign import ccall unsafe "prel_error_ERANGE" cCONST_ERANGE :: CInt +foreign import ccall unsafe "prel_error_EREMCHG" cCONST_EREMCHG :: CInt +foreign import ccall unsafe "prel_error_EREMOTE" cCONST_EREMOTE :: CInt +foreign import ccall unsafe "prel_error_EROFS" cCONST_EROFS :: CInt +foreign import ccall unsafe "prel_error_ERPCMISMATCH" cCONST_ERPCMISMATCH :: CInt +foreign import ccall unsafe "prel_error_ERREMOTE" cCONST_ERREMOTE :: CInt +foreign import ccall unsafe "prel_error_ESHUTDOWN" cCONST_ESHUTDOWN :: CInt +foreign import ccall unsafe "prel_error_ESOCKTNOSUPPORT" cCONST_ESOCKTNOSUPPORT :: CInt +foreign import ccall unsafe "prel_error_ESPIPE" cCONST_ESPIPE :: CInt +foreign import ccall unsafe "prel_error_ESRCH" cCONST_ESRCH :: CInt +foreign import ccall unsafe "prel_error_ESRMNT" cCONST_ESRMNT :: CInt +foreign import ccall unsafe "prel_error_ESTALE" cCONST_ESTALE :: CInt +foreign import ccall unsafe "prel_error_ETIME" cCONST_ETIME :: CInt +foreign import ccall unsafe "prel_error_ETIMEDOUT" cCONST_ETIMEDOUT :: CInt +foreign import ccall unsafe "prel_error_ETOOMANYREFS" cCONST_ETOOMANYREFS :: CInt +foreign import ccall unsafe "prel_error_ETXTBSY" cCONST_ETXTBSY :: CInt +foreign import ccall unsafe "prel_error_EUSERS" cCONST_EUSERS :: CInt +foreign import ccall unsafe "prel_error_EWOULDBLOCK" cCONST_EWOULDBLOCK :: CInt +foreign import ccall unsafe "prel_error_EXDEV" cCONST_EXDEV :: CInt +