/* $NetBSD: osf1_errno.c,v 1.5 2002/03/31 22:22:48 christos Exp $ */

/*
 * Copyright (c) 1999 Christopher G. Demetriou.  All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 * 1. Redistributions of source code must retain the above copyright
 *    notice, this list of conditions and the following disclaimer.
 * 2. Redistributions in binary form must reproduce the above copyright
 *    notice, this list of conditions and the following disclaimer in the
 *    documentation and/or other materials provided with the distribution.
 * 3. All advertising materials mentioning features or use of this software
 *    must display the following acknowledgement:
 *      This product includes software developed by Christopher G. Demetriou
 *	for the NetBSD Project.
 * 4. The name of the author may not be used to endorse or promote products
 *    derived from this software without specific prior written permission
 *
 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */

#include <sys/cdefs.h>
__KERNEL_RCSID(0, "$NetBSD: osf1_errno.c,v 1.5 2002/03/31 22:22:48 christos Exp $");

#include <compat/osf1/osf1.h>
#include <compat/osf1/osf1_cvt.h>

/*
 * This table is used to translate NetBSD errnos to OSF/1 errnos
 * when returning from a system call.
 *
 * It is up to date as of Digital UNIX V4.0 and NetBSD 1.4.
 */

const int native_to_osf1_errno[] = {
    0,
    OSF1_EPERM,			/* EPERM (1) -> 1 */
    OSF1_ENOENT,		/* ENOENT (2) -> 2 */
    OSF1_ESRCH,			/* ESRCH (3) -> 3 */
    OSF1_EINTR,			/* EINTR (4) -> 4 */
    OSF1_EIO,			/* EIO (5) -> 5 */
    OSF1_ENXIO,			/* ENXIO (6) -> 6 */
    OSF1_E2BIG,			/* E2BIG (7) -> 7 */
    OSF1_ENOEXEC,		/* ENOEXEC (8) -> 8 */
    OSF1_EBADF,			/* EBADF (9) -> 9 */
    OSF1_ECHILD,		/* ECHILD (10) -> 10 */
    OSF1_EDEADLK,		/* EDEADLK (11) -> 11 */
    OSF1_ENOMEM,		/* ENOMEM (12) -> 12 */
    OSF1_EACCES,		/* EACCES (13) -> 13 */
    OSF1_EFAULT,		/* EFAULT (14) -> 14 */
    OSF1_ENOTBLK,		/* ENOTBLK (15) -> 15 */
    OSF1_EBUSY,			/* EBUSY (16) -> 16 */
    OSF1_EEXIST,		/* EEXIST (17) -> 17 */
    OSF1_EXDEV,			/* EXDEV (18) -> 18 */
    OSF1_ENODEV,		/* ENODEV (19) -> 19 */
    OSF1_ENOTDIR,		/* ENOTDIR (20) -> 20 */
    OSF1_EISDIR,		/* EISDIR (21) -> 21 */
    OSF1_EINVAL,		/* EINVAL (22) -> 22 */
    OSF1_ENFILE,		/* ENFILE (23) -> 23 */
    OSF1_EMFILE,		/* EMFILE (24) -> 24 */
    OSF1_ENOTTY,		/* ENOTTY (25) -> 25 */
    OSF1_ETXTBSY,		/* ETXTBSY (26) -> 26 */
    OSF1_EFBIG,			/* EFBIG (27) -> 27 */
    OSF1_ENOSPC,		/* ENOSPC (28) -> 28 */
    OSF1_ESPIPE,		/* ESPIPE (29) -> 29 */
    OSF1_EROFS,			/* EROFS (30) -> 30 */
    OSF1_EMLINK,		/* EMLINK (31) -> 31 */
    OSF1_EPIPE,			/* EPIPE (32) -> 32 */
    OSF1_EDOM,			/* EDOM (33) -> 33 */
    OSF1_ERANGE,		/* ERANGE (34) -> 34 */
    OSF1_EWOULDBLOCK,		/* EAGAIN (35) -> OSF1_EWOULDBLOCK (35) */
    OSF1_EINPROGRESS,		/* EINPROGRESS (36) -> 36 */
    OSF1_EALREADY,		/* EALREADY (37) -> 37 */
    OSF1_ENOTSOCK,		/* ENOTSOCK (38) -> 38 */
    OSF1_EDESTADDRREQ,		/* EDESTADDRREQ (39) -> 39 */
    OSF1_EMSGSIZE,		/* EMSGSIZE (40) -> 40 */
    OSF1_EPROTOTYPE,		/* EPROTOTYPE (41) -> 41 */
    OSF1_ENOPROTOOPT,		/* ENOPROTOOPT (42) -> 42 */
    OSF1_EPROTONOSUPPORT,	/* EPROTONOSUPPORT (43) -> 43 */
    OSF1_ESOCKTNOSUPPORT,	/* ESOCKTNOSUPPORT (44) -> 44 */
    OSF1_EOPNOTSUPP,		/* EOPNOTSUPP (45) -> 45 */
    OSF1_EPFNOSUPPORT,		/* EPFNOSUPPORT (46) -> 46 */
    OSF1_EAFNOSUPPORT,		/* EAFNOSUPPORT (47) -> 47 */
    OSF1_EADDRINUSE,		/* EADDRINUSE (48) -> 48 */
    OSF1_EADDRNOTAVAIL,		/* EADDRNOTAVAIL (49) -> 49 */
    OSF1_ENETDOWN,		/* ENETDOWN (50) -> 50 */
    OSF1_ENETUNREACH,		/* ENETUNREACH (51) -> 51 */
    OSF1_ENETRESET,		/* ENETRESET (52) -> 52 */
    OSF1_ECONNABORTED,		/* ECONNABORTED (53) -> 53 */
    OSF1_ECONNRESET,		/* ECONNRESET (54) -> 54 */
    OSF1_ENOBUFS,		/* ENOBUFS (55) -> 55 */
    OSF1_EISCONN,		/* EISCONN (56) -> 56 */
    OSF1_ENOTCONN,		/* ENOTCONN (57) -> 57 */
    OSF1_ESHUTDOWN,		/* ESHUTDOWN (58) -> 58 */
    OSF1_ETOOMANYREFS,		/* ETOOMANYREFS (59) -> 59 */
    OSF1_ETIMEDOUT,		/* ETIMEDOUT (60) -> 60 */
    OSF1_ECONNREFUSED,		/* ECONNREFUSED (61) -> 61 */
    OSF1_ELOOP,			/* ELOOP (62) -> 62 */
    OSF1_ENAMETOOLONG,		/* ENAMETOOLONG (63) -> 63 */
    OSF1_EHOSTDOWN,		/* EHOSTDOWN (64) -> 64 */
    OSF1_EHOSTUNREACH,		/* EHOSTUNREACH (65) -> 65 */
    OSF1_ENOTEMPTY,		/* ENOTEMPTY (66) -> 66 */
    OSF1_EPROCLIM,		/* EPROCLIM (67) -> 67 */
    OSF1_EUSERS,		/* EUSERS (68) -> 68 */
    OSF1_EDQUOT,		/* EDQUOT (69) -> 69 */
    OSF1_ESTALE,		/* ESTALE (70) -> 70 */
    OSF1_EREMOTE,		/* EREMOTE (71) -> 71 */
    OSF1_EBADRPC,		/* EBADRPC (72) -> 72 */
    OSF1_ERPCMISMATCH,		/* ERPCMISMATCH (73) -> 73 */
    OSF1_EPROGUNAVAIL,		/* EPROGUNAVAIL (74) -> 74 */
    OSF1_EPROGMISMATCH,		/* EPROGMISMATCH (75) -> 75 */
    OSF1_EPROCUNAVAIL,		/* EPROCUNAVAIL (76) -> 76 */
    OSF1_ENOLCK,		/* ENOLCK (77) -> 77 */
    OSF1_ENOSYS,		/* ENOSYS (78) -> 78 */
    OSF1_EFTYPE,		/* EFTYPE (79) -> 79 */
    OSF1_ENOSYS,		/* EAUTH (80) has no equivalent */
    OSF1_ENOSYS,		/* ENEEDAUTH (81) has no equivalent */
    OSF1_EIDRM,			/* EIDRM (82) -> 81 */
    OSF1_ENOMSG,		/* ENOMSG (83) -> 80 */
    OSF1_EOVERFLOW,		/* EOVERFLOW (84) -> 103 */
};
