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. 4 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 Κό•NewlineDelimiter –(cedarcode) style™šœ™Icodešœ Οeœ7™BKšœ*™*K™.K™#K™%K™,J™—šΟk ˜ Kšœ žœ˜,K˜ K˜Kšœžœžœ˜K˜—K˜KšΠlnœžœž˜ Kšžœ ˜Kšžœ˜šœž˜˜K˜—šΟn œžœžœ$žœ˜GKšœ5žœ˜SK˜K˜—š œžœžœžœ"˜\šœžœž˜K˜ Kšžœ˜Kšžœ˜Kšžœ ˜Kšžœ ˜Kšžœ ˜Kšžœ˜Kšžœ ˜Kšžœ ˜Kšžœ˜Kšžœ˜Kšžœ˜Kšžœ˜Kšžœ˜Kšžœžœ˜(Kšžœ˜Kšžœ˜Kšžœ˜Kšžœ˜Kšžœ˜ Kšžœ˜Kšžœ ˜—Kšœ˜—K˜K˜—K˜Kšžœ˜—…—ζ