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