1/* 2 * Copyright 2016 Chris Torek <torek@ixsystems.com> 3 * All rights reserved 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted providing that the following conditions 7 * are met: 8 * 1. Redistributions of source code must retain the above copyright 9 * notice, this list of conditions and the following disclaimer. 10 * 2. Redistributions in binary form must reproduce the above copyright 11 * notice, this list of conditions and the following disclaimer in the 12 * documentation and/or other materials provided with the distribution. 13 * 14 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR 15 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 16 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 17 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY 18 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 19 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 20 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 21 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 22 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING 23 * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 24 * POSSIBILITY OF SUCH DAMAGE. 25 * 26 */ 27 28#ifndef LIB9P_LINUX_ERRNO_H 29#define LIB9P_LINUX_ERRNO_H 30 31/* 32 * Linux error numbers that are outside of the original base range 33 * (which ends with ERANGE). 34 * 35 * This is pretty much the same as Linux's errno.h except that the 36 * names are prefixed with "LINUX_", and we add _STR with the 37 * string name. 38 * 39 * The string expansions were obtained with a little program to 40 * print every strerror(). 41 * 42 * Note that BSD EDEADLK is 11 and BSD EAGAIN is 35, vs 43 * Linux / Plan9 EAGAIN at 11. So one value in the ERANGE 44 * range still needs translation too. 45 */ 46 47#define LINUX_EAGAIN 11 48#define LINUX_EAGAIN_STR "Resource temporarily unavailable" 49 50#define LINUX_EDEADLK 35 51#define LINUX_EDEADLK_STR "Resource deadlock avoided" 52#define LINUX_ENAMETOOLONG 36 53#define LINUX_ENAMETOOLONG_STR "File name too long" 54#define LINUX_ENOLCK 37 55#define LINUX_ENOLCK_STR "No locks available" 56#define LINUX_ENOSYS 38 57#define LINUX_ENOSYS_STR "Function not implemented" 58#define LINUX_ENOTEMPTY 39 59#define LINUX_ENOTEMPTY_STR "Directory not empty" 60#define LINUX_ELOOP 40 61#define LINUX_ELOOP_STR "Too many levels of symbolic links" 62/* 41 unused */ 63#define LINUX_ENOMSG 42 64#define LINUX_ENOMSG_STR "No message of desired type" 65#define LINUX_EIDRM 43 66#define LINUX_EIDRM_STR "Identifier removed" 67#define LINUX_ECHRNG 44 68#define LINUX_ECHRNG_STR "Channel number out of range" 69#define LINUX_EL2NSYNC 45 70#define LINUX_EL2NSYNC_STR "Level 2 not synchronized" 71#define LINUX_EL3HLT 46 72#define LINUX_EL3HLT_STR "Level 3 halted" 73#define LINUX_EL3RST 47 74#define LINUX_EL3RST_STR "Level 3 reset" 75#define LINUX_ELNRNG 48 76#define LINUX_ELNRNG_STR "Link number out of range" 77#define LINUX_EUNATCH 49 78#define LINUX_EUNATCH_STR "Protocol driver not attached" 79#define LINUX_ENOCSI 50 80#define LINUX_ENOCSI_STR "No CSI structure available" 81#define LINUX_EL2HLT 51 82#define LINUX_EL2HLT_STR "Level 2 halted" 83#define LINUX_EBADE 52 84#define LINUX_EBADE_STR "Invalid exchange" 85#define LINUX_EBADR 53 86#define LINUX_EBADR_STR "Invalid request descriptor" 87#define LINUX_EXFULL 54 88#define LINUX_EXFULL_STR "Exchange full" 89#define LINUX_ENOANO 55 90#define LINUX_ENOANO_STR "No anode" 91#define LINUX_EBADRQC 56 92#define LINUX_EBADRQC_STR "Invalid request code" 93#define LINUX_EBADSLT 57 94#define LINUX_EBADSLT_STR "Invalid slot" 95/* 58 unused */ 96#define LINUX_EBFONT 59 97#define LINUX_EBFONT_STR "Bad font file format" 98#define LINUX_ENOSTR 60 99#define LINUX_ENOSTR_STR "Device not a stream" 100#define LINUX_ENODATA 61 101#define LINUX_ENODATA_STR "No data available" 102#define LINUX_ETIME 62 103#define LINUX_ETIME_STR "Timer expired" 104#define LINUX_ENOSR 63 105#define LINUX_ENOSR_STR "Out of streams resources" 106#define LINUX_ENONET 64 107#define LINUX_ENONET_STR "Machine is not on the network" 108#define LINUX_ENOPKG 65 109#define LINUX_ENOPKG_STR "Package not installed" 110#define LINUX_EREMOTE 66 111#define LINUX_EREMOTE_STR "Object is remote" 112#define LINUX_ENOLINK 67 113#define LINUX_ENOLINK_STR "Link has been severed" 114#define LINUX_EADV 68 115#define LINUX_EADV_STR "Advertise error" 116#define LINUX_ESRMNT 69 117#define LINUX_ESRMNT_STR "Srmount error" 118#define LINUX_ECOMM 70 119#define LINUX_ECOMM_STR "Communication error on send" 120#define LINUX_EPROTO 71 121#define LINUX_EPROTO_STR "Protocol error" 122#define LINUX_EMULTIHOP 72 123#define LINUX_EMULTIHOP_STR "Multihop attempted" 124#define LINUX_EDOTDOT 73 125#define LINUX_EDOTDOT_STR "RFS specific error" 126#define LINUX_EBADMSG 74 127#define LINUX_EBADMSG_STR "Bad message" 128#define LINUX_EOVERFLOW 75 129#define LINUX_EOVERFLOW_STR "Value too large for defined data type" 130#define LINUX_ENOTUNIQ 76 131#define LINUX_ENOTUNIQ_STR "Name not unique on network" 132#define LINUX_EBADFD 77 133#define LINUX_EBADFD_STR "File descriptor in bad state" 134#define LINUX_EREMCHG 78 135#define LINUX_EREMCHG_STR "Remote address changed" 136#define LINUX_ELIBACC 79 137#define LINUX_ELIBACC_STR "Can not access a needed shared library" 138#define LINUX_ELIBBAD 80 139#define LINUX_ELIBBAD_STR "Accessing a corrupted shared library" 140#define LINUX_ELIBSCN 81 141#define LINUX_ELIBSCN_STR ".lib section in a.out corrupted" 142#define LINUX_ELIBMAX 82 143#define LINUX_ELIBMAX_STR "Attempting to link in too many shared libraries" 144#define LINUX_ELIBEXEC 83 145#define LINUX_ELIBEXEC_STR "Cannot exec a shared library directly" 146#define LINUX_EILSEQ 84 147#define LINUX_EILSEQ_STR "Invalid or incomplete multibyte or wide character" 148#define LINUX_ERESTART 85 149#define LINUX_ERESTART_STR "Interrupted system call should be restarted" 150#define LINUX_ESTRPIPE 86 151#define LINUX_ESTRPIPE_STR "Streams pipe error" 152#define LINUX_EUSERS 87 153#define LINUX_EUSERS_STR "Too many users" 154#define LINUX_ENOTSOCK 88 155#define LINUX_ENOTSOCK_STR "Socket operation on non-socket" 156#define LINUX_EDESTADDRREQ 89 157#define LINUX_EDESTADDRREQ_STR "Destination address required" 158#define LINUX_EMSGSIZE 90 159#define LINUX_EMSGSIZE_STR "Message too long" 160#define LINUX_EPROTOTYPE 91 161#define LINUX_EPROTOTYPE_STR "Protocol wrong type for socket" 162#define LINUX_ENOPROTOOPT 92 163#define LINUX_ENOPROTOOPT_STR "Protocol not available" 164#define LINUX_EPROTONOSUPPORT 93 165#define LINUX_EPROTONOSUPPORT_STR "Protocol not supported" 166#define LINUX_ESOCKTNOSUPPORT 94 167#define LINUX_ESOCKTNOSUPPORT_STR "Socket type not supported" 168#define LINUX_EOPNOTSUPP 95 169#define LINUX_EOPNOTSUPP_STR "Operation not supported" 170#define LINUX_EPFNOSUPPORT 96 171#define LINUX_EPFNOSUPPORT_STR "Protocol family not supported" 172#define LINUX_EAFNOSUPPORT 97 173#define LINUX_EAFNOSUPPORT_STR "Address family not supported by protocol" 174#define LINUX_EADDRINUSE 98 175#define LINUX_EADDRINUSE_STR "Address already in use" 176#define LINUX_EADDRNOTAVAIL 99 177#define LINUX_EADDRNOTAVAIL_STR "Cannot assign requested address" 178#define LINUX_ENETDOWN 100 179#define LINUX_ENETDOWN_STR "Network is down" 180#define LINUX_ENETUNREACH 101 181#define LINUX_ENETUNREACH_STR "Network is unreachable" 182#define LINUX_ENETRESET 102 183#define LINUX_ENETRESET_STR "Network dropped connection on reset" 184#define LINUX_ECONNABORTED 103 185#define LINUX_ECONNABORTED_STR "Software caused connection abort" 186#define LINUX_ECONNRESET 104 187#define LINUX_ECONNRESET_STR "Connection reset by peer" 188#define LINUX_ENOBUFS 105 189#define LINUX_ENOBUFS_STR "No buffer space available" 190#define LINUX_EISCONN 106 191#define LINUX_EISCONN_STR "Transport endpoint is already connected" 192#define LINUX_ENOTCONN 107 193#define LINUX_ENOTCONN_STR "Transport endpoint is not connected" 194#define LINUX_ESHUTDOWN 108 195#define LINUX_ESHUTDOWN_STR "Cannot send after transport endpoint shutdown" 196#define LINUX_ETOOMANYREFS 109 197#define LINUX_ETOOMANYREFS_STR "Too many references: cannot splice" 198#define LINUX_ETIMEDOUT 110 199#define LINUX_ETIMEDOUT_STR "Connection timed out" 200#define LINUX_ECONNREFUSED 111 201#define LINUX_ECONNREFUSED_STR "Connection refused" 202#define LINUX_EHOSTDOWN 112 203#define LINUX_EHOSTDOWN_STR "Host is down" 204#define LINUX_EHOSTUNREACH 113 205#define LINUX_EHOSTUNREACH_STR "No route to host" 206#define LINUX_EALREADY 114 207#define LINUX_EALREADY_STR "Operation already in progress" 208#define LINUX_EINPROGRESS 115 209#define LINUX_EINPROGRESS_STR "Operation now in progress" 210#define LINUX_ESTALE 116 211#define LINUX_ESTALE_STR "Stale file handle" 212#define LINUX_EUCLEAN 117 213#define LINUX_EUCLEAN_STR "Structure needs cleaning" 214#define LINUX_ENOTNAM 118 215#define LINUX_ENOTNAM_STR "Not a XENIX named type file" 216#define LINUX_ENAVAIL 119 217#define LINUX_ENAVAIL_STR "No XENIX semaphores available" 218#define LINUX_EISNAM 120 219#define LINUX_EISNAM_STR "Is a named type file" 220#define LINUX_EREMOTEIO 121 221#define LINUX_EREMOTEIO_STR "Remote I/O error" 222#define LINUX_EDQUOT 122 223#define LINUX_EDQUOT_STR "Quota exceeded" 224#define LINUX_ENOMEDIUM 123 225#define LINUX_ENOMEDIUM_STR "No medium found" 226#define LINUX_EMEDIUMTYPE 124 227#define LINUX_EMEDIUMTYPE_STR "Wrong medium type" 228#define LINUX_ECANCELED 125 229#define LINUX_ECANCELED_STR "Operation canceled" 230#define LINUX_ENOKEY 126 231#define LINUX_ENOKEY_STR "Required key not available" 232#define LINUX_EKEYEXPIRED 127 233#define LINUX_EKEYEXPIRED_STR "Key has expired" 234#define LINUX_EKEYREVOKED 128 235#define LINUX_EKEYREVOKED_STR "Key has been revoked" 236#define LINUX_EKEYREJECTED 129 237#define LINUX_EKEYREJECTED_STR "Key was rejected by service" 238#define LINUX_EOWNERDEAD 130 239#define LINUX_EOWNERDEAD_STR "Owner died" 240#define LINUX_ENOTRECOVERABLE 131 241#define LINUX_ENOTRECOVERABLE_STR "State not recoverable" 242#define LINUX_ERFKILL 132 243#define LINUX_ERFKILL_STR "Operation not possible due to RF-kill" 244#define LINUX_EHWPOISON 133 245#define LINUX_EHWPOISON_STR "Memory page has hardware error" 246 247#endif /* LIB9P_LINUX_ERRNO_H */ 248