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