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