Commit | Line | Data |
---|---|---|
2117e02e MW |
1 | #include <errno.h> |
2 | #include "error.h" | |
3 | ||
4 | #define X(e,s) if (i == e) return s; | |
5 | ||
6 | char *error_str(i) | |
7 | int i; | |
8 | { | |
9 | X(0,"no error") | |
10 | X(error_intr,"interrupted system call") | |
11 | X(error_nomem,"out of memory") | |
12 | X(error_noent,"file does not exist") | |
13 | X(error_txtbsy,"text busy") | |
14 | X(error_io,"input/output error") | |
15 | X(error_exist,"file already exists") | |
16 | X(error_timeout,"timed out") | |
17 | X(error_inprogress,"operation in progress") | |
18 | X(error_again,"temporary failure") | |
19 | X(error_wouldblock,"input/output would block") | |
20 | X(error_pipe,"broken pipe") | |
21 | X(error_perm,"permission denied") | |
22 | X(error_acces,"access denied") | |
23 | #ifdef ESRCH | |
24 | X(ESRCH,"no such process") | |
25 | #endif | |
26 | #ifdef ENXIO | |
27 | X(ENXIO,"device not configured") | |
28 | #endif | |
29 | #ifdef E2BIG | |
30 | X(E2BIG,"argument list too long") | |
31 | #endif | |
32 | #ifdef ENOEXEC | |
33 | X(ENOEXEC,"exec format error") | |
34 | #endif | |
35 | #ifdef EBADF | |
36 | X(EBADF,"file descriptor not open") | |
37 | #endif | |
38 | #ifdef ECHILD | |
39 | X(ECHILD,"no child processes") | |
40 | #endif | |
41 | #ifdef EDEADLK | |
42 | X(EDEADLK,"operation would cause deadlock") | |
43 | #endif | |
44 | #ifdef EFAULT | |
45 | X(EFAULT,"bad address") | |
46 | #endif | |
47 | #ifdef ENOTBLK | |
48 | X(ENOTBLK,"not a block device") | |
49 | #endif | |
50 | #ifdef EBUSY | |
51 | X(EBUSY,"device busy") | |
52 | #endif | |
53 | #ifdef EXDEV | |
54 | X(EXDEV,"cross-device link") | |
55 | #endif | |
56 | #ifdef ENODEV | |
57 | X(ENODEV,"device does not support operation") | |
58 | #endif | |
59 | #ifdef ENOTDIR | |
60 | X(ENOTDIR,"not a directory") | |
61 | #endif | |
62 | #ifdef EISDIR | |
63 | X(EISDIR,"is a directory") | |
64 | #endif | |
65 | #ifdef EINVAL | |
66 | X(EINVAL,"invalid argument") | |
67 | #endif | |
68 | #ifdef ENFILE | |
69 | X(ENFILE,"system cannot open more files") | |
70 | #endif | |
71 | #ifdef EMFILE | |
72 | X(EMFILE,"process cannot open more files") | |
73 | #endif | |
74 | #ifdef ENOTTY | |
75 | X(ENOTTY,"not a tty") | |
76 | #endif | |
77 | #ifdef EFBIG | |
78 | X(EFBIG,"file too big") | |
79 | #endif | |
80 | #ifdef ENOSPC | |
81 | X(ENOSPC,"out of disk space") | |
82 | #endif | |
83 | #ifdef ESPIPE | |
84 | X(ESPIPE,"unseekable descriptor") | |
85 | #endif | |
86 | #ifdef EROFS | |
87 | X(EROFS,"read-only file system") | |
88 | #endif | |
89 | #ifdef EMLINK | |
90 | X(EMLINK,"too many links") | |
91 | #endif | |
92 | #ifdef EDOM | |
93 | X(EDOM,"input out of range") | |
94 | #endif | |
95 | #ifdef ERANGE | |
96 | X(ERANGE,"output out of range") | |
97 | #endif | |
98 | #ifdef EALREADY | |
99 | X(EALREADY,"operation already in progress") | |
100 | #endif | |
101 | #ifdef ENOTSOCK | |
102 | X(ENOTSOCK,"not a socket") | |
103 | #endif | |
104 | #ifdef EDESTADDRREQ | |
105 | X(EDESTADDRREQ,"destination address required") | |
106 | #endif | |
107 | #ifdef EMSGSIZE | |
108 | X(EMSGSIZE,"message too long") | |
109 | #endif | |
110 | #ifdef EPROTOTYPE | |
111 | X(EPROTOTYPE,"incorrect protocol type") | |
112 | #endif | |
113 | #ifdef ENOPROTOOPT | |
114 | X(ENOPROTOOPT,"protocol not available") | |
115 | #endif | |
116 | #ifdef EPROTONOSUPPORT | |
117 | X(EPROTONOSUPPORT,"protocol not supported") | |
118 | #endif | |
119 | #ifdef ESOCKTNOSUPPORT | |
120 | X(ESOCKTNOSUPPORT,"socket type not supported") | |
121 | #endif | |
122 | #ifdef EOPNOTSUPP | |
123 | X(EOPNOTSUPP,"operation not supported") | |
124 | #endif | |
125 | #ifdef EPFNOSUPPORT | |
126 | X(EPFNOSUPPORT,"protocol family not supported") | |
127 | #endif | |
128 | #ifdef EAFNOSUPPORT | |
129 | X(EAFNOSUPPORT,"address family not supported") | |
130 | #endif | |
131 | #ifdef EADDRINUSE | |
132 | X(EADDRINUSE,"address already used") | |
133 | #endif | |
134 | #ifdef EADDRNOTAVAIL | |
135 | X(EADDRNOTAVAIL,"address not available") | |
136 | #endif | |
137 | #ifdef ENETDOWN | |
138 | X(ENETDOWN,"network down") | |
139 | #endif | |
140 | #ifdef ENETUNREACH | |
141 | X(ENETUNREACH,"network unreachable") | |
142 | #endif | |
143 | #ifdef ENETRESET | |
144 | X(ENETRESET,"network reset") | |
145 | #endif | |
146 | #ifdef ECONNABORTED | |
147 | X(ECONNABORTED,"connection aborted") | |
148 | #endif | |
149 | #ifdef ECONNRESET | |
150 | X(ECONNRESET,"connection reset") | |
151 | #endif | |
152 | #ifdef ENOBUFS | |
153 | X(ENOBUFS,"out of buffer space") | |
154 | #endif | |
155 | #ifdef EISCONN | |
156 | X(EISCONN,"already connected") | |
157 | #endif | |
158 | #ifdef ENOTCONN | |
159 | X(ENOTCONN,"not connected") | |
160 | #endif | |
161 | #ifdef ESHUTDOWN | |
162 | X(ESHUTDOWN,"socket shut down") | |
163 | #endif | |
164 | #ifdef ETOOMANYREFS | |
165 | X(ETOOMANYREFS,"too many references") | |
166 | #endif | |
167 | #ifdef ECONNREFUSED | |
168 | X(ECONNREFUSED,"connection refused") | |
169 | #endif | |
170 | #ifdef ELOOP | |
171 | X(ELOOP,"symbolic link loop") | |
172 | #endif | |
173 | #ifdef ENAMETOOLONG | |
174 | X(ENAMETOOLONG,"file name too long") | |
175 | #endif | |
176 | #ifdef EHOSTDOWN | |
177 | X(EHOSTDOWN,"host down") | |
178 | #endif | |
179 | #ifdef EHOSTUNREACH | |
180 | X(EHOSTUNREACH,"host unreachable") | |
181 | #endif | |
182 | #ifdef ENOTEMPTY | |
183 | X(ENOTEMPTY,"directory not empty") | |
184 | #endif | |
185 | #ifdef EPROCLIM | |
186 | X(EPROCLIM,"too many processes") | |
187 | #endif | |
188 | #ifdef EUSERS | |
189 | X(EUSERS,"too many users") | |
190 | #endif | |
191 | #ifdef EDQUOT | |
192 | X(EDQUOT,"disk quota exceeded") | |
193 | #endif | |
194 | #ifdef ESTALE | |
195 | X(ESTALE,"stale NFS file handle") | |
196 | #endif | |
197 | #ifdef EREMOTE | |
198 | X(EREMOTE,"too many levels of remote in path") | |
199 | #endif | |
200 | #ifdef EBADRPC | |
201 | X(EBADRPC,"RPC structure is bad") | |
202 | #endif | |
203 | #ifdef ERPCMISMATCH | |
204 | X(ERPCMISMATCH,"RPC version mismatch") | |
205 | #endif | |
206 | #ifdef EPROGUNAVAIL | |
207 | X(EPROGUNAVAIL,"RPC program unavailable") | |
208 | #endif | |
209 | #ifdef EPROGMISMATCH | |
210 | X(EPROGMISMATCH,"program version mismatch") | |
211 | #endif | |
212 | #ifdef EPROCUNAVAIL | |
213 | X(EPROCUNAVAIL,"bad procedure for program") | |
214 | #endif | |
215 | #ifdef ENOLCK | |
216 | X(ENOLCK,"no locks available") | |
217 | #endif | |
218 | #ifdef ENOSYS | |
219 | X(ENOSYS,"system call not available") | |
220 | #endif | |
221 | #ifdef EFTYPE | |
222 | X(EFTYPE,"bad file type") | |
223 | #endif | |
224 | #ifdef EAUTH | |
225 | X(EAUTH,"authentication error") | |
226 | #endif | |
227 | #ifdef ENEEDAUTH | |
228 | X(ENEEDAUTH,"not authenticated") | |
229 | #endif | |
230 | #ifdef ENOSTR | |
231 | X(ENOSTR,"not a stream device") | |
232 | #endif | |
233 | #ifdef ETIME | |
234 | X(ETIME,"timer expired") | |
235 | #endif | |
236 | #ifdef ENOSR | |
237 | X(ENOSR,"out of stream resources") | |
238 | #endif | |
239 | #ifdef ENOMSG | |
240 | X(ENOMSG,"no message of desired type") | |
241 | #endif | |
242 | #ifdef EBADMSG | |
243 | X(EBADMSG,"bad message type") | |
244 | #endif | |
245 | #ifdef EIDRM | |
246 | X(EIDRM,"identifier removed") | |
247 | #endif | |
248 | #ifdef ENONET | |
249 | X(ENONET,"machine not on network") | |
250 | #endif | |
251 | #ifdef ERREMOTE | |
252 | X(ERREMOTE,"object not local") | |
253 | #endif | |
254 | #ifdef ENOLINK | |
255 | X(ENOLINK,"link severed") | |
256 | #endif | |
257 | #ifdef EADV | |
258 | X(EADV,"advertise error") | |
259 | #endif | |
260 | #ifdef ESRMNT | |
261 | X(ESRMNT,"srmount error") | |
262 | #endif | |
263 | #ifdef ECOMM | |
264 | X(ECOMM,"communication error") | |
265 | #endif | |
266 | #ifdef EPROTO | |
267 | X(EPROTO,"protocol error") | |
268 | #endif | |
269 | #ifdef EMULTIHOP | |
270 | X(EMULTIHOP,"multihop attempted") | |
271 | #endif | |
272 | #ifdef EREMCHG | |
273 | X(EREMCHG,"remote address changed") | |
274 | #endif | |
275 | return "unknown error"; | |
276 | } |