UnixFSPrivateImpl.mesa
Copyright Ó 1989, 1991 by Xerox Corporation. All rights reserved.
Carl Hauser, July 26, 1989 10:13:42 am PDT
Bill Jackson (bj) May 31, 1989 10:09:54 pm PDT
Chauser, June 23, 1992 11:40 am PDT
Willie-s, August 20, 1991 4:39 pm PDT
Michael Plass, January 29, 1992 10:56 am PST
DIRECTORY
PFSBackdoor USING [ErrorCode, ProduceError],
UnixErrno,
UnixFSPrivate,
Rope USING [ROPE];
UnixFSPrivateImpl: CEDAR PROGRAM
IMPORTS PFSBackdoor
EXPORTS UnixFSPrivate
~ BEGIN
ReportFailure: PUBLIC PROC [errno: UnixErrno.Errno, msg: Rope.ROPE] ~ {
PFSBackdoor.ProduceError[TranslateErrno[errno], msg, NEW[UnixErrno.Errno ¬ errno]];
};
TranslateErrno: PUBLIC PROC [err: UnixErrno.Errno] RETURNS [code: PFSBackdoor.ErrorCode] ~ {
code ¬ SELECT err FROM
ok => ok,
EPERM => accessDenied,
ENOENT => unknownFile,
EIO => ioError,
ENXIO => ioError,
EBADF => ioError,
EACCES => accessDenied,
EFAULT => ioError,
ENOTBLK => ioError,
EEXIST => inconsistent,
EXDEV => inconsistent,
ENOTDIR => fileTypeMismatch,
EISDIR => fileTypeMismatch,
EINVAL => inconsistent,
ENFILE, EMFILE => resourceLimitExceeded,
EFBIG => resourceLimitExceeded,
ENOSPC => volumeFull,
ESPIPE => fileTypeMismatch,
EROFS => accessDenied,
EMLINK => resourceLimitExceeded,
EDQUOT => quotaExceeded,
ENDCASE => ioError;
};
END.