1 /* Name of system error code.
2    Copyright (C) 2020-2021 Free Software Foundation, Inc.
3 
4    This file is free software: you can redistribute it and/or modify
5    it under the terms of the GNU Lesser General Public License as
6    published by the Free Software Foundation; either version 2.1 of the
7    License, or (at your option) any later version.
8 
9    This file is distributed in the hope that it will be useful,
10    but WITHOUT ANY WARRANTY; without even the implied warranty of
11    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12    GNU Lesser General Public License for more details.
13 
14    You should have received a copy of the GNU Lesser General Public License
15    along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
16 
17 /* Written by Bruno Haible <bruno@clisp.org>, 2020.  */
18 
19 #include <config.h>
20 
21 /* Specification.  */
22 #include <string.h>
23 
24 #include <errno.h>
25 
26 const char *
strerrorname_np(int errnum)27 strerrorname_np (int errnum)
28 {
29   switch (errnum)
30     {
31     /* Error codes specified by ISO C.  */
32     case EDOM:            return "EDOM";
33     case EILSEQ:          return "EILSEQ";
34     case ERANGE:          return "ERANGE";
35 
36     /* Error codes specified by POSIX.
37        <https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/errno.h.html>  */
38     #if defined E2BIG
39     case E2BIG:           return "E2BIG";
40     #endif
41     #if defined EACCES
42     case EACCES:          return "EACCES";
43     #endif
44     #if defined EADDRINUSE
45     case EADDRINUSE:      return "EADDRINUSE";
46     #endif
47     #if defined EADDRNOTAVAIL
48     case EADDRNOTAVAIL:   return "EADDRNOTAVAIL";
49     #endif
50     #if defined EAFNOSUPPORT
51     case EAFNOSUPPORT:    return "EAFNOSUPPORT";
52     #endif
53     #if defined EAGAIN
54     case EAGAIN:          return "EAGAIN";
55     #endif
56     #if defined EALREADY
57     case EALREADY:        return "EALREADY";
58     #endif
59     #if defined EBADF
60     case EBADF:           return "EBADF";
61     #endif
62     #if defined EBADMSG
63     case EBADMSG:         return "EBADMSG";
64     #endif
65     #if defined EBUSY
66     case EBUSY:           return "EBUSY";
67     #endif
68     #if defined ECANCELED
69     case ECANCELED:       return "ECANCELED";
70     #endif
71     #if defined ECHILD
72     case ECHILD:          return "ECHILD";
73     #endif
74     #if defined ECONNABORTED
75     case ECONNABORTED:    return "ECONNABORTED";
76     #endif
77     #if defined ECONNREFUSED
78     case ECONNREFUSED:    return "ECONNREFUSED";
79     #endif
80     #if defined ECONNRESET
81     case ECONNRESET:      return "ECONNRESET";
82     #endif
83     #if defined EDEADLK
84     case EDEADLK:         return "EDEADLK";
85     #endif
86     #if defined EDESTADDRREQ
87     case EDESTADDRREQ:    return "EDESTADDRREQ";
88     #endif
89     #if defined EDQUOT
90     case EDQUOT:          return "EDQUOT";
91     #endif
92     #if defined EEXIST
93     case EEXIST:          return "EEXIST";
94     #endif
95     #if defined EFAULT
96     case EFAULT:          return "EFAULT";
97     #endif
98     #if defined EFBIG
99     case EFBIG:           return "EFBIG";
100     #endif
101     #if defined EHOSTUNREACH
102     case EHOSTUNREACH:    return "EHOSTUNREACH";
103     #endif
104     #if defined EIDRM
105     case EIDRM:           return "EIDRM";
106     #endif
107     #if defined EINPROGRESS
108     case EINPROGRESS:     return "EINPROGRESS";
109     #endif
110     #if defined EINTR
111     case EINTR:           return "EINTR";
112     #endif
113     #if defined EINVAL
114     case EINVAL:          return "EINVAL";
115     #endif
116     #if defined EIO
117     case EIO:             return "EIO";
118     #endif
119     #if defined EISCONN
120     case EISCONN:         return "EISCONN";
121     #endif
122     #if defined EISDIR
123     case EISDIR:          return "EISDIR";
124     #endif
125     #if defined ELOOP
126     case ELOOP:           return "ELOOP";
127     #endif
128     #if defined EMFILE
129     case EMFILE:          return "EMFILE";
130     #endif
131     #if defined EMLINK
132     case EMLINK:          return "EMLINK";
133     #endif
134     #if defined EMSGSIZE
135     case EMSGSIZE:        return "EMSGSIZE";
136     #endif
137     #if defined EMULTIHOP
138     case EMULTIHOP:       return "EMULTIHOP";
139     #endif
140     #if defined ENAMETOOLONG
141     case ENAMETOOLONG:    return "ENAMETOOLONG";
142     #endif
143     #if defined ENETDOWN
144     case ENETDOWN:        return "ENETDOWN";
145     #endif
146     #if defined ENETRESET
147     case ENETRESET:       return "ENETRESET";
148     #endif
149     #if defined ENETUNREACH
150     case ENETUNREACH:     return "ENETUNREACH";
151     #endif
152     #if defined ENFILE
153     case ENFILE:          return "ENFILE";
154     #endif
155     #if defined ENOBUFS
156     case ENOBUFS:         return "ENOBUFS";
157     #endif
158     #if defined ENODATA
159     case ENODATA:         return "ENODATA";
160     #endif
161     #if defined ENODEV
162     case ENODEV:          return "ENODEV";
163     #endif
164     #if defined ENOENT
165     case ENOENT:          return "ENOENT";
166     #endif
167     #if defined ENOEXEC
168     case ENOEXEC:         return "ENOEXEC";
169     #endif
170     #if defined ENOLCK
171     case ENOLCK:          return "ENOLCK";
172     #endif
173     #if defined ENOLINK
174     case ENOLINK:         return "ENOLINK";
175     #endif
176     #if defined ENOMEM
177     case ENOMEM:          return "ENOMEM";
178     #endif
179     #if defined ENOMSG
180     case ENOMSG:          return "ENOMSG";
181     #endif
182     #if defined ENOPROTOOPT
183     case ENOPROTOOPT:     return "ENOPROTOOPT";
184     #endif
185     #if defined ENOSPC
186     case ENOSPC:          return "ENOSPC";
187     #endif
188     #if defined ENOSR
189     case ENOSR:           return "ENOSR";
190     #endif
191     #if defined ENOSTR
192     case ENOSTR:          return "ENOSTR";
193     #endif
194     #if defined ENOSYS
195     case ENOSYS:          return "ENOSYS";
196     #endif
197     #if defined ENOTCONN
198     case ENOTCONN:        return "ENOTCONN";
199     #endif
200     #if defined ENOTDIR
201     case ENOTDIR:         return "ENOTDIR";
202     #endif
203     #if defined ENOTEMPTY && ENOTEMPTY != EEXIST
204     case ENOTEMPTY:       return "ENOTEMPTY";
205     #endif
206     #if defined ENOTRECOVERABLE
207     case ENOTRECOVERABLE: return "ENOTRECOVERABLE";
208     #endif
209     #if defined ENOTSOCK
210     case ENOTSOCK:        return "ENOTSOCK";
211     #endif
212     #if defined ENOTSUP && ENOTSUP != EOPNOTSUPP
213     case ENOTSUP:         return "ENOTSUP";
214     #endif
215     #if defined ENOTTY
216     case ENOTTY:          return "ENOTTY";
217     #endif
218     #if defined ENXIO
219     case ENXIO:           return "ENXIO";
220     #endif
221     #if defined EOPNOTSUPP
222     case EOPNOTSUPP:      return "EOPNOTSUPP";
223     #endif
224     #if defined EOVERFLOW
225     case EOVERFLOW:       return "EOVERFLOW";
226     #endif
227     #if defined EOWNERDEAD
228     case EOWNERDEAD:      return "EOWNERDEAD";
229     #endif
230     #if defined EPERM
231     case EPERM:           return "EPERM";
232     #endif
233     #if defined EPIPE
234     case EPIPE:           return "EPIPE";
235     #endif
236     #if defined EPROTO
237     case EPROTO:          return "EPROTO";
238     #endif
239     #if defined EPROTONOSUPPORT
240     case EPROTONOSUPPORT: return "EPROTONOSUPPORT";
241     #endif
242     #if defined EPROTOTYPE
243     case EPROTOTYPE:      return "EPROTOTYPE";
244     #endif
245     #if defined EROFS
246     case EROFS:           return "EROFS";
247     #endif
248     #if defined ESPIPE
249     case ESPIPE:          return "ESPIPE";
250     #endif
251     #if defined ESRCH
252     case ESRCH:           return "ESRCH";
253     #endif
254     #if defined ESTALE
255     case ESTALE:          return "ESTALE";
256     #endif
257     #if defined ETIME
258     case ETIME:           return "ETIME";
259     #endif
260     #if defined ETIMEDOUT
261     case ETIMEDOUT:       return "ETIMEDOUT";
262     #endif
263     #if defined ETXTBSY
264     case ETXTBSY:         return "ETXTBSY";
265     #endif
266     #if defined EWOULDBLOCK && EWOULDBLOCK != EAGAIN
267     case EWOULDBLOCK:     return "EWOULDBLOCK";
268     #endif
269     #if defined EXDEV
270     case EXDEV:           return "EXDEV";
271     #endif
272 
273     /* Other error codes on other systems.  */
274     /* Solaris */
275     #if defined EADI
276     case EADI:            return "EADI";
277     #endif
278     /* Linux, HP-UX, IRIX, Solaris, Cygwin */
279     #if defined EADV
280     case EADV:            return "EADV";
281     #endif
282     /* OSF/1 */
283     #if defined EAIO
284     case EAIO:            return "EAIO";
285     #endif
286     /* Mac OS X, FreeBSD, NetBSD, OpenBSD, Minix */
287     #if defined EAUTH
288     case EAUTH:           return "EAUTH";
289     #endif
290     /* GNU/Hurd */
291     #if defined EBACKGROUND
292     case EBACKGROUND:     return "EBACKGROUND";
293     #endif
294     /* Mac OS X */
295     #if defined EBADARCH
296     case EBADARCH:        return "EBADARCH";
297     #endif
298     /* Minix */
299     #if defined EBADCALL
300     case EBADCALL:        return "EBADCALL";
301     #endif
302     /* Minix */
303     #if defined EBADCPU
304     case EBADCPU:         return "EBADCPU";
305     #endif
306     /* Linux, IRIX, Solaris, Cygwin */
307     #if defined EBADE
308     case EBADE:           return "EBADE";
309     #endif
310     /* Minix */
311     #if defined EBADEPT
312     case EBADEPT:         return "EBADEPT";
313     #endif
314     /* Mac OS X */
315     #if defined EBADEXEC
316     case EBADEXEC:        return "EBADEXEC";
317     #endif
318     /* Linux, IRIX, Solaris, Cygwin */
319     #if defined EBADFD
320     case EBADFD:          return "EBADFD";
321     #endif
322     /* IRIX */
323     #if defined EBADFILT
324     case EBADFILT:        return "EBADFILT";
325     #endif
326     /* Minix */
327     #if defined EBADIOCTL
328     case EBADIOCTL:       return "EBADIOCTL";
329     #endif
330     /* Mac OS X */
331     #if defined EBADMACHO
332     case EBADMACHO:       return "EBADMACHO";
333     #endif
334     /* Minix */
335     #if defined EBADMODE
336     case EBADMODE:        return "EBADMODE";
337     #endif
338     /* Linux, IRIX, Solaris, Cygwin */
339     #if defined EBADR
340     case EBADR:           return "EBADR";
341     #endif
342     /* Minix */
343     #if defined EBADREQUEST
344     case EBADREQUEST:     return "EBADREQUEST";
345     #endif
346     /* Mac OS X, FreeBSD, NetBSD, OpenBSD, OSF/1, Minix */
347     #if defined EBADRPC
348     case EBADRPC:         return "EBADRPC";
349     #endif
350     /* Linux, IRIX, Solaris, Cygwin */
351     #if defined EBADRQC
352     case EBADRQC:         return "EBADRQC";
353     #endif
354     /* IRIX */
355     #if defined EBADRSPEC
356     case EBADRSPEC:       return "EBADRSPEC";
357     #endif
358     /* Linux, IRIX, Solaris, Cygwin */
359     #if defined EBADSLT
360     case EBADSLT:         return "EBADSLT";
361     #endif
362     /* IRIX */
363     #if defined EBADTSPEC
364     case EBADTSPEC:       return "EBADTSPEC";
365     #endif
366     /* HP-UX */
367     #if defined EBADVER
368     case EBADVER:         return "EBADVER";
369     #endif
370     /* IRIX */
371     #if defined EBDHDL
372     case EBDHDL:          return "EBDHDL";
373     #endif
374     /* Linux, IRIX, Solaris, Cygwin */
375     #if defined EBFONT
376     case EBFONT:          return "EBFONT";
377     #endif
378     /* IRIX */
379     #if defined EBUFSIZE
380     case EBUFSIZE:        return "EBUFSIZE";
381     #endif
382     /* Minix */
383     #if defined ECALLDENIED
384     case ECALLDENIED:     return "ECALLDENIED";
385     #endif
386     /* IRIX */
387     #if defined ECANTEXTENT
388     case ECANTEXTENT:     return "ECANTEXTENT";
389     #endif
390     /* FreeBSD */
391     #if defined ECAPMODE
392     case ECAPMODE:        return "ECAPMODE";
393     #endif
394     /* Cygwin */
395     #if defined ECASECLASH
396     case ECASECLASH:      return "ECASECLASH";
397     #endif
398     /* IRIX */
399     #if defined ECELLDOWN
400     case ECELLDOWN:       return "ECELLDOWN";
401     #endif
402     /* Linux, AIX, HP-UX, IRIX, Solaris, Cygwin */
403     #if defined ECHRNG
404     case ECHRNG:          return "ECHRNG";
405     #endif
406     /* IRIX */
407     #if defined ECKPT
408     case ECKPT:           return "ECKPT";
409     #endif
410     /* IRIX */
411     #if defined ECLOCKCPU
412     case ECLOCKCPU:       return "ECLOCKCPU";
413     #endif
414     /* OSF/1 */
415     #if defined ECLONEME && ECLONEME != ERESTART
416     case ECLONEME:        return "ECLONEME";
417     #endif
418     /* Linux, HP-UX, IRIX, Solaris, Cygwin */
419     #if defined ECOMM
420     case ECOMM:           return "ECOMM";
421     #endif
422     /* HP-UX */
423     #if defined ECONFIG
424     case ECONFIG:         return "ECONFIG";
425     #endif
426     /* IRIX */
427     #if defined ECONTROLLER
428     case ECONTROLLER:     return "ECONTROLLER";
429     #endif
430     /* AIX */
431     #if defined ECORRUPT
432     case ECORRUPT:        return "ECORRUPT";
433     #endif
434     /* GNU/Hurd */
435     #if defined ED
436     case ED:              return "ED";
437     #endif
438     /* Minix */
439     #if defined EDEADEPT
440     case EDEADEPT:        return "EDEADEPT";
441     #endif
442     /* IRIX, Solaris, Cygwin */
443     #if defined EDEADLOCK && EDEADLOCK != EDEADLK
444     case EDEADLOCK:       return "EDEADLOCK";
445     #endif
446     /* Minix */
447     #if defined EDEADSRCDST
448     case EDEADSRCDST:     return "EDEADSRCDST";
449     #endif
450     /* IRIX */
451     #if defined EDELAY
452     case EDELAY:          return "EDELAY";
453     #endif
454     /* IRIX */
455     #if defined EDESTROYED
456     case EDESTROYED:      return "EDESTROYED";
457     #endif
458     /* Mac OS X */
459     #if defined EDEVERR
460     case EDEVERR:         return "EDEVERR";
461     #endif
462     /* GNU/Hurd */
463     #if defined EDIED
464     case EDIED:           return "EDIED";
465     #endif
466     /* IRIX */
467     #if defined EDIRCORRUPTED
468     case EDIRCORRUPTED:   return "EDIRCORRUPTED";
469     #endif
470     /* FreeBSD */
471     #if defined EDIRIOCTL
472     case EDIRIOCTL:       return "EDIRIOCTL";
473     #endif
474     /* OSF/1 */
475     #if defined EDIRTY
476     case EDIRTY:          return "EDIRTY";
477     #endif
478     /* IRIX */
479     #if defined EDISJOINT
480     case EDISJOINT:       return "EDISJOINT";
481     #endif
482     /* AIX */
483     #if defined EDIST
484     case EDIST:           return "EDIST";
485     #endif
486     /* Minix */
487     #if defined EDONTREPLY
488     case EDONTREPLY:      return "EDONTREPLY";
489     #endif
490     /* FreeBSD */
491     #if defined EDOOFUS
492     case EDOOFUS:         return "EDOOFUS";
493     #endif
494     /* Linux, HP-UX, Cygwin */
495     #if defined EDOTDOT
496     case EDOTDOT:         return "EDOTDOT";
497     #endif
498     /* OSF/1 */
499     #if defined EDUPPKG
500     case EDUPPKG:         return "EDUPPKG";
501     #endif
502     /* GNU/Hurd */
503     #if defined ED_ALREADY_OPEN
504     case ED_ALREADY_OPEN: return "ED_ALREADY_OPEN";
505     #endif
506     /* GNU/Hurd */
507     #if defined ED_DEVICE_DOWN
508     case ED_DEVICE_DOWN:  return "ED_DEVICE_DOWN";
509     #endif
510     /* GNU/Hurd */
511     #if defined ED_INVALID_OPERATION
512     case ED_INVALID_OPERATION:return "ED_INVALID_OPERATION";
513     #endif
514     /* GNU/Hurd */
515     #if defined ED_INVALID_RECNUM
516     case ED_INVALID_RECNUM:return "ED_INVALID_RECNUM";
517     #endif
518     /* GNU/Hurd */
519     #if defined ED_INVALID_SIZE
520     case ED_INVALID_SIZE: return "ED_INVALID_SIZE";
521     #endif
522     /* GNU/Hurd */
523     #if defined ED_IO_ERROR
524     case ED_IO_ERROR:     return "ED_IO_ERROR";
525     #endif
526     /* GNU/Hurd */
527     #if defined ED_NO_MEMORY
528     case ED_NO_MEMORY:    return "ED_NO_MEMORY";
529     #endif
530     /* GNU/Hurd */
531     #if defined ED_NO_SUCH_DEVICE
532     case ED_NO_SUCH_DEVICE:return "ED_NO_SUCH_DEVICE";
533     #endif
534     /* GNU/Hurd */
535     #if defined ED_READ_ONLY
536     case ED_READ_ONLY:    return "ED_READ_ONLY";
537     #endif
538     /* GNU/Hurd */
539     #if defined ED_WOULD_BLOCK
540     case ED_WOULD_BLOCK:  return "ED_WOULD_BLOCK";
541     #endif
542     /* IRIX */
543     #if defined EEMPTY
544     case EEMPTY:          return "EEMPTY";
545     #endif
546     /* OSF/1 */
547     #if defined EEMULATE
548     case EEMULATE:        return "EEMULATE";
549     #endif
550     /* IRIX */
551     #if defined EENDOFMINOR
552     case EENDOFMINOR:     return "EENDOFMINOR";
553     #endif
554     /* IRIX */
555     #if defined EENQUEUED
556     case EENQUEUED:       return "EENQUEUED";
557     #endif
558     /* OSF/1 */
559     #if defined EFAIL
560     case EFAIL:           return "EFAIL";
561     #endif
562     /* AIX */
563     #if defined EFORMAT
564     case EFORMAT:         return "EFORMAT";
565     #endif
566     /* Haiku */
567     #if defined EFPOS
568     case EFPOS:           return "EFPOS";
569     #endif
570     /* IRIX */
571     #if defined EFSCORRUPTED
572     case EFSCORRUPTED:    return "EFSCORRUPTED";
573     #endif
574     /* Mac OS X, FreeBSD, NetBSD, OpenBSD, OSF/1, Minix, Cygwin */
575     #if defined EFTYPE
576     case EFTYPE:          return "EFTYPE";
577     #endif
578     /* Minix */
579     #if defined EGENERIC
580     case EGENERIC:        return "EGENERIC";
581     #endif
582     /* GNU/Hurd */
583     #if defined EGRATUITOUS
584     case EGRATUITOUS:     return "EGRATUITOUS";
585     #endif
586     /* GNU/Hurd */
587     #if defined EGREGIOUS
588     case EGREGIOUS:       return "EGREGIOUS";
589     #endif
590     /* IRIX */
591     #if defined EGROUPLOOP
592     case EGROUPLOOP:      return "EGROUPLOOP";
593     #endif
594     /* Linux, Mac OS X, FreeBSD, NetBSD, OpenBSD, AIX, HP-UX, IRIX, OSF/1, Solaris, Minix, Haiku, Cygwin */
595     #if defined EHOSTDOWN
596     case EHOSTDOWN:       return "EHOSTDOWN";
597     #endif
598     /* Linux */
599     #if defined EHWPOISON
600     case EHWPOISON:       return "EHWPOISON";
601     #endif
602     /* GNU/Hurd */
603     #if defined EIEIO
604     case EIEIO:           return "EIEIO";
605     #endif
606     /* IRIX */
607     #if defined EINIT
608     case EINIT:           return "EINIT";
609     #endif
610     /* OSF/1 */
611     #if defined EINPROG
612     case EINPROG:         return "EINPROG";
613     #endif
614     /* IRIX */
615     #if defined EINVALMODE
616     case EINVALMODE:      return "EINVALMODE";
617     #endif
618     /* IRIX */
619     #if defined EINVALSTATE
620     case EINVALSTATE:     return "EINVALSTATE";
621     #endif
622     /* IRIX */
623     #if defined EINVALTIME
624     case EINVALTIME:      return "EINVALTIME";
625     #endif
626     /* IRIX */
627     #if defined EIORESID
628     case EIORESID:        return "EIORESID";
629     #endif
630     /* OpenBSD */
631     #if defined EIPSEC
632     case EIPSEC:          return "EIPSEC";
633     #endif
634     /* Linux, IRIX */
635     #if defined EISNAM
636     case EISNAM:          return "EISNAM";
637     #endif
638     /* IRIX */
639     #if defined EJOINED
640     case EJOINED:         return "EJOINED";
641     #endif
642     /* FreeBSD, OSF/1 */
643     #if defined EJUSTRETURN
644     case EJUSTRETURN:     return "EJUSTRETURN";
645     #endif
646     /* GNU/Hurd */
647     #if defined EKERN_ABORTED
648     case EKERN_ABORTED:   return "EKERN_ABORTED";
649     #endif
650     /* GNU/Hurd */
651     #if defined EKERN_FAILURE
652     case EKERN_FAILURE:   return "EKERN_FAILURE";
653     #endif
654     /* GNU/Hurd */
655     #if defined EKERN_INTERRUPTED
656     case EKERN_INTERRUPTED:return "EKERN_INTERRUPTED";
657     #endif
658     /* GNU/Hurd */
659     #if defined EKERN_INVALID_ADDRESS
660     case EKERN_INVALID_ADDRESS:return "EKERN_INVALID_ADDRESS";
661     #endif
662     /* GNU/Hurd */
663     #if defined EKERN_INVALID_ARGUMENT
664     case EKERN_INVALID_ARGUMENT:return "EKERN_INVALID_ARGUMENT";
665     #endif
666     /* GNU/Hurd */
667     #if defined EKERN_INVALID_CAPABILITY
668     case EKERN_INVALID_CAPABILITY:return "EKERN_INVALID_CAPABILITY";
669     #endif
670     /* GNU/Hurd */
671     #if defined EKERN_INVALID_HOST
672     case EKERN_INVALID_HOST:return "EKERN_INVALID_HOST";
673     #endif
674     /* GNU/Hurd */
675     #if defined EKERN_INVALID_NAME
676     case EKERN_INVALID_NAME:return "EKERN_INVALID_NAME";
677     #endif
678     /* GNU/Hurd */
679     #if defined EKERN_INVALID_RIGHT
680     case EKERN_INVALID_RIGHT:return "EKERN_INVALID_RIGHT";
681     #endif
682     /* GNU/Hurd */
683     #if defined EKERN_INVALID_TASK
684     case EKERN_INVALID_TASK:return "EKERN_INVALID_TASK";
685     #endif
686     /* GNU/Hurd */
687     #if defined EKERN_INVALID_VALUE
688     case EKERN_INVALID_VALUE:return "EKERN_INVALID_VALUE";
689     #endif
690     /* GNU/Hurd */
691     #if defined EKERN_MEMORY_ERROR
692     case EKERN_MEMORY_ERROR:return "EKERN_MEMORY_ERROR";
693     #endif
694     /* GNU/Hurd */
695     #if defined EKERN_MEMORY_FAILURE
696     case EKERN_MEMORY_FAILURE:return "EKERN_MEMORY_FAILURE";
697     #endif
698     /* GNU/Hurd */
699     #if defined EKERN_MEMORY_PRESENT
700     case EKERN_MEMORY_PRESENT:return "EKERN_MEMORY_PRESENT";
701     #endif
702     /* GNU/Hurd */
703     #if defined EKERN_NAME_EXISTS
704     case EKERN_NAME_EXISTS:return "EKERN_NAME_EXISTS";
705     #endif
706     /* GNU/Hurd */
707     #if defined EKERN_NOT_IN_SET
708     case EKERN_NOT_IN_SET:return "EKERN_NOT_IN_SET";
709     #endif
710     /* GNU/Hurd */
711     #if defined EKERN_NOT_RECEIVER
712     case EKERN_NOT_RECEIVER:return "EKERN_NOT_RECEIVER";
713     #endif
714     /* GNU/Hurd */
715     #if defined EKERN_NO_ACCESS
716     case EKERN_NO_ACCESS: return "EKERN_NO_ACCESS";
717     #endif
718     /* GNU/Hurd */
719     #if defined EKERN_NO_SPACE
720     case EKERN_NO_SPACE:  return "EKERN_NO_SPACE";
721     #endif
722     /* GNU/Hurd */
723     #if defined EKERN_PROTECTION_FAILURE
724     case EKERN_PROTECTION_FAILURE:return "EKERN_PROTECTION_FAILURE";
725     #endif
726     /* GNU/Hurd */
727     #if defined EKERN_RESOURCE_SHORTAGE
728     case EKERN_RESOURCE_SHORTAGE:return "EKERN_RESOURCE_SHORTAGE";
729     #endif
730     /* GNU/Hurd */
731     #if defined EKERN_RIGHT_EXISTS
732     case EKERN_RIGHT_EXISTS:return "EKERN_RIGHT_EXISTS";
733     #endif
734     /* GNU/Hurd */
735     #if defined EKERN_TERMINATED
736     case EKERN_TERMINATED:return "EKERN_TERMINATED";
737     #endif
738     /* GNU/Hurd */
739     #if defined EKERN_TIMEDOUT
740     case EKERN_TIMEDOUT:  return "EKERN_TIMEDOUT";
741     #endif
742     /* GNU/Hurd */
743     #if defined EKERN_UREFS_OVERFLOW
744     case EKERN_UREFS_OVERFLOW:return "EKERN_UREFS_OVERFLOW";
745     #endif
746     /* GNU/Hurd */
747     #if defined EKERN_WRITE_PROTECTION_FAILURE
748     case EKERN_WRITE_PROTECTION_FAILURE:return "EKERN_WRITE_PROTECTION_FAILURE";
749     #endif
750     /* Linux */
751     #if defined EKEYEXPIRED
752     case EKEYEXPIRED:     return "EKEYEXPIRED";
753     #endif
754     /* Linux */
755     #if defined EKEYREJECTED
756     case EKEYREJECTED:    return "EKEYREJECTED";
757     #endif
758     /* Linux */
759     #if defined EKEYREVOKED
760     case EKEYREVOKED:     return "EKEYREVOKED";
761     #endif
762     /* Linux, AIX, HP-UX, IRIX, Solaris, Cygwin */
763     #if defined EL2HLT
764     case EL2HLT:          return "EL2HLT";
765     #endif
766     /* Linux, AIX, HP-UX, IRIX, Solaris, Cygwin */
767     #if defined EL2NSYNC
768     case EL2NSYNC:        return "EL2NSYNC";
769     #endif
770     /* Linux, AIX, HP-UX, IRIX, Solaris, Cygwin */
771     #if defined EL3HLT
772     case EL3HLT:          return "EL3HLT";
773     #endif
774     /* Linux, AIX, HP-UX, IRIX, Solaris, Cygwin */
775     #if defined EL3RST
776     case EL3RST:          return "EL3RST";
777     #endif
778     /* Mac OS X, FreeBSD, NetBSD, OpenBSD, Minix */
779     #if defined ELAST && 0
780     case ELAST:           return "ELAST";
781     #endif
782     /* Cygwin */
783     #if defined ELBIN
784     case ELBIN:           return "ELBIN";
785     #endif
786     /* Linux, IRIX, Solaris, Cygwin */
787     #if defined ELIBACC
788     case ELIBACC:         return "ELIBACC";
789     #endif
790     /* Linux, IRIX, Solaris, Cygwin */
791     #if defined ELIBBAD
792     case ELIBBAD:         return "ELIBBAD";
793     #endif
794     /* Linux, IRIX, Solaris, Cygwin */
795     #if defined ELIBEXEC
796     case ELIBEXEC:        return "ELIBEXEC";
797     #endif
798     /* Linux, IRIX, Solaris, Cygwin */
799     #if defined ELIBMAX
800     case ELIBMAX:         return "ELIBMAX";
801     #endif
802     /* Linux, IRIX, Solaris, Cygwin */
803     #if defined ELIBSCN
804     case ELIBSCN:         return "ELIBSCN";
805     #endif
806     /* Linux, AIX, HP-UX, IRIX, Solaris, Cygwin */
807     #if defined ELNRNG
808     case ELNRNG:          return "ELNRNG";
809     #endif
810     /* Minix */
811     #if defined ELOCKED
812     case ELOCKED:         return "ELOCKED";
813     #endif
814     /* Solaris */
815     #if defined ELOCKUNMAPPED
816     case ELOCKUNMAPPED:   return "ELOCKUNMAPPED";
817     #endif
818     /* IRIX */
819     #if defined ELOGINLIM
820     case ELOGINLIM:       return "ELOGINLIM";
821     #endif
822     /* GNU/Hurd */
823     #if defined EMACH_RCV_BODY_ERROR
824     case EMACH_RCV_BODY_ERROR:return "EMACH_RCV_BODY_ERROR";
825     #endif
826     /* GNU/Hurd */
827     #if defined EMACH_RCV_HEADER_ERROR
828     case EMACH_RCV_HEADER_ERROR:return "EMACH_RCV_HEADER_ERROR";
829     #endif
830     /* GNU/Hurd */
831     #if defined EMACH_RCV_INTERRUPTED
832     case EMACH_RCV_INTERRUPTED:return "EMACH_RCV_INTERRUPTED";
833     #endif
834     /* GNU/Hurd */
835     #if defined EMACH_RCV_INVALID_DATA
836     case EMACH_RCV_INVALID_DATA:return "EMACH_RCV_INVALID_DATA";
837     #endif
838     /* GNU/Hurd */
839     #if defined EMACH_RCV_INVALID_NAME
840     case EMACH_RCV_INVALID_NAME:return "EMACH_RCV_INVALID_NAME";
841     #endif
842     /* GNU/Hurd */
843     #if defined EMACH_RCV_INVALID_NOTIFY
844     case EMACH_RCV_INVALID_NOTIFY:return "EMACH_RCV_INVALID_NOTIFY";
845     #endif
846     /* GNU/Hurd */
847     #if defined EMACH_RCV_IN_PROGRESS
848     case EMACH_RCV_IN_PROGRESS:return "EMACH_RCV_IN_PROGRESS";
849     #endif
850     /* GNU/Hurd */
851     #if defined EMACH_RCV_IN_SET
852     case EMACH_RCV_IN_SET:return "EMACH_RCV_IN_SET";
853     #endif
854     /* GNU/Hurd */
855     #if defined EMACH_RCV_PORT_CHANGED
856     case EMACH_RCV_PORT_CHANGED:return "EMACH_RCV_PORT_CHANGED";
857     #endif
858     /* GNU/Hurd */
859     #if defined EMACH_RCV_PORT_DIED
860     case EMACH_RCV_PORT_DIED:return "EMACH_RCV_PORT_DIED";
861     #endif
862     /* GNU/Hurd */
863     #if defined EMACH_RCV_TIMED_OUT
864     case EMACH_RCV_TIMED_OUT:return "EMACH_RCV_TIMED_OUT";
865     #endif
866     /* GNU/Hurd */
867     #if defined EMACH_RCV_TOO_LARGE
868     case EMACH_RCV_TOO_LARGE:return "EMACH_RCV_TOO_LARGE";
869     #endif
870     /* GNU/Hurd */
871     #if defined EMACH_SEND_INTERRUPTED
872     case EMACH_SEND_INTERRUPTED:return "EMACH_SEND_INTERRUPTED";
873     #endif
874     /* GNU/Hurd */
875     #if defined EMACH_SEND_INVALID_DATA
876     case EMACH_SEND_INVALID_DATA:return "EMACH_SEND_INVALID_DATA";
877     #endif
878     /* GNU/Hurd */
879     #if defined EMACH_SEND_INVALID_DEST
880     case EMACH_SEND_INVALID_DEST:return "EMACH_SEND_INVALID_DEST";
881     #endif
882     /* GNU/Hurd */
883     #if defined EMACH_SEND_INVALID_HEADER
884     case EMACH_SEND_INVALID_HEADER:return "EMACH_SEND_INVALID_HEADER";
885     #endif
886     /* GNU/Hurd */
887     #if defined EMACH_SEND_INVALID_MEMORY
888     case EMACH_SEND_INVALID_MEMORY:return "EMACH_SEND_INVALID_MEMORY";
889     #endif
890     /* GNU/Hurd */
891     #if defined EMACH_SEND_INVALID_NOTIFY
892     case EMACH_SEND_INVALID_NOTIFY:return "EMACH_SEND_INVALID_NOTIFY";
893     #endif
894     /* GNU/Hurd */
895     #if defined EMACH_SEND_INVALID_REPLY
896     case EMACH_SEND_INVALID_REPLY:return "EMACH_SEND_INVALID_REPLY";
897     #endif
898     /* GNU/Hurd */
899     #if defined EMACH_SEND_INVALID_RIGHT
900     case EMACH_SEND_INVALID_RIGHT:return "EMACH_SEND_INVALID_RIGHT";
901     #endif
902     /* GNU/Hurd */
903     #if defined EMACH_SEND_INVALID_TYPE
904     case EMACH_SEND_INVALID_TYPE:return "EMACH_SEND_INVALID_TYPE";
905     #endif
906     /* GNU/Hurd */
907     #if defined EMACH_SEND_IN_PROGRESS
908     case EMACH_SEND_IN_PROGRESS:return "EMACH_SEND_IN_PROGRESS";
909     #endif
910     /* GNU/Hurd */
911     #if defined EMACH_SEND_MSG_TOO_SMALL
912     case EMACH_SEND_MSG_TOO_SMALL:return "EMACH_SEND_MSG_TOO_SMALL";
913     #endif
914     /* GNU/Hurd */
915     #if defined EMACH_SEND_NOTIFY_IN_PROGRESS
916     case EMACH_SEND_NOTIFY_IN_PROGRESS:return "EMACH_SEND_NOTIFY_IN_PROGRESS";
917     #endif
918     /* GNU/Hurd */
919     #if defined EMACH_SEND_NO_BUFFER
920     case EMACH_SEND_NO_BUFFER:return "EMACH_SEND_NO_BUFFER";
921     #endif
922     /* GNU/Hurd */
923     #if defined EMACH_SEND_NO_NOTIFY
924     case EMACH_SEND_NO_NOTIFY:return "EMACH_SEND_NO_NOTIFY";
925     #endif
926     /* GNU/Hurd */
927     #if defined EMACH_SEND_TIMED_OUT
928     case EMACH_SEND_TIMED_OUT:return "EMACH_SEND_TIMED_OUT";
929     #endif
930     /* GNU/Hurd */
931     #if defined EMACH_SEND_WILL_NOTIFY
932     case EMACH_SEND_WILL_NOTIFY:return "EMACH_SEND_WILL_NOTIFY";
933     #endif
934     /* AIX, OSF/1 */
935     #if defined EMEDIA
936     case EMEDIA:          return "EMEDIA";
937     #endif
938     /* Linux, OpenBSD */
939     #if defined EMEDIUMTYPE
940     case EMEDIUMTYPE:     return "EMEDIUMTYPE";
941     #endif
942     /* IRIX */
943     #if defined EMEMRETRY
944     case EMEMRETRY:       return "EMEMRETRY";
945     #endif
946     /* IRIX */
947     #if defined EMIGRATED
948     case EMIGRATED:       return "EMIGRATED";
949     #endif
950     /* IRIX */
951     #if defined EMIGRATING
952     case EMIGRATING:      return "EMIGRATING";
953     #endif
954     /* GNU/Hurd */
955     #if defined EMIG_ARRAY_TOO_LARGE
956     case EMIG_ARRAY_TOO_LARGE:return "EMIG_ARRAY_TOO_LARGE";
957     #endif
958     /* GNU/Hurd */
959     #if defined EMIG_BAD_ARGUMENTS
960     case EMIG_BAD_ARGUMENTS:return "EMIG_BAD_ARGUMENTS";
961     #endif
962     /* GNU/Hurd */
963     #if defined EMIG_BAD_ID
964     case EMIG_BAD_ID:     return "EMIG_BAD_ID";
965     #endif
966     /* GNU/Hurd */
967     #if defined EMIG_DESTROY_REQUEST
968     case EMIG_DESTROY_REQUEST:return "EMIG_DESTROY_REQUEST";
969     #endif
970     /* GNU/Hurd */
971     #if defined EMIG_EXCEPTION
972     case EMIG_EXCEPTION:  return "EMIG_EXCEPTION";
973     #endif
974     /* GNU/Hurd */
975     #if defined EMIG_NO_REPLY
976     case EMIG_NO_REPLY:   return "EMIG_NO_REPLY";
977     #endif
978     /* GNU/Hurd */
979     #if defined EMIG_REMOTE_ERROR
980     case EMIG_REMOTE_ERROR:return "EMIG_REMOTE_ERROR";
981     #endif
982     /* GNU/Hurd */
983     #if defined EMIG_REPLY_MISMATCH
984     case EMIG_REPLY_MISMATCH:return "EMIG_REPLY_MISMATCH";
985     #endif
986     /* GNU/Hurd */
987     #if defined EMIG_SERVER_DIED
988     case EMIG_SERVER_DIED:return "EMIG_SERVER_DIED";
989     #endif
990     /* GNU/Hurd */
991     #if defined EMIG_TYPE_ERROR
992     case EMIG_TYPE_ERROR: return "EMIG_TYPE_ERROR";
993     #endif
994     /* OSF/1 */
995     #if defined EMTIMERS
996     case EMTIMERS:        return "EMTIMERS";
997     #endif
998     /* IRIX */
999     #if defined EMUSTRUN
1000     case EMUSTRUN:        return "EMUSTRUN";
1001     #endif
1002     /* Linux, IRIX */
1003     #if defined ENAVAIL
1004     case ENAVAIL:         return "ENAVAIL";
1005     #endif
1006     /* Mac OS X, FreeBSD, NetBSD, OpenBSD, Minix */
1007     #if defined ENEEDAUTH
1008     case ENEEDAUTH:       return "ENEEDAUTH";
1009     #endif
1010     /* IRIX */
1011     #if defined ENFSREMOTE
1012     case ENFSREMOTE:      return "ENFSREMOTE";
1013     #endif
1014     /* Cygwin */
1015     #if defined ENMFILE
1016     case ENMFILE:         return "ENMFILE";
1017     #endif
1018     /* Linux, IRIX, Solaris, Cygwin */
1019     #if defined ENOANO
1020     case ENOANO:          return "ENOANO";
1021     #endif
1022     /* IRIX */
1023     #if defined ENOATTACH
1024     case ENOATTACH:       return "ENOATTACH";
1025     #endif
1026     /* Mac OS X, FreeBSD, NetBSD, OpenBSD, AIX, IRIX, Minix */
1027     #if defined ENOATTR
1028     case ENOATTR:         return "ENOATTR";
1029     #endif
1030     /* IRIX */
1031     #if defined ENOBWD
1032     case ENOBWD:          return "ENOBWD";
1033     #endif
1034     /* MirBSD */
1035     #if defined ENOCOFFEE
1036     case ENOCOFFEE:       return "ENOCOFFEE";
1037     #endif
1038     /* Minix */
1039     #if defined ENOCONN
1040     case ENOCONN:         return "ENOCONN";
1041     #endif
1042     /* AIX */
1043     #if defined ENOCONNECT
1044     case ENOCONNECT:      return "ENOCONNECT";
1045     #endif
1046     /* Linux, AIX, HP-UX, IRIX, Solaris, Cygwin */
1047     #if defined ENOCSI
1048     case ENOCSI:          return "ENOCSI";
1049     #endif
1050     /* IRIX */
1051     #if defined ENOEXIST
1052     case ENOEXIST:        return "ENOEXIST";
1053     #endif
1054     /* IRIX */
1055     #if defined ENOINTRGROUP
1056     case ENOINTRGROUP:    return "ENOINTRGROUP";
1057     #endif
1058     /* FreeBSD */
1059     #if defined ENOIOCTL
1060     case ENOIOCTL:        return "ENOIOCTL";
1061     #endif
1062     /* Linux */
1063     #if defined ENOKEY
1064     case ENOKEY:          return "ENOKEY";
1065     #endif
1066     /* IRIX */
1067     #if defined ENOLIMFILE
1068     case ENOLIMFILE:      return "ENOLIMFILE";
1069     #endif
1070     /* HP-UX */
1071     #if defined ENOLOAD
1072     case ENOLOAD:         return "ENOLOAD";
1073     #endif
1074     /* IRIX */
1075     #if defined ENOLOGIN
1076     case ENOLOGIN:        return "ENOLOGIN";
1077     #endif
1078     /* HP-UX */
1079     #if defined ENOMATCH
1080     case ENOMATCH:        return "ENOMATCH";
1081     #endif
1082     /* Linux, OpenBSD, Cygwin */
1083     #if defined ENOMEDIUM
1084     case ENOMEDIUM:       return "ENOMEDIUM";
1085     #endif
1086     /* IRIX */
1087     #if defined ENOMESSAGE
1088     case ENOMESSAGE:      return "ENOMESSAGE";
1089     #endif
1090     /* Linux, HP-UX, IRIX, Solaris, Cygwin */
1091     #if defined ENONET
1092     case ENONET:          return "ENONET";
1093     #endif
1094     /* Linux, HP-UX, IRIX, OSF/1, Solaris, Cygwin */
1095     #if defined ENOPKG
1096     case ENOPKG:          return "ENOPKG";
1097     #endif
1098     /* Mac OS X */
1099     #if defined ENOPOLICY
1100     case ENOPOLICY:       return "ENOPOLICY";
1101     #endif
1102     /* IRIX */
1103     #if defined ENOPROC
1104     case ENOPROC:         return "ENOPROC";
1105     #endif
1106     /* HP-UX */
1107     #if defined ENOREG
1108     case ENOREG:          return "ENOREG";
1109     #endif
1110     /* IRIX */
1111     #if defined ENOSERVICE
1112     case ENOSERVICE:      return "ENOSERVICE";
1113     #endif
1114     /* Cygwin */
1115     #if defined ENOSHARE
1116     case ENOSHARE:        return "ENOSHARE";
1117     #endif
1118     /* HP-UX, OSF/1 */
1119     #if defined ENOSYM
1120     case ENOSYM:          return "ENOSYM";
1121     #endif
1122     /* Solaris */
1123     #if defined ENOTACTIVE
1124     case ENOTACTIVE:      return "ENOTACTIVE";
1125     #endif
1126     /* Mac OS X, FreeBSD, NetBSD, OpenBSD, AIX, HP-UX, IRIX, OSF/1, Solaris, Minix, Cygwin */
1127     #if defined ENOTBLK
1128     case ENOTBLK:         return "ENOTBLK";
1129     #endif
1130     /* FreeBSD */
1131     #if defined ENOTCAPABLE
1132     case ENOTCAPABLE:     return "ENOTCAPABLE";
1133     #endif
1134     /* IRIX */
1135     #if defined ENOTCONTROLLER
1136     case ENOTCONTROLLER:  return "ENOTCONTROLLER";
1137     #endif
1138     /* IRIX */
1139     #if defined ENOTENQUEUED
1140     case ENOTENQUEUED:    return "ENOTENQUEUED";
1141     #endif
1142     /* IRIX */
1143     #if defined ENOTJOINED
1144     case ENOTJOINED:      return "ENOTJOINED";
1145     #endif
1146     /* Linux, IRIX */
1147     #if defined ENOTNAM
1148     case ENOTNAM:         return "ENOTNAM";
1149     #endif
1150     /* AIX, Minix */
1151     #if defined ENOTREADY
1152     case ENOTREADY:       return "ENOTREADY";
1153     #endif
1154     /* AIX */
1155     #if defined ENOTRUST
1156     case ENOTRUST:        return "ENOTRUST";
1157     #endif
1158     /* IRIX */
1159     #if defined ENOTSTOPPED
1160     case ENOTSTOPPED:     return "ENOTSTOPPED";
1161     #endif
1162     /* Linux, IRIX, Solaris, Cygwin */
1163     #if defined ENOTUNIQ
1164     case ENOTUNIQ:        return "ENOTUNIQ";
1165     #endif
1166     /* HP-UX */
1167     #if defined ENOUNLD
1168     case ENOUNLD:         return "ENOUNLD";
1169     #endif
1170     /* HP-UX */
1171     #if defined ENOUNREG
1172     case ENOUNREG:        return "ENOUNREG";
1173     #endif
1174     /* Minix */
1175     #if defined ENOURG
1176     case ENOURG:          return "ENOURG";
1177     #endif
1178     /* native Windows */
1179     #if defined EOTHER
1180     case EOTHER:          return "EOTHER";
1181     #endif
1182     /* Minix */
1183     #if defined EPACKSIZE
1184     case EPACKSIZE:       return "EPACKSIZE";
1185     #endif
1186     /* Linux, Mac OS X, FreeBSD, NetBSD, OpenBSD, AIX, HP-UX, IRIX, OSF/1, Solaris, Minix, Haiku, Cygwin */
1187     #if defined EPFNOSUPPORT
1188     case EPFNOSUPPORT:    return "EPFNOSUPPORT";
1189     #endif
1190     /* Mac OS X, FreeBSD, NetBSD, OpenBSD, AIX, IRIX, OSF/1, Minix, Cygwin */
1191     #if defined EPROCLIM
1192     case EPROCLIM:        return "EPROCLIM";
1193     #endif
1194     /* Mac OS X, FreeBSD, NetBSD, OpenBSD, OSF/1, Minix */
1195     #if defined EPROCUNAVAIL
1196     case EPROCUNAVAIL:    return "EPROCUNAVAIL";
1197     #endif
1198     /* Mac OS X, FreeBSD, NetBSD, OpenBSD, OSF/1, Minix */
1199     #if defined EPROGMISMATCH
1200     case EPROGMISMATCH:   return "EPROGMISMATCH";
1201     #endif
1202     /* Mac OS X, FreeBSD, NetBSD, OpenBSD, OSF/1, Minix */
1203     #if defined EPROGUNAVAIL
1204     case EPROGUNAVAIL:    return "EPROGUNAVAIL";
1205     #endif
1206     /* Mac OS X */
1207     #if defined EPWROFF
1208     case EPWROFF:         return "EPWROFF";
1209     #endif
1210     /* Mac OS X */
1211     #if defined EQFULL
1212     case EQFULL:          return "EQFULL";
1213     #endif
1214     /* HP-UX */
1215     #if defined ERELOC
1216     case ERELOC:          return "ERELOC";
1217     #endif
1218     /* OSF/1 */
1219     #if defined ERELOCATED
1220     case ERELOCATED:      return "ERELOCATED";
1221     #endif
1222     /* FreeBSD */
1223     #if defined ERELOOKUP
1224     case ERELOOKUP:       return "ERELOOKUP";
1225     #endif
1226     /* Linux, IRIX, Solaris, Cygwin */
1227     #if defined EREMCHG
1228     case EREMCHG:         return "EREMCHG";
1229     #endif
1230     /* IRIX */
1231     #if defined EREMDEV
1232     case EREMDEV:         return "EREMDEV";
1233     #endif
1234     /* Linux, Mac OS X, FreeBSD, NetBSD, OpenBSD, AIX, HP-UX, IRIX, OSF/1, Solaris, Minix, Haiku, Cygwin */
1235     #if defined EREMOTE
1236     case EREMOTE:         return "EREMOTE";
1237     #endif
1238     /* Linux, IRIX */
1239     #if defined EREMOTEIO
1240     case EREMOTEIO:       return "EREMOTEIO";
1241     #endif
1242     /* HP-UX */
1243     #if defined EREMOTERELEASE
1244     case EREMOTERELEASE:  return "EREMOTERELEASE";
1245     #endif
1246     /* Linux, FreeBSD, AIX, IRIX, OSF/1, Solaris, Minix */
1247     #if defined ERESTART
1248     case ERESTART:        return "ERESTART";
1249     #endif
1250     /* Linux */
1251     #if defined ERFKILL
1252     case ERFKILL:         return "ERFKILL";
1253     #endif
1254     /* Mac OS X, FreeBSD, NetBSD, OpenBSD, OSF/1, Minix */
1255     #if defined ERPCMISMATCH
1256     case ERPCMISMATCH:    return "ERPCMISMATCH";
1257     #endif
1258     /* AIX */
1259     #if defined ESAD
1260     case ESAD:            return "ESAD";
1261     #endif
1262     /* Mac OS X */
1263     #if defined ESHLIBVERS
1264     case ESHLIBVERS:      return "ESHLIBVERS";
1265     #endif
1266     /* Linux, Mac OS X, FreeBSD, NetBSD, OpenBSD, AIX, HP-UX, IRIX, OSF/1, Solaris, Minix, Haiku, Cygwin */
1267     #if defined ESHUTDOWN
1268     case ESHUTDOWN:       return "ESHUTDOWN";
1269     #endif
1270     /* Haiku */
1271     #if defined ESIGPARM
1272     case ESIGPARM:        return "ESIGPARM";
1273     #endif
1274     /* Linux, Mac OS X, FreeBSD, NetBSD, OpenBSD, AIX, HP-UX, IRIX, OSF/1, Solaris, Minix, Cygwin */
1275     #if defined ESOCKTNOSUPPORT
1276     case ESOCKTNOSUPPORT: return "ESOCKTNOSUPPORT";
1277     #endif
1278     /* AIX, OSF/1 */
1279     #if defined ESOFT
1280     case ESOFT:           return "ESOFT";
1281     #endif
1282     /* Linux, HP-UX, IRIX, Solaris, Cygwin */
1283     #if defined ESRMNT
1284     case ESRMNT:          return "ESRMNT";
1285     #endif
1286     /* Linux, IRIX, Solaris, Cygwin */
1287     #if defined ESTRPIPE
1288     case ESTRPIPE:        return "ESTRPIPE";
1289     #endif
1290     /* OSF/1 */
1291     #if defined ESUCCESS
1292     case ESUCCESS:        return "ESUCCESS";
1293     #endif
1294     /* AIX */
1295     #if defined ESYSERROR
1296     case ESYSERROR:       return "ESYSERROR";
1297     #endif
1298     /* Linux, Mac OS X, FreeBSD, NetBSD, OpenBSD, AIX, HP-UX, IRIX, OSF/1, Solaris, Minix, Cygwin */
1299     #if defined ETOOMANYREFS
1300     case ETOOMANYREFS:    return "ETOOMANYREFS";
1301     #endif
1302     /* Minix */
1303     #if defined ETRAPDENIED
1304     case ETRAPDENIED:     return "ETRAPDENIED";
1305     #endif
1306     /* Linux, IRIX */
1307     #if defined EUCLEAN
1308     case EUCLEAN:         return "EUCLEAN";
1309     #endif
1310     /* Linux, AIX, HP-UX, IRIX, Solaris, Cygwin */
1311     #if defined EUNATCH
1312     case EUNATCH:         return "EUNATCH";
1313     #endif
1314     /* Minix */
1315     #if defined EURG
1316     case EURG:            return "EURG";
1317     #endif
1318     /* Linux, Mac OS X, FreeBSD, NetBSD, OpenBSD, AIX, HP-UX, IRIX, OSF/1, Solaris, Minix, Cygwin */
1319     #if defined EUSERS
1320     case EUSERS:          return "EUSERS";
1321     #endif
1322     /* OSF/1 */
1323     #if defined EVERSION
1324     case EVERSION:        return "EVERSION";
1325     #endif
1326     /* IRIX */
1327     #if defined EWRONGFS
1328     case EWRONGFS:        return "EWRONGFS";
1329     #endif
1330     /* AIX */
1331     #if defined EWRPROTECT
1332     case EWRPROTECT:      return "EWRPROTECT";
1333     #endif
1334     /* Linux, IRIX, Solaris, Cygwin */
1335     #if defined EXFULL
1336     case EXFULL:          return "EXFULL";
1337     #endif
1338 
1339     default:
1340       return NULL;
1341     }
1342 }
1343