|
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 } |