2 * Copyright 2016 Chris Torek <torek@ixsystems.com>
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted providing that the following conditions
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.
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.
28 #ifndef LIB9P_LINUX_ERRNO_H
29 #define LIB9P_LINUX_ERRNO_H
32 * Linux error numbers that are outside of the original base range
33 * (which ends with ERANGE).
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
39 * The string expansions were obtained with a little program to
40 * print every strerror().
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.
47 #define LINUX_EAGAIN 11
48 #define LINUX_EAGAIN_STR "Resource temporarily unavailable"
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"
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"
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"
247 #endif /* LIB9P_LINUX_ERRNO_H */