% -----------------------------------------------------------------------------
-% $Id: PrelCError.lhs,v 1.2 2001/01/12 17:45:30 qrczak Exp $
+% $Id: PrelCError.lhs,v 1.3 2001/01/15 20:55:14 qrczak Exp $
%
% (c) The FFI task force, 2000
%
-- Haskell representation for "errno" values
--
Errno(..), -- instance: Eq
- e2BIG, eACCES, eADDRINUSE, eADDRNOTAVAIL, eADV, eAFNOSUPPORT, eAGAIN,
+ eOK, e2BIG, eACCES, eADDRINUSE, eADDRNOTAVAIL, eADV, eAFNOSUPPORT, eAGAIN,
eALREADY, eBADF, eBADMSG, eBADRPC, eBUSY, eCHILD, eCOMM, eCONNABORTED,
eCONNREFUSED, eCONNRESET, eDEADLK, eDESTADDRREQ, eDIRTY, eDOM, eDQUOT,
eEXIST, eFAULT, eFBIG, eFTYPE, eHOSTDOWN, eHOSTUNREACH, eIDRM, eILSEQ,
-- common "errno" symbols
--
-e2BIG, eACCES, eADDRINUSE, eADDRNOTAVAIL, eADV, eAFNOSUPPORT, eAGAIN,
+eOK, e2BIG, eACCES, eADDRINUSE, eADDRNOTAVAIL, eADV, eAFNOSUPPORT, eAGAIN,
eALREADY, eBADF, eBADMSG, eBADRPC, eBUSY, eCHILD, eCOMM, eCONNABORTED,
eCONNREFUSED, eCONNRESET, eDEADLK, eDESTADDRREQ, eDIRTY, eDOM, eDQUOT,
eEXIST, eFAULT, eFBIG, eFTYPE, eHOSTDOWN, eHOSTUNREACH, eIDRM, eILSEQ,
-- 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
--
isValidErrno :: Errno -> Bool
--
--- the configure script sets all invalid "errno"s to 0
+-- the configure script sets all invalid "errno"s to -1
--
-isValidErrno (Errno errno) = errno /= 0
+isValidErrno (Errno errno) = errno /= -1
-- access to the current thread's "errno" value
#endif
where
(errType, str)
- | no == 0 = (OtherError,
+ | errno == eOK = (OtherError,
"no error")
| errno == e2BIG = (ResourceExhausted,
"argument list too long")