1 /* $NetBSD: linux_errno.c,v 1.9 1998/10/23 03:53:18 erh Exp $ */ 2 3 /*- 4 * Copyright (c) 1995 The NetBSD Foundation, Inc. 5 * All rights reserved. 6 * 7 * This code is derived from software contributed to The NetBSD Foundation 8 * by Frank van der Linden. 9 * 10 * Redistribution and use in source and binary forms, with or without 11 * modification, are permitted provided that the following conditions 12 * are met: 13 * 1. Redistributions of source code must retain the above copyright 14 * notice, this list of conditions and the following disclaimer. 15 * 2. Redistributions in binary form must reproduce the above copyright 16 * notice, this list of conditions and the following disclaimer in the 17 * documentation and/or other materials provided with the distribution. 18 * 3. All advertising materials mentioning features or use of this software 19 * must display the following acknowledgement: 20 * This product includes software developed by the NetBSD 21 * Foundation, Inc. and its contributors. 22 * 4. Neither the name of The NetBSD Foundation nor the names of its 23 * contributors may be used to endorse or promote products derived 24 * from this software without specific prior written permission. 25 * 26 * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS 27 * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED 28 * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 29 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS 30 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 31 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 32 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 33 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 34 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 35 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 36 * POSSIBILITY OF SUCH DAMAGE. 37 */ 38 39 #include <compat/linux/common/linux_errno.h> 40 41 /* 42 * This list is used to translate NetBSD errnos to linux errnos 43 * when returning from a system call. (NetBSD system call->linux program) 44 */ 45 int native_to_linux_errno[] = { 46 0, 47 -LINUX_EPERM, 48 -LINUX_ENOENT, 49 -LINUX_ESRCH, 50 -LINUX_EINTR, 51 -LINUX_EIO, 52 -LINUX_ENXIO, 53 -LINUX_E2BIG, 54 -LINUX_ENOEXEC, 55 -LINUX_EBADF, 56 -LINUX_ECHILD, 57 -LINUX_EDEADLK, 58 -LINUX_ENOMEM, 59 -LINUX_EACCES, 60 -LINUX_EFAULT, 61 -LINUX_ENOTBLK, 62 -LINUX_EBUSY, 63 -LINUX_EEXIST, 64 -LINUX_EXDEV, 65 -LINUX_ENODEV, 66 -LINUX_ENOTDIR, 67 -LINUX_EISDIR, 68 -LINUX_EINVAL, 69 -LINUX_ENFILE, 70 -LINUX_EMFILE, 71 -LINUX_ENOTTY, 72 -LINUX_ETXTBSY, 73 -LINUX_EFBIG, 74 -LINUX_ENOSPC, 75 -LINUX_ESPIPE, 76 -LINUX_EROFS, 77 -LINUX_EMLINK, 78 -LINUX_EPIPE, 79 -LINUX_EDOM, 80 -LINUX_ERANGE, 81 -LINUX_EAGAIN, 82 -LINUX_EINPROGRESS, 83 -LINUX_EALREADY, 84 -LINUX_ENOTSOCK, 85 -LINUX_EDESTADDRREQ, 86 -LINUX_EMSGSIZE, 87 -LINUX_EPROTOTYPE, 88 -LINUX_ENOPROTOOPT, 89 -LINUX_EPROTONOSUPPORT, 90 -LINUX_ESOCKTNOSUPPORT, 91 -LINUX_EOPNOTSUPP, 92 -LINUX_EPFNOSUPPORT, 93 -LINUX_EAFNOSUPPORT, 94 -LINUX_EADDRINUSE, 95 -LINUX_EADDRNOTAVAIL, 96 -LINUX_ENETDOWN, 97 -LINUX_ENETUNREACH, 98 -LINUX_ENETRESET, 99 -LINUX_ECONNABORTED, 100 -LINUX_ECONNRESET, 101 -LINUX_ENOBUFS, 102 -LINUX_EISCONN, 103 -LINUX_ENOTCONN, 104 -LINUX_ESHUTDOWN, 105 -LINUX_ETOOMANYREFS, 106 -LINUX_ETIMEDOUT, 107 -LINUX_ECONNREFUSED, 108 -LINUX_ELOOP, 109 -LINUX_ENAMETOOLONG, 110 -LINUX_EHOSTDOWN, 111 -LINUX_EHOSTUNREACH, 112 -LINUX_ENOTEMPTY, 113 -LINUX_ENOSYS, /* not mapped (EPROCLIM) */ 114 -LINUX_EUSERS, 115 -LINUX_EDQUOT, 116 -LINUX_ESTALE, 117 -LINUX_EREMOTE, 118 -LINUX_ENOSYS, /* not mapped (EBADRPC) */ 119 -LINUX_ENOSYS, /* not mapped (ERPCMISMATCH) */ 120 -LINUX_ENOSYS, /* not mapped (EPROGUNAVAIL) */ 121 -LINUX_ENOSYS, /* not mapped (EPROGMISMATCH) */ 122 -LINUX_ENOSYS, /* not mapped (EPROCUNAVAIL) */ 123 -LINUX_ENOLCK, 124 -LINUX_ENOSYS, 125 -LINUX_ENOSYS, /* not mapped (EFTYPE) */ 126 -LINUX_ENOSYS, /* not mapped (EAUTH) */ 127 -LINUX_ENOSYS, /* not mapped (ENEEDAUTH) */ 128 -LINUX_EIDRM, 129 -LINUX_ENOMSG, /* 83 */ 130 131 /* 132 * The rest of the list consists of errors that only 133 * Linux has. They can be used to map them on to 134 * themselves, so Linux emulating syscalls can return 135 * these values. 136 */ 137 138 -LINUX_ECHRNG, 139 -LINUX_EL2NSYNC, 140 -LINUX_EL3HLT, 141 -LINUX_EL3RST, 142 -LINUX_ELNRNG, 143 -LINUX_EUNATCH, 144 -LINUX_ENOCSI, 145 -LINUX_EL2HLT, 146 -LINUX_EBADE, 147 -LINUX_EBADR, 148 -LINUX_EXFULL, 149 -LINUX_ENOANO, 150 -LINUX_EBADRQC, 151 -LINUX_EBADSLT, 152 -LINUX_EDEADLOCK, 153 -LINUX_EBFONT, 154 -LINUX_ENOSTR, 155 -LINUX_ENODATA, 156 -LINUX_ETIME, 157 -LINUX_ENOSR, 158 -LINUX_ENONET, 159 -LINUX_ENOPKG, 160 -LINUX_ENOLINK, 161 -LINUX_EADV, 162 -LINUX_ESRMNT, 163 -LINUX_ECOMM, 164 -LINUX_EPROTO, 165 -LINUX_EMULTIHOP, 166 -LINUX_EDOTDOT, 167 -LINUX_EBADMSG, 168 -LINUX_EOVERFLOW, 169 -LINUX_ENOTUNIQ, 170 -LINUX_EBADFD, 171 -LINUX_EREMCHG, 172 -LINUX_ELIBACC, 173 -LINUX_ELIBBAD, 174 -LINUX_ELIBSCN, 175 -LINUX_ELIBMAX, 176 -LINUX_ELIBEXEC, 177 -LINUX_EILSEQ, 178 -LINUX_ERESTART, 179 -LINUX_ESTRPIPE, 180 -LINUX_EUCLEAN, 181 -LINUX_ENOTNAM, 182 -LINUX_ENAVAIL, 183 -LINUX_EISNAM, 184 -LINUX_EREMOTEIO, 185 }; 186