|  | /* $Id: errtbls.c,v 1.2 1995/11/25 00:57:55 davem Exp $ | 
|  | * errtbls.c: Error number conversion tables between various syscall | 
|  | *            OS semantics. | 
|  | * | 
|  | * Copyright (C) 1995 David S. Miller (davem@caip.rutgers.edu) | 
|  | * | 
|  | * Based upon preliminary work which is: | 
|  | * | 
|  | * Copyright (C) 1995 Adrian M. Rodriguez (adrian@remus.rutgers.edu) | 
|  | */ | 
|  |  | 
|  | #include <asm/bsderrno.h>        /* NetBSD (bsd4.4) errnos */ | 
|  | #include <asm/solerrno.h>        /* Solaris errnos */ | 
|  |  | 
|  | /* Here are tables which convert between Linux/SunOS error number | 
|  | * values to the equivalent in other OSs.  Note that since the Linux | 
|  | * ones have been set up to match exactly those of SunOS, no | 
|  | * translation table is needed for that OS. | 
|  | */ | 
|  |  | 
|  | int solaris_errno[] = { | 
|  | 0, | 
|  | SOL_EPERM, | 
|  | SOL_ENOENT, | 
|  | SOL_ESRCH, | 
|  | SOL_EINTR, | 
|  | SOL_EIO, | 
|  | SOL_ENXIO, | 
|  | SOL_E2BIG, | 
|  | SOL_ENOEXEC, | 
|  | SOL_EBADF, | 
|  | SOL_ECHILD, | 
|  | SOL_EAGAIN, | 
|  | SOL_ENOMEM, | 
|  | SOL_EACCES, | 
|  | SOL_EFAULT, | 
|  | SOL_NOTBLK, | 
|  | SOL_EBUSY, | 
|  | SOL_EEXIST, | 
|  | SOL_EXDEV, | 
|  | SOL_ENODEV, | 
|  | SOL_ENOTDIR, | 
|  | SOL_EISDIR, | 
|  | SOL_EINVAL, | 
|  | SOL_ENFILE, | 
|  | SOL_EMFILE, | 
|  | SOL_ENOTTY, | 
|  | SOL_ETXTBSY, | 
|  | SOL_EFBIG, | 
|  | SOL_ENOSPC, | 
|  | SOL_ESPIPE, | 
|  | SOL_EROFS, | 
|  | SOL_EMLINK, | 
|  | SOL_EPIPE, | 
|  | SOL_EDOM, | 
|  | SOL_ERANGE, | 
|  | SOL_EWOULDBLOCK, | 
|  | SOL_EINPROGRESS, | 
|  | SOL_EALREADY, | 
|  | SOL_ENOTSOCK, | 
|  | SOL_EDESTADDRREQ, | 
|  | SOL_EMSGSIZE, | 
|  | SOL_EPROTOTYPE, | 
|  | SOL_ENOPROTOOPT, | 
|  | SOL_EPROTONOSUPPORT, | 
|  | SOL_ESOCKTNOSUPPORT, | 
|  | SOL_EOPNOTSUPP, | 
|  | SOL_EPFNOSUPPORT, | 
|  | SOL_EAFNOSUPPORT, | 
|  | SOL_EADDRINUSE, | 
|  | SOL_EADDRNOTAVAIL, | 
|  | SOL_ENETDOWN, | 
|  | SOL_ENETUNREACH, | 
|  | SOL_ENETRESET, | 
|  | SOL_ECONNABORTED, | 
|  | SOL_ECONNRESET, | 
|  | SOL_ENOBUFS, | 
|  | SOL_EISCONN, | 
|  | SOL_ENOTONN, | 
|  | SOL_ESHUTDOWN, | 
|  | SOL_ETOOMANYREFS, | 
|  | SOL_ETIMEDOUT, | 
|  | SOL_ECONNREFUSED, | 
|  | SOL_ELOOP, | 
|  | SOL_ENAMETOOLONG, | 
|  | SOL_EHOSTDOWN, | 
|  | SOL_EHOSTUNREACH, | 
|  | SOL_ENOTEMPTY, | 
|  | SOL_EPROCLIM, | 
|  | SOL_EUSERS, | 
|  | SOL_EDQUOT, | 
|  | SOL_ESTALE, | 
|  | SOL_EREMOTE, | 
|  | SOL_ENOSTR, | 
|  | SOL_ETIME, | 
|  | SOL_ENOSR, | 
|  | SOL_ENOMSG, | 
|  | SOL_EBADMSG, | 
|  | SOL_IDRM, | 
|  | SOL_EDEADLK, | 
|  | SOL_ENOLCK, | 
|  | SOL_ENONET, | 
|  | SOL_ERREMOTE, | 
|  | SOL_ENOLINK, | 
|  | SOL_EADV, | 
|  | SOL_ESRMNT, | 
|  | SOL_ECOMM, | 
|  | SOL_EPROTO, | 
|  | SOL_EMULTIHOP, | 
|  | SOL_EINVAL,    /* EDOTDOT XXX??? */ | 
|  | SOL_REMCHG, | 
|  | SOL_NOSYS, | 
|  | SOL_STRPIPE, | 
|  | SOL_EOVERFLOW, | 
|  | SOL_EBADFD, | 
|  | SOL_ECHRNG, | 
|  | SOL_EL2NSYNC, | 
|  | SOL_EL3HLT, | 
|  | SOL_EL3RST, | 
|  | SOL_NRNG, | 
|  | SOL_EUNATCH, | 
|  | SOL_ENOCSI, | 
|  | SOL_EL2HLT, | 
|  | SOL_EBADE, | 
|  | SOL_EBADR, | 
|  | SOL_EXFULL, | 
|  | SOL_ENOANO, | 
|  | SOL_EBADRQC, | 
|  | SOL_EBADSLT, | 
|  | SOL_EDEADLOCK, | 
|  | SOL_EBFONT, | 
|  | SOL_ELIBEXEC, | 
|  | SOL_ENODATA, | 
|  | SOL_ELIBBAD, | 
|  | SOL_ENOPKG, | 
|  | SOL_ELIBACC, | 
|  | SOL_ENOTUNIQ, | 
|  | SOL_ERESTART, | 
|  | SOL_EUCLEAN, | 
|  | SOL_ENOTNAM, | 
|  | SOL_ENAVAIL, | 
|  | SOL_EISNAM, | 
|  | SOL_EREMOTEIO, | 
|  | SOL_EILSEQ, | 
|  | SOL_ELIBMAX, | 
|  | SOL_ELIBSCN, | 
|  | }; | 
|  |  | 
|  | int netbsd_errno[] = { | 
|  | 0, | 
|  | BSD_EPERM, | 
|  | BSD_ENOENT, | 
|  | BSD_ESRCH, | 
|  | BSD_EINTR, | 
|  | BSD_EIO, | 
|  | BSD_ENXIO, | 
|  | BSD_E2BIG, | 
|  | BSD_ENOEXEC, | 
|  | BSD_EBADF, | 
|  | BSD_ECHILD, | 
|  | BSD_EAGAIN, | 
|  | BSD_ENOMEM, | 
|  | BSD_EACCES, | 
|  | BSD_EFAULT, | 
|  | BSD_NOTBLK, | 
|  | BSD_EBUSY, | 
|  | BSD_EEXIST, | 
|  | BSD_EXDEV, | 
|  | BSD_ENODEV, | 
|  | BSD_ENOTDIR, | 
|  | BSD_EISDIR, | 
|  | BSD_EINVAL, | 
|  | BSD_ENFILE, | 
|  | BSD_EMFILE, | 
|  | BSD_ENOTTY, | 
|  | BSD_ETXTBSY, | 
|  | BSD_EFBIG, | 
|  | BSD_ENOSPC, | 
|  | BSD_ESPIPE, | 
|  | BSD_EROFS, | 
|  | BSD_EMLINK, | 
|  | BSD_EPIPE, | 
|  | BSD_EDOM, | 
|  | BSD_ERANGE, | 
|  | BSD_EWOULDBLOCK, | 
|  | BSD_EINPROGRESS, | 
|  | BSD_EALREADY, | 
|  | BSD_ENOTSOCK, | 
|  | BSD_EDESTADDRREQ, | 
|  | BSD_EMSGSIZE, | 
|  | BSD_EPROTOTYPE, | 
|  | BSD_ENOPROTOOPT, | 
|  | BSD_EPROTONOSUPPORT, | 
|  | BSD_ESOCKTNOSUPPORT, | 
|  | BSD_EOPNOTSUPP, | 
|  | BSD_EPFNOSUPPORT, | 
|  | BSD_EAFNOSUPPORT, | 
|  | BSD_EADDRINUSE, | 
|  | BSD_EADDRNOTAVAIL, | 
|  | BSD_ENETDOWN, | 
|  | BSD_ENETUNREACH, | 
|  | BSD_ENETRESET, | 
|  | BSD_ECONNABORTED, | 
|  | BSD_ECONNRESET, | 
|  | BSD_ENOBUFS, | 
|  | BSD_EISCONN, | 
|  | BSD_ENOTONN, | 
|  | BSD_ESHUTDOWN, | 
|  | BSD_ETOOMANYREFS, | 
|  | BSD_ETIMEDOUT, | 
|  | BSD_ECONNREFUSED, | 
|  | BSD_ELOOP, | 
|  | BSD_ENAMETOOLONG, | 
|  | BSD_EHOSTDOWN, | 
|  | BSD_EHOSTUNREACH, | 
|  | BSD_ENOTEMPTY, | 
|  | BSD_EPROCLIM, | 
|  | BSD_EUSERS, | 
|  | BSD_EDQUOT, | 
|  | BSD_ESTALE, | 
|  | BSD_EREMOTE, | 
|  | BSD_ENOSTR, | 
|  | BSD_ETIME, | 
|  | BSD_ENOSR, | 
|  | BSD_ENOMSG, | 
|  | BSD_EBADMSG, | 
|  | BSD_IDRM, | 
|  | BSD_EDEADLK, | 
|  | BSD_ENOLCK, | 
|  | BSD_ENONET, | 
|  | BSD_ERREMOTE, | 
|  | BSD_ENOLINK, | 
|  | BSD_EADV, | 
|  | BSD_ESRMNT, | 
|  | BSD_ECOMM, | 
|  | BSD_EPROTO, | 
|  | BSD_EMULTIHOP, | 
|  | BSD_EINVAL,    /* EDOTDOT XXX??? */ | 
|  | BSD_REMCHG, | 
|  | BSD_NOSYS, | 
|  | BSD_STRPIPE, | 
|  | BSD_EOVERFLOW, | 
|  | BSD_EBADFD, | 
|  | BSD_ECHRNG, | 
|  | BSD_EL2NSYNC, | 
|  | BSD_EL3HLT, | 
|  | BSD_EL3RST, | 
|  | BSD_NRNG, | 
|  | BSD_EUNATCH, | 
|  | BSD_ENOCSI, | 
|  | BSD_EL2HLT, | 
|  | BSD_EBADE, | 
|  | BSD_EBADR, | 
|  | BSD_EXFULL, | 
|  | BSD_ENOANO, | 
|  | BSD_EBADRQC, | 
|  | BSD_EBADSLT, | 
|  | BSD_EDEADLOCK, | 
|  | BSD_EBFONT, | 
|  | BSD_ELIBEXEC, | 
|  | BSD_ENODATA, | 
|  | BSD_ELIBBAD, | 
|  | BSD_ENOPKG, | 
|  | BSD_ELIBACC, | 
|  | BSD_ENOTUNIQ, | 
|  | BSD_ERESTART, | 
|  | BSD_EUCLEAN, | 
|  | BSD_ENOTNAM, | 
|  | BSD_ENAVAIL, | 
|  | BSD_EISNAM, | 
|  | BSD_EREMOTEIO, | 
|  | BSD_EILSEQ, | 
|  | BSD_ELIBMAX, | 
|  | BSD_ELIBSCN, | 
|  | }; | 
|  |  |