The OpenD Programming Language

1 /**
2  * D header file for C99.
3  *
4  * $(C_HEADER_DESCRIPTION pubs.opengroup.org/onlinepubs/009695399/basedefs/_errno.h.html, _errno.h)
5  *
6  * Copyright: Copyright Sean Kelly 2005 - 2009.
7  * License: Distributed under the
8  *      $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost Software License 1.0).
9  *    (See accompanying file LICENSE)
10  * Authors:   Sean Kelly, Alex Rønne Petersen
11  * Source:    https://github.com/dlang/dmd/blob/master/druntime/src/core/stdc/errno.d
12  * Standards: ISO/IEC 9899:1999 (E)
13  */
14 
15 module core.stdc.errno;
16 
17 version (OSX)
18     version = Darwin;
19 else version (iOS)
20     version = Darwin;
21 else version (TVOS)
22     version = Darwin;
23 else version (WatchOS)
24     version = Darwin;
25 
26 version (ARM)     version = ARM_Any;
27 version (AArch64) version = ARM_Any;
28 version (HPPA)    version = HPPA_Any;
29 version (MIPS32)  version = MIPS_Any;
30 version (MIPS64)  version = MIPS_Any;
31 version (PPC)     version = PPC_Any;
32 version (PPC64)   version = PPC_Any;
33 version (RISCV32) version = RISCV_Any;
34 version (RISCV64) version = RISCV_Any;
35 version (S390)    version = IBMZ_Any;
36 version (SPARC)   version = SPARC_Any;
37 version (SPARC64) version = SPARC_Any;
38 version (SystemZ) version = IBMZ_Any;
39 version (X86)     version = X86_Any;
40 version (X86_64)  version = X86_Any;
41 
42 version (WebAssembly)  version = X86_Any; // FIXME
43 
44 @trusted: // Only manipulates errno.
45 nothrow:
46 @nogc:
47 
48 version (CRuntime_DigitalMars)
49 {
50     extern (C)
51     {
52         ref int _errno();
53         alias errno = _errno;
54     }
55 }
56 else version (CRuntime_Microsoft)
57 {
58     extern (C)
59     {
60         ref int _errno();
61         alias errno = _errno;
62     }
63 }
64 else version (CRuntime_Glibc)
65 {
66     extern (C)
67     {
68         ref int __errno_location();
69         alias errno = __errno_location;
70     }
71 }
72 else version (CRuntime_Musl)
73 {
74     extern (C)
75     {
76         ref int __errno_location();
77         alias errno = __errno_location;
78     }
79 }
80 else version (OpenBSD)
81 {
82     // https://github.com/openbsd/src/blob/master/include/errno.h
83     extern (C)
84     {
85         ref int __errno();
86         alias errno = __errno;
87     }
88 }
89 else version (NetBSD)
90 {
91     // https://github.com/NetBSD/src/blob/trunk/include/errno.h
92     extern (C)
93     {
94         ref int __errno();
95         alias errno = __errno;
96     }
97 }
98 else version (FreeBSD)
99 {
100     extern (C)
101     {
102         ref int __error();
103         alias errno = __error;
104     }
105 }
106 else version (DragonFlyBSD)
107 {
108     extern (C)
109     {
110         pragma(mangle, "errno") int __errno;
111         ref int __error() {
112             return __errno;
113         }
114         alias errno = __error;
115     }
116 }
117 else version (CRuntime_Bionic)
118 {
119     extern (C)
120     {
121         ref int __errno();
122         alias errno = __errno;
123     }
124 }
125 else version (CRuntime_UClibc)
126 {
127     extern (C)
128     {
129         ref int __errno_location();
130         alias errno = __errno_location;
131     }
132 }
133 else version (Darwin)
134 {
135     extern (C)
136     {
137         ref int __error();
138         alias errno = __error;
139     }
140 }
141 else version (Solaris)
142 {
143     extern (C)
144     {
145         ref int ___errno();
146         alias errno = ___errno;
147     }
148 }
149 else version (Haiku)
150 {
151     // https://github.com/haiku/haiku/blob/master/headers/posix/errno.h
152     extern (C)
153     {
154         ref int _errnop();
155         alias errno = _errnop;
156     }
157 }
158 else version (FreeStanding)
159 {
160 	__gshared int errno_;
161 
162 	ref int errno() { return errno_; }
163 
164 	extern(C)
165 	int getErrno() { return errno; }
166 	extern(C)
167 	void setErrno(int i) { errno = i; }
168 }
169 else
170 {
171     ///
172     extern(C) pragma(mangle, "getErrno") @property int errno();
173     ///
174     extern(C) pragma(mangle, "setErrno") @property int errno(int n);
175 }
176 
177 extern (C):
178 
179 
180 version (Windows)
181 {
182     enum EPERM              = 1;        /// Operation not permitted
183     enum ENOENT             = 2;        /// No such file or directory
184     enum ESRCH              = 3;        /// No such process
185     enum EINTR              = 4;        /// Interrupted system call
186     enum EIO                = 5;        /// I/O error
187     enum ENXIO              = 6;        /// No such device or address
188     enum E2BIG              = 7;        /// Argument list too long
189     enum ENOEXEC            = 8;        /// Exec format error
190     enum EBADF              = 9;        /// Bad file number
191     enum ECHILD             = 10;       /// No child processes
192     enum EAGAIN             = 11;       /// Try again
193     enum ENOMEM             = 12;       /// Out of memory
194     enum EACCES             = 13;       /// Permission denied
195     enum EFAULT             = 14;       /// Bad address
196     enum EBUSY              = 16;       /// Device or resource busy
197     enum EEXIST             = 17;       /// File exists
198     enum EXDEV              = 18;       /// Cross-device link
199     enum ENODEV             = 19;       /// No such device
200     enum ENOTDIR            = 20;       /// Not a directory
201     enum EISDIR             = 21;       /// Is a directory
202     enum EINVAL             = 22;       /// Invalid argument
203     enum ENFILE             = 23;       /// File table overflow
204     enum EMFILE             = 24;       /// Too many open files
205     enum ENOTTY             = 25;       /// Not a typewriter
206     enum EFBIG              = 27;       /// File too large
207     enum ENOSPC             = 28;       /// No space left on device
208     enum ESPIPE             = 29;       /// Illegal seek
209     enum EROFS              = 30;       /// Read-only file system
210     enum EMLINK             = 31;       /// Too many links
211     enum EPIPE              = 32;       /// Broken pipe
212     enum EDOM               = 33;       /// Math argument out of domain of func
213     enum ERANGE             = 34;       /// Math result not representable
214     enum EDEADLK            = 36;       /// Resource deadlock would occur
215     enum ENAMETOOLONG       = 38;       /// File name too long
216     enum ENOLCK             = 39;       /// No record locks available
217     enum ENOSYS             = 40;       /// Function not implemented
218     enum ENOTEMPTY          = 41;       /// Directory not empty
219     enum EILSEQ             = 42;       /// Illegal byte sequence
220     enum EDEADLOCK          = EDEADLK;  /// Resource deadlock would occur
221 
222     // POSIX compatibility
223     // See_Also: https://docs.microsoft.com/en-us/cpp/c-runtime-library/errno-constants
224     enum EADDRINUSE         = 100;
225     enum EADDRNOTAVAIL      = 101;
226     enum EAFNOSUPPORT       = 102;
227     enum EALREADY           = 103;
228     enum EBADMSG            = 104;
229     enum ECANCELED          = 105;
230     enum ECONNABORTED       = 106;
231     enum ECONNREFUSED       = 107;
232     enum ECONNRESET         = 108;
233     enum EDESTADDRREQ       = 109;
234     enum EHOSTUNREACH       = 110;
235     enum EIDRM              = 111;
236     enum EINPROGRESS        = 112;
237     enum EISCONN            = 113;
238     enum ELOOP              = 114;
239     enum EMSGSIZE           = 115;
240     enum ENETDOWN           = 116;
241     enum ENETRESET          = 117;
242     enum ENETUNREACH        = 118;
243     enum ENOBUFS            = 119;
244     enum ENODATA            = 120;
245     enum ENOLINK            = 121;
246     enum ENOMSG             = 122;
247     enum ENOPROTOOPT        = 123;
248     enum ENOSR              = 124;
249     enum ENOSTR             = 125;
250     enum ENOTCONN           = 126;
251     enum ENOTRECOVERABLE    = 127;
252     enum ENOTSOCK           = 128;
253     enum ENOTSUP            = 129;
254     enum EOPNOTSUPP         = 130;
255     enum EOTHER             = 131;
256     enum EOVERFLOW          = 132;
257     enum EOWNERDEAD         = 133;
258     enum EPROTO             = 134;
259     enum EPROTONOSUPPORT    = 135;
260     enum EPROTOTYPE         = 136;
261     enum ETIME              = 137;
262     enum ETIMEDOUT          = 138;
263     enum ETXTBSY            = 139;
264     enum EWOULDBLOCK        = 140;
265 }
266 else version (linux)
267 {
268     enum EPERM              = 1;  ///
269     enum ENOENT             = 2;  ///
270     enum ESRCH              = 3;  ///
271     enum EINTR              = 4;  ///
272     enum EIO                = 5;  ///
273     enum ENXIO              = 6;  ///
274     enum E2BIG              = 7;  ///
275     enum ENOEXEC            = 8;  ///
276     enum EBADF              = 9;  ///
277     enum ECHILD             = 10; ///
278     enum EAGAIN             = 11; ///
279     enum ENOMEM             = 12; ///
280     enum EACCES             = 13; ///
281     enum EFAULT             = 14; ///
282     enum ENOTBLK            = 15; ///
283     enum EBUSY              = 16; ///
284     enum EEXIST             = 17; ///
285     enum EXDEV              = 18; ///
286     enum ENODEV             = 19; ///
287     enum ENOTDIR            = 20; ///
288     enum EISDIR             = 21; ///
289     enum EINVAL             = 22; ///
290     enum ENFILE             = 23; ///
291     enum EMFILE             = 24; ///
292     enum ENOTTY             = 25; ///
293     enum ETXTBSY            = 26; ///
294     enum EFBIG              = 27; ///
295     enum ENOSPC             = 28; ///
296     enum ESPIPE             = 29; ///
297     enum EROFS              = 30; ///
298     enum EMLINK             = 31; ///
299     enum EPIPE              = 32; ///
300     enum EDOM               = 33; ///
301     enum ERANGE             = 34; ///
302 
303     version (X86_Any)
304     {
305         enum EDEADLK            = 35;         ///
306         enum ENAMETOOLONG       = 36;         ///
307         enum ENOLCK             = 37;         ///
308         enum ENOSYS             = 38;         ///
309         enum ENOTEMPTY          = 39;         ///
310         enum ELOOP              = 40;         ///
311         enum EWOULDBLOCK        = EAGAIN;     ///
312         enum ENOMSG             = 42;         ///
313         enum EIDRM              = 43;         ///
314         enum ECHRNG             = 44;         ///
315         enum EL2NSYNC           = 45;         ///
316         enum EL3HLT             = 46;         ///
317         enum EL3RST             = 47;         ///
318         enum ELNRNG             = 48;         ///
319         enum EUNATCH            = 49;         ///
320         enum ENOCSI             = 50;         ///
321         enum EL2HLT             = 51;         ///
322         enum EBADE              = 52;         ///
323         enum EBADR              = 53;         ///
324         enum EXFULL             = 54;         ///
325         enum ENOANO             = 55;         ///
326         enum EBADRQC            = 56;         ///
327         enum EBADSLT            = 57;         ///
328         enum EDEADLOCK          = EDEADLK;    ///
329         enum EBFONT             = 59;         ///
330         enum ENOSTR             = 60;         ///
331         enum ENODATA            = 61;         ///
332         enum ETIME              = 62;         ///
333         enum ENOSR              = 63;         ///
334         enum ENONET             = 64;         ///
335         enum ENOPKG             = 65;         ///
336         enum EREMOTE            = 66;         ///
337         enum ENOLINK            = 67;         ///
338         enum EADV               = 68;         ///
339         enum ESRMNT             = 69;         ///
340         enum ECOMM              = 70;         ///
341         enum EPROTO             = 71;         ///
342         enum EMULTIHOP          = 72;         ///
343         enum EDOTDOT            = 73;         ///
344         enum EBADMSG            = 74;         ///
345         enum EOVERFLOW          = 75;         ///
346         enum ENOTUNIQ           = 76;         ///
347         enum EBADFD             = 77;         ///
348         enum EREMCHG            = 78;         ///
349         enum ELIBACC            = 79;         ///
350         enum ELIBBAD            = 80;         ///
351         enum ELIBSCN            = 81;         ///
352         enum ELIBMAX            = 82;         ///
353         enum ELIBEXEC           = 83;         ///
354         enum EILSEQ             = 84;         ///
355         enum ERESTART           = 85;         ///
356         enum ESTRPIPE           = 86;         ///
357         enum EUSERS             = 87;         ///
358         enum ENOTSOCK           = 88;         ///
359         enum EDESTADDRREQ       = 89;         ///
360         enum EMSGSIZE           = 90;         ///
361         enum EPROTOTYPE         = 91;         ///
362         enum ENOPROTOOPT        = 92;         ///
363         enum EPROTONOSUPPORT    = 93;         ///
364         enum ESOCKTNOSUPPORT    = 94;         ///
365         enum EOPNOTSUPP         = 95;         ///
366         enum ENOTSUP            = EOPNOTSUPP; ///
367         enum EPFNOSUPPORT       = 96;         ///
368         enum EAFNOSUPPORT       = 97;         ///
369         enum EADDRINUSE         = 98;         ///
370         enum EADDRNOTAVAIL      = 99;         ///
371         enum ENETDOWN           = 100;        ///
372         enum ENETUNREACH        = 101;        ///
373         enum ENETRESET          = 102;        ///
374         enum ECONNABORTED       = 103;        ///
375         enum ECONNRESET         = 104;        ///
376         enum ENOBUFS            = 105;        ///
377         enum EISCONN            = 106;        ///
378         enum ENOTCONN           = 107;        ///
379         enum ESHUTDOWN          = 108;        ///
380         enum ETOOMANYREFS       = 109;        ///
381         enum ETIMEDOUT          = 110;        ///
382         enum ECONNREFUSED       = 111;        ///
383         enum EHOSTDOWN          = 112;        ///
384         enum EHOSTUNREACH       = 113;        ///
385         enum EALREADY           = 114;        ///
386         enum EINPROGRESS        = 115;        ///
387         enum ESTALE             = 116;        ///
388         enum EUCLEAN            = 117;        ///
389         enum ENOTNAM            = 118;        ///
390         enum ENAVAIL            = 119;        ///
391         enum EISNAM             = 120;        ///
392         enum EREMOTEIO          = 121;        ///
393         enum EDQUOT             = 122;        ///
394         enum ENOMEDIUM          = 123;        ///
395         enum EMEDIUMTYPE        = 124;        ///
396         enum ECANCELED          = 125;        ///
397         enum ENOKEY             = 126;        ///
398         enum EKEYEXPIRED        = 127;        ///
399         enum EKEYREVOKED        = 128;        ///
400         enum EKEYREJECTED       = 129;        ///
401         enum EOWNERDEAD         = 130;        ///
402         enum ENOTRECOVERABLE    = 131;        ///
403         enum ERFKILL            = 132;        ///
404         enum EHWPOISON          = 133;        ///
405     }
406     else version (ARM_Any)
407     {
408         enum EDEADLK            = 35;         ///
409         enum ENAMETOOLONG       = 36;         ///
410         enum ENOLCK             = 37;         ///
411         enum ENOSYS             = 38;         ///
412         enum ENOTEMPTY          = 39;         ///
413         enum ELOOP              = 40;         ///
414         enum EWOULDBLOCK        = EAGAIN;     ///
415         enum ENOMSG             = 42;         ///
416         enum EIDRM              = 43;         ///
417         enum ECHRNG             = 44;         ///
418         enum EL2NSYNC           = 45;         ///
419         enum EL3HLT             = 46;         ///
420         enum EL3RST             = 47;         ///
421         enum ELNRNG             = 48;         ///
422         enum EUNATCH            = 49;         ///
423         enum ENOCSI             = 50;         ///
424         enum EL2HLT             = 51;         ///
425         enum EBADE              = 52;         ///
426         enum EBADR              = 53;         ///
427         enum EXFULL             = 54;         ///
428         enum ENOANO             = 55;         ///
429         enum EBADRQC            = 56;         ///
430         enum EBADSLT            = 57;         ///
431         enum EDEADLOCK          = EDEADLK;    ///
432         enum EBFONT             = 59;         ///
433         enum ENOSTR             = 60;         ///
434         enum ENODATA            = 61;         ///
435         enum ETIME              = 62;         ///
436         enum ENOSR              = 63;         ///
437         enum ENONET             = 64;         ///
438         enum ENOPKG             = 65;         ///
439         enum EREMOTE            = 66;         ///
440         enum ENOLINK            = 67;         ///
441         enum EADV               = 68;         ///
442         enum ESRMNT             = 69;         ///
443         enum ECOMM              = 70;         ///
444         enum EPROTO             = 71;         ///
445         enum EMULTIHOP          = 72;         ///
446         enum EDOTDOT            = 73;         ///
447         enum EBADMSG            = 74;         ///
448         enum EOVERFLOW          = 75;         ///
449         enum ENOTUNIQ           = 76;         ///
450         enum EBADFD             = 77;         ///
451         enum EREMCHG            = 78;         ///
452         enum ELIBACC            = 79;         ///
453         enum ELIBBAD            = 80;         ///
454         enum ELIBSCN            = 81;         ///
455         enum ELIBMAX            = 82;         ///
456         enum ELIBEXEC           = 83;         ///
457         enum EILSEQ             = 84;         ///
458         enum ERESTART           = 85;         ///
459         enum ESTRPIPE           = 86;         ///
460         enum EUSERS             = 87;         ///
461         enum ENOTSOCK           = 88;         ///
462         enum EDESTADDRREQ       = 89;         ///
463         enum EMSGSIZE           = 90;         ///
464         enum EPROTOTYPE         = 91;         ///
465         enum ENOPROTOOPT        = 92;         ///
466         enum EPROTONOSUPPORT    = 93;         ///
467         enum ESOCKTNOSUPPORT    = 94;         ///
468         enum EOPNOTSUPP         = 95;         ///
469         enum ENOTSUP            = EOPNOTSUPP; ///
470         enum EPFNOSUPPORT       = 96;         ///
471         enum EAFNOSUPPORT       = 97;         ///
472         enum EADDRINUSE         = 98;         ///
473         enum EADDRNOTAVAIL      = 99;         ///
474         enum ENETDOWN           = 100;        ///
475         enum ENETUNREACH        = 101;        ///
476         enum ENETRESET          = 102;        ///
477         enum ECONNABORTED       = 103;        ///
478         enum ECONNRESET         = 104;        ///
479         enum ENOBUFS            = 105;        ///
480         enum EISCONN            = 106;        ///
481         enum ENOTCONN           = 107;        ///
482         enum ESHUTDOWN          = 108;        ///
483         enum ETOOMANYREFS       = 109;        ///
484         enum ETIMEDOUT          = 110;        ///
485         enum ECONNREFUSED       = 111;        ///
486         enum EHOSTDOWN          = 112;        ///
487         enum EHOSTUNREACH       = 113;        ///
488         enum EALREADY           = 114;        ///
489         enum EINPROGRESS        = 115;        ///
490         enum ESTALE             = 116;        ///
491         enum EUCLEAN            = 117;        ///
492         enum ENOTNAM            = 118;        ///
493         enum ENAVAIL            = 119;        ///
494         enum EISNAM             = 120;        ///
495         enum EREMOTEIO          = 121;        ///
496         enum EDQUOT             = 122;        ///
497         enum ENOMEDIUM          = 123;        ///
498         enum EMEDIUMTYPE        = 124;        ///
499         enum ECANCELED          = 125;        ///
500         enum ENOKEY             = 126;        ///
501         enum EKEYEXPIRED        = 127;        ///
502         enum EKEYREVOKED        = 128;        ///
503         enum EKEYREJECTED       = 129;        ///
504         enum EOWNERDEAD         = 130;        ///
505         enum ENOTRECOVERABLE    = 131;        ///
506         enum ERFKILL            = 132;        ///
507         enum EHWPOISON          = 133;        ///
508     }
509     else version (HPPA_Any)
510     {
511         enum ENOMSG             = 35;         ///
512         enum EIDRM              = 36;         ///
513         enum ECHRNG             = 37;         ///
514         enum EL2NSYNC           = 38;         ///
515         enum EL3HLT             = 39;         ///
516         enum EL3RST             = 40;         ///
517         enum ELNRNG             = 41;         ///
518         enum EUNATCH            = 42;         ///
519         enum ENOCSI             = 43;         ///
520         enum EL2HLT             = 44;         ///
521         enum EDEADLK            = 45;         ///
522         enum EDEADLOCK          = EDEADLK;    ///
523         enum ENOLCK             = 46;         ///
524         enum EILSEQ             = 47;         ///
525         enum ENONET             = 50;         ///
526         enum ENODATA            = 51;         ///
527         enum ETIME              = 52;         ///
528         enum ENOSR              = 53;         ///
529         enum ENOSTR             = 54;         ///
530         enum ENOPKG             = 55;         ///
531         enum ENOLINK            = 57;         ///
532         enum EADV               = 58;         ///
533         enum ESRMNT             = 59;         ///
534         enum ECOMM              = 60;         ///
535         enum EPROTO             = 61;         ///
536         enum EMULTIHOP          = 64;         ///
537         enum EDOTDOT            = 66;         ///
538         enum EBADMSG            = 67;         ///
539         enum EUSERS             = 68;         ///
540         enum EDQUOT             = 69;         ///
541         enum ESTALE             = 70;         ///
542         enum EREMOTE            = 71;         ///
543         enum EOVERFLOW          = 72;         ///
544         enum EBADE              = 160;        ///
545         enum EBADR              = 161;        ///
546         enum EXFULL             = 162;        ///
547         enum ENOANO             = 163;        ///
548         enum EBADRQC            = 164;        ///
549         enum EBADSLT            = 165;        ///
550         enum EBFONT             = 166;        ///
551         enum ENOTUNIQ           = 167;        ///
552         enum EBADFD             = 168;        ///
553         enum EREMCHG            = 169;        ///
554         enum ELIBACC            = 170;        ///
555         enum ELIBBAD            = 171;        ///
556         enum ELIBSCN            = 172;        ///
557         enum ELIBMAX            = 173;        ///
558         enum ELIBEXEC           = 174;        ///
559         enum ERESTART           = 175;        ///
560         enum ESTRPIPE           = 176;        ///
561         enum EUCLEAN            = 177;        ///
562         enum ENOTNAM            = 178;        ///
563         enum ENAVAIL            = 179;        ///
564         enum EISNAM             = 180;        ///
565         enum EREMOTEIO          = 181;        ///
566         enum ENOMEDIUM          = 182;        ///
567         enum EMEDIUMTYPE        = 183;        ///
568         enum ENOKEY             = 184;        ///
569         enum EKEYEXPIRED        = 185;        ///
570         enum EKEYREVOKED        = 186;        ///
571         enum EKEYREJECTED       = 187;        ///
572         enum ENOSYM             = 215;        ///
573         enum ENOTSOCK           = 216;        ///
574         enum EDESTADDRREQ       = 217;        ///
575         enum EMSGSIZE           = 218;        ///
576         enum EPROTOTYPE         = 219;        ///
577         enum ENOPROTOOPT        = 220;        ///
578         enum EPROTONOSUPPORT    = 221;        ///
579         enum ESOCKTNOSUPPORT    = 221;        ///
580         enum EOPNOTSUPP         = 223;        ///
581         enum EPFNOSUPPORT       = 224;        ///
582         enum EAFNOSUPPORT       = 225;        ///
583         enum EADDRINUSE         = 226;        ///
584         enum EADDRNOTAVAIL      = 227;        ///
585         enum ENETDOWN           = 228;        ///
586         enum ENETUNREACH        = 229;        ///
587         enum ENETRESET          = 230;        ///
588         enum ECONNABORTED       = 231;        ///
589         enum ECONNRESET         = 232;        ///
590         enum ENOBUFS            = 233;        ///
591         enum EISCONN            = 234;        ///
592         enum ENOTCONN           = 235;        ///
593         enum ESHUTDOWN          = 236;        ///
594         enum ETOOMANYREFS       = 237;        ///
595         enum ETIMEDOUT          = 238;        ///
596         enum ECONNREFUSED       = 239;        ///
597         enum EREFUSED           = ECONNREFUSED; ///
598         enum EREMOTERELEASE     = 240;        ///
599         enum EHOSTDOWN          = 241;        ///
600         enum EHOSTUNREACH       = 242;        ///
601         enum EALREADY           = 244;        ///
602         enum EINPROGRESS        = 245;        ///
603         enum EWOULDBLOCK        = EAGAIN;     ///
604         enum ENOTEMPTY          = 247;        ///
605         enum ENAMETOOLONG       = 248;        ///
606         enum ELOOP              = 249;        ///
607         enum ENOSYS             = 251;        ///
608         enum ECANCELLED         = 253;        ///
609         enum ECANCELED          = ECANCELLED;  ///
610         enum EOWNERDEAD         = 254;        ///
611         enum ENOTRECOVERABLE    = 255;        ///
612         enum ERFKILL            = 256;        ///
613         enum EHWPOISON          = 257;        ///
614     }
615     else version (MIPS_Any)
616     {
617         enum ENOMSG             = 35;         ///
618         enum EIDRM              = 36;         ///
619         enum ECHRNG             = 37;         ///
620         enum EL2NSYNC           = 38;         ///
621         enum EL3HLT             = 39;         ///
622         enum EL3RST             = 40;         ///
623         enum ELNRNG             = 41;         ///
624         enum EUNATCH            = 42;         ///
625         enum ENOCSI             = 43;         ///
626         enum EL2HLT             = 44;         ///
627         enum EDEADLK            = 45;         ///
628         enum ENOLCK             = 46;         ///
629         enum EBADE              = 50;         ///
630         enum EBADR              = 51;         ///
631         enum EXFULL             = 52;         ///
632         enum ENOANO             = 53;         ///
633         enum EBADRQC            = 54;         ///
634         enum EBADSLT            = 55;         ///
635         enum EDEADLOCK          = 56;         ///
636         enum EBFONT             = 59;         ///
637         enum ENOSTR             = 60;         ///
638         enum ENODATA            = 61;         ///
639         enum ETIME              = 62;         ///
640         enum ENOSR              = 63;         ///
641         enum ENONET             = 64;         ///
642         enum ENOPKG             = 65;         ///
643         enum EREMOTE            = 66;         ///
644         enum ENOLINK            = 67;         ///
645         enum EADV               = 68;         ///
646         enum ESRMNT             = 69;         ///
647         enum ECOMM              = 70;         ///
648         enum EPROTO             = 71;         ///
649         enum EDOTDOT            = 73;         ///
650         enum EMULTIHOP          = 74;         ///
651         enum EBADMSG            = 77;         ///
652         enum ENAMETOOLONG       = 78;         ///
653         enum EOVERFLOW          = 79;         ///
654         enum ENOTUNIQ           = 80;         ///
655         enum EBADFD             = 81;         ///
656         enum EREMCHG            = 82;         ///
657         enum ELIBACC            = 83;         ///
658         enum ELIBBAD            = 84;         ///
659         enum ELIBSCN            = 85;         ///
660         enum ELIBMAX            = 86;         ///
661         enum ELIBEXEC           = 87;         ///
662         enum EILSEQ             = 88;         ///
663         enum ENOSYS             = 89;         ///
664         enum ELOOP              = 90;         ///
665         enum ERESTART           = 91;         ///
666         enum ESTRPIPE           = 92;         ///
667         enum ENOTEMPTY          = 93;         ///
668         enum EUSERS             = 94;         ///
669         enum ENOTSOCK           = 95;         ///
670         enum EDESTADDRREQ       = 96;         ///
671         enum EMSGSIZE           = 97;         ///
672         enum EPROTOTYPE         = 98;         ///
673         enum ENOPROTOOPT        = 99;         ///
674         enum EPROTONOSUPPORT    = 120;        ///
675         enum ESOCKTNOSUPPORT    = 121;        ///
676         enum EOPNOTSUPP         = 122;        ///
677         enum ENOTSUP            = EOPNOTSUPP; ///
678         enum EPFNOSUPPORT       = 123;        ///
679         enum EAFNOSUPPORT       = 124;        ///
680         enum EADDRINUSE         = 125;        ///
681         enum EADDRNOTAVAIL      = 126;        ///
682         enum ENETDOWN           = 127;        ///
683         enum ENETUNREACH        = 128;        ///
684         enum ENETRESET          = 129;        ///
685         enum ECONNABORTED       = 130;        ///
686         enum ECONNRESET         = 131;        ///
687         enum ENOBUFS            = 132;        ///
688         enum EISCONN            = 133;        ///
689         enum ENOTCONN           = 134;        ///
690         enum EUCLEAN            = 135;        ///
691         enum ENOTNAM            = 137;        ///
692         enum ENAVAIL            = 138;        ///
693         enum EISNAM             = 139;        ///
694         enum EREMOTEIO          = 140;        ///
695         enum EINIT              = 141;        ///
696         enum EREMDEV            = 142;        ///
697         enum ESHUTDOWN          = 143;        ///
698         enum ETOOMANYREFS       = 144;        ///
699         enum ETIMEDOUT          = 145;        ///
700         enum ECONNREFUSED       = 146;        ///
701         enum EHOSTDOWN          = 147;        ///
702         enum EHOSTUNREACH       = 148;        ///
703         enum EWOULDBLOCK        = EAGAIN;     ///
704         enum EALREADY           = 149;        ///
705         enum EINPROGRESS        = 150;        ///
706         enum ESTALE             = 151;        ///
707         enum ECANCELED          = 158;        ///
708         enum ENOMEDIUM          = 159;        ///
709         enum EMEDIUMTYPE        = 160;        ///
710         enum ENOKEY             = 161;        ///
711         enum EKEYEXPIRED        = 162;        ///
712         enum EKEYREVOKED        = 163;        ///
713         enum EKEYREJECTED       = 164;        ///
714         enum EOWNERDEAD         = 165;        ///
715         enum ENOTRECOVERABLE    = 166;        ///
716         enum ERFKILL            = 167;        ///
717         enum EHWPOISON          = 168;        ///
718         enum EDQUOT             = 1133;       ///
719     }
720     else version (PPC_Any)
721     {
722         enum EDEADLK            = 35;         ///
723         enum ENAMETOOLONG       = 36;         ///
724         enum ENOLCK             = 37;         ///
725         enum ENOSYS             = 38;         ///
726         enum ENOTEMPTY          = 39;         ///
727         enum ELOOP              = 40;         ///
728         enum EWOULDBLOCK        = EAGAIN;     ///
729         enum ENOMSG             = 42;         ///
730         enum EIDRM              = 43;         ///
731         enum ECHRNG             = 44;         ///
732         enum EL2NSYNC           = 45;         ///
733         enum EL3HLT             = 46;         ///
734         enum EL3RST             = 47;         ///
735         enum ELNRNG             = 48;         ///
736         enum EUNATCH            = 49;         ///
737         enum ENOCSI             = 50;         ///
738         enum EL2HLT             = 51;         ///
739         enum EBADE              = 52;         ///
740         enum EBADR              = 53;         ///
741         enum EXFULL             = 54;         ///
742         enum ENOANO             = 55;         ///
743         enum EBADRQC            = 56;         ///
744         enum EBADSLT            = 57;         ///
745         enum EDEADLOCK          = 58;         ///
746         enum EBFONT             = 59;         ///
747         enum ENOSTR             = 60;         ///
748         enum ENODATA            = 61;         ///
749         enum ETIME              = 62;         ///
750         enum ENOSR              = 63;         ///
751         enum ENONET             = 64;         ///
752         enum ENOPKG             = 65;         ///
753         enum EREMOTE            = 66;         ///
754         enum ENOLINK            = 67;         ///
755         enum EADV               = 68;         ///
756         enum ESRMNT             = 69;         ///
757         enum ECOMM              = 70;         ///
758         enum EPROTO             = 71;         ///
759         enum EMULTIHOP          = 72;         ///
760         enum EDOTDOT            = 73;         ///
761         enum EBADMSG            = 74;         ///
762         enum EOVERFLOW          = 75;         ///
763         enum ENOTUNIQ           = 76;         ///
764         enum EBADFD             = 77;         ///
765         enum EREMCHG            = 78;         ///
766         enum ELIBACC            = 79;         ///
767         enum ELIBBAD            = 80;         ///
768         enum ELIBSCN            = 81;         ///
769         enum ELIBMAX            = 82;         ///
770         enum ELIBEXEC           = 83;         ///
771         enum EILSEQ             = 84;         ///
772         enum ERESTART           = 85;         ///
773         enum ESTRPIPE           = 86;         ///
774         enum EUSERS             = 87;         ///
775         enum ENOTSOCK           = 88;         ///
776         enum EDESTADDRREQ       = 89;         ///
777         enum EMSGSIZE           = 90;         ///
778         enum EPROTOTYPE         = 91;         ///
779         enum ENOPROTOOPT        = 92;         ///
780         enum EPROTONOSUPPORT    = 93;         ///
781         enum ESOCKTNOSUPPORT    = 94;         ///
782         enum EOPNOTSUPP         = 95;         ///
783         enum ENOTSUP            = EOPNOTSUPP; ///
784         enum EPFNOSUPPORT       = 96;         ///
785         enum EAFNOSUPPORT       = 97;         ///
786         enum EADDRINUSE         = 98;         ///
787         enum EADDRNOTAVAIL      = 99;         ///
788         enum ENETDOWN           = 100;        ///
789         enum ENETUNREACH        = 101;        ///
790         enum ENETRESET          = 102;        ///
791         enum ECONNABORTED       = 103;        ///
792         enum ECONNRESET         = 104;        ///
793         enum ENOBUFS            = 105;        ///
794         enum EISCONN            = 106;        ///
795         enum ENOTCONN           = 107;        ///
796         enum ESHUTDOWN          = 108;        ///
797         enum ETOOMANYREFS       = 109;        ///
798         enum ETIMEDOUT          = 110;        ///
799         enum ECONNREFUSED       = 111;        ///
800         enum EHOSTDOWN          = 112;        ///
801         enum EHOSTUNREACH       = 113;        ///
802         enum EALREADY           = 114;        ///
803         enum EINPROGRESS        = 115;        ///
804         enum ESTALE             = 116;        ///
805         enum EUCLEAN            = 117;        ///
806         enum ENOTNAM            = 118;        ///
807         enum ENAVAIL            = 119;        ///
808         enum EISNAM             = 120;        ///
809         enum EREMOTEIO          = 121;        ///
810         enum EDQUOT             = 122;        ///
811         enum ENOMEDIUM          = 123;        ///
812         enum EMEDIUMTYPE        = 124;        ///
813         enum ECANCELED          = 125;        ///
814         enum ENOKEY             = 126;        ///
815         enum EKEYEXPIRED        = 127;        ///
816         enum EKEYREVOKED        = 128;        ///
817         enum EKEYREJECTED       = 129;        ///
818         enum EOWNERDEAD         = 130;        ///
819         enum ENOTRECOVERABLE    = 131;        ///
820         enum ERFKILL            = 132;        ///
821         enum EHWPOISON          = 133;        ///
822     }
823     else version (RISCV_Any)
824     {
825         enum EDEADLK            = 35;         ///
826         enum ENAMETOOLONG       = 36;         ///
827         enum ENOLCK             = 37;         ///
828         enum ENOSYS             = 38;         ///
829         enum ENOTEMPTY          = 39;         ///
830         enum ELOOP              = 40;         ///
831         enum EWOULDBLOCK        = EAGAIN;     ///
832         enum ENOMSG             = 42;         ///
833         enum EIDRM              = 43;         ///
834         enum ECHRNG             = 44;         ///
835         enum EL2NSYNC           = 45;         ///
836         enum EL3HLT             = 46;         ///
837         enum EL3RST             = 47;         ///
838         enum ELNRNG             = 48;         ///
839         enum EUNATCH            = 49;         ///
840         enum ENOCSI             = 50;         ///
841         enum EL2HLT             = 51;         ///
842         enum EBADE              = 52;         ///
843         enum EBADR              = 53;         ///
844         enum EXFULL             = 54;         ///
845         enum ENOANO             = 55;         ///
846         enum EBADRQC            = 56;         ///
847         enum EBADSLT            = 57;         ///
848         enum EDEADLOCK          = EDEADLK;    ///
849         enum EBFONT             = 59;         ///
850         enum ENOSTR             = 60;         ///
851         enum ENODATA            = 61;         ///
852         enum ETIME              = 62;         ///
853         enum ENOSR              = 63;         ///
854         enum ENONET             = 64;         ///
855         enum ENOPKG             = 65;         ///
856         enum EREMOTE            = 66;         ///
857         enum ENOLINK            = 67;         ///
858         enum EADV               = 68;         ///
859         enum ESRMNT             = 69;         ///
860         enum ECOMM              = 70;         ///
861         enum EPROTO             = 71;         ///
862         enum EMULTIHOP          = 72;         ///
863         enum EDOTDOT            = 73;         ///
864         enum EBADMSG            = 74;         ///
865         enum EOVERFLOW          = 75;         ///
866         enum ENOTUNIQ           = 76;         ///
867         enum EBADFD             = 77;         ///
868         enum EREMCHG            = 78;         ///
869         enum ELIBACC            = 79;         ///
870         enum ELIBBAD            = 80;         ///
871         enum ELIBSCN            = 81;         ///
872         enum ELIBMAX            = 82;         ///
873         enum ELIBEXEC           = 83;         ///
874         enum EILSEQ             = 84;         ///
875         enum ERESTART           = 85;         ///
876         enum ESTRPIPE           = 86;         ///
877         enum EUSERS             = 87;         ///
878         enum ENOTSOCK           = 88;         ///
879         enum EDESTADDRREQ       = 89;         ///
880         enum EMSGSIZE           = 90;         ///
881         enum EPROTOTYPE         = 91;         ///
882         enum ENOPROTOOPT        = 92;         ///
883         enum EPROTONOSUPPORT    = 93;         ///
884         enum ESOCKTNOSUPPORT    = 94;         ///
885         enum EOPNOTSUPP         = 95;         ///
886         enum EPFNOSUPPORT       = 96;         ///
887         enum EAFNOSUPPORT       = 97;         ///
888         enum EADDRINUSE         = 98;         ///
889         enum EADDRNOTAVAIL      = 99;         ///
890         enum ENETDOWN           = 100;        ///
891         enum ENETUNREACH        = 101;        ///
892         enum ENETRESET          = 102;        ///
893         enum ECONNABORTED       = 103;        ///
894         enum ECONNRESET         = 104;        ///
895         enum ENOBUFS            = 105;        ///
896         enum EISCONN            = 106;        ///
897         enum ENOTCONN           = 107;        ///
898         enum ESHUTDOWN          = 108;        ///
899         enum ETOOMANYREFS       = 109;        ///
900         enum ETIMEDOUT          = 110;        ///
901         enum ECONNREFUSED       = 111;        ///
902         enum EHOSTDOWN          = 112;        ///
903         enum EHOSTUNREACH       = 113;        ///
904         enum EALREADY           = 114;        ///
905         enum EINPROGRESS        = 115;        ///
906         enum ESTALE             = 116;        ///
907         enum EUCLEAN            = 117;        ///
908         enum ENOTNAM            = 118;        ///
909         enum ENAVAIL            = 119;        ///
910         enum EISNAM             = 120;        ///
911         enum EREMOTEIO          = 121;        ///
912         enum EDQUOT             = 122;        ///
913         enum ENOMEDIUM          = 123;        ///
914         enum EMEDIUMTYPE        = 124;        ///
915         enum ECANCELED          = 125;        ///
916         enum ENOKEY             = 126;        ///
917         enum EKEYEXPIRED        = 127;        ///
918         enum EKEYREVOKED        = 128;        ///
919         enum EKEYREJECTED       = 129;        ///
920         enum EOWNERDEAD         = 130;        ///
921         enum ENOTRECOVERABLE    = 131;        ///
922         enum ERFKILL            = 132;        ///
923         enum EHWPOISON          = 133;        ///
924     }
925     else version (SPARC_Any)
926     {
927         enum EWOULDBLOCK        = EAGAIN;     ///
928         enum EINPROGRESS        = 36;         ///
929         enum EALREADY           = 37;         ///
930         enum ENOTSOCK           = 38;         ///
931         enum EDESTADDRREQ       = 39;         ///
932         enum EMSGSIZE           = 40;         ///
933         enum EPROTOTYPE         = 41;         ///
934         enum ENOPROTOOPT        = 42;         ///
935         enum EPROTONOSUPPORT    = 43;         ///
936         enum ESOCKTNOSUPPORT    = 44;         ///
937         enum EOPNOTSUPP         = 45;         ///
938         enum ENOTSUP            = EOPNOTSUPP; ///
939         enum EPFNOSUPPORT       = 46;         ///
940         enum EAFNOSUPPORT       = 47;         ///
941         enum EADDRINUSE         = 48;         ///
942         enum EADDRNOTAVAIL      = 49;         ///
943         enum ENETDOWN           = 50;         ///
944         enum ENETUNREACH        = 51;         ///
945         enum ENETRESET          = 52;         ///
946         enum ECONNABORTED       = 53;         ///
947         enum ECONNRESET         = 54;         ///
948         enum ENOBUFS            = 55;         ///
949         enum EISCONN            = 56;         ///
950         enum ENOTCONN           = 57;         ///
951         enum ESHUTDOWN          = 58;         ///
952         enum ETOOMANYREFS       = 59;         ///
953         enum ETIMEDOUT          = 60;         ///
954         enum ECONNREFUSED       = 61;         ///
955         enum ELOOP              = 62;         ///
956         enum ENAMETOOLONG       = 63;         ///
957         enum EHOSTDOWN          = 64;         ///
958         enum EHOSTUNREACH       = 65;         ///
959         enum ENOTEMPTY          = 66;         ///
960         enum EPROCLIM           = 67;         ///
961         enum EUSERS             = 68;         ///
962         enum EDQUOT             = 69;         ///
963         enum ESTALE             = 70;         ///
964         enum EREMOTE            = 71;         ///
965         enum ENOSTR             = 72;         ///
966         enum ETIME              = 73;         ///
967         enum ENOSR              = 74;         ///
968         enum ENOMSG             = 75;         ///
969         enum EBADMSG            = 76;         ///
970         enum EIDRM              = 77;         ///
971         enum EDEADLK            = 78;         ///
972         enum ENOLCK             = 79;         ///
973         enum ENONET             = 80;         ///
974         enum ERREMOTE           = 81;         ///
975         enum ENOLINK            = 82;         ///
976         enum EADV               = 83;         ///
977         enum ESRMNT             = 84;         ///
978         enum ECOMM              = 85;         ///
979         enum EPROTO             = 86;         ///
980         enum EMULTIHOP          = 87;         ///
981         enum EDOTDOT            = 88;         ///
982         enum EREMCHG            = 89;         ///
983         enum ENOSYS             = 90;         ///
984         enum ESTRPIPE           = 91;         ///
985         enum EOVERFLOW          = 92;         ///
986         enum EBADFD             = 93;         ///
987         enum ECHRNG             = 94;         ///
988         enum EL2NSYNC           = 95;         ///
989         enum EL3HLT             = 96;         ///
990         enum EL3RST             = 97;         ///
991         enum ELNRNG             = 98;         ///
992         enum EUNATCH            = 99;         ///
993         enum ENOCSI             = 100;        ///
994         enum EL2HLT             = 101;        ///
995         enum EBADE              = 102;        ///
996         enum EBADR              = 103;        ///
997         enum EXFULL             = 104;        ///
998         enum ENOANO             = 105;        ///
999         enum EBADRQC            = 106;        ///
1000         enum EBADSLT            = 107;        ///
1001         enum EDEADLOCK          = 108;        ///
1002         enum EBFONT             = 109;        ///
1003         enum ELIBEXEC           = 110;        ///
1004         enum ENODATA            = 111;        ///
1005         enum ELIBBAD            = 112;        ///
1006         enum ENOPKG             = 113;        ///
1007         enum ELIBACC            = 114;        ///
1008         enum ENOTUNIQ           = 115;        ///
1009         enum ERESTART           = 116;        ///
1010         enum EUCLEAN            = 117;        ///
1011         enum ENOTNAM            = 118;        ///
1012         enum ENAVAIL            = 119;        ///
1013         enum EISNAM             = 120;        ///
1014         enum EREMOTEIO          = 121;        ///
1015         enum EILSEQ             = 122;        ///
1016         enum ELIBMAX            = 123;        ///
1017         enum ELIBSCN            = 124;        ///
1018         enum ENOMEDIUM          = 125;        ///
1019         enum EMEDIUMTYPE        = 126;        ///
1020         enum ECANCELED          = 127;        ///
1021         enum ENOKEY             = 128;        ///
1022         enum EKEYEXPIRED        = 129;        ///
1023         enum EKEYREVOKED        = 130;        ///
1024         enum EKEYREJECTED       = 131;        ///
1025         enum EOWNERDEAD         = 132;        ///
1026         enum ENOTRECOVERABLE    = 133;        ///
1027         enum ERFKILL            = 134;        ///
1028         enum EHWPOISON          = 135;        ///
1029     }
1030     else version (IBMZ_Any)
1031     {
1032         enum EDEADLK            = 35;         ///
1033         enum ENAMETOOLONG       = 36;         ///
1034         enum ENOLCK             = 37;         ///
1035         enum ENOSYS             = 38;         ///
1036         enum ENOTEMPTY          = 39;         ///
1037         enum ELOOP              = 40;         ///
1038         enum EWOULDBLOCK        = EAGAIN;     ///
1039         enum ENOMSG             = 42;         ///
1040         enum EIDRM              = 43;         ///
1041         enum ECHRNG             = 44;         ///
1042         enum EL2NSYNC           = 45;         ///
1043         enum EL3HLT             = 46;         ///
1044         enum EL3RST             = 47;         ///
1045         enum ELNRNG             = 48;         ///
1046         enum EUNATCH            = 49;         ///
1047         enum ENOCSI             = 50;         ///
1048         enum EL2HLT             = 51;         ///
1049         enum EBADE              = 52;         ///
1050         enum EBADR              = 53;         ///
1051         enum EXFULL             = 54;         ///
1052         enum ENOANO             = 55;         ///
1053         enum EBADRQC            = 56;         ///
1054         enum EBADSLT            = 57;         ///
1055         enum EDEADLOCK          = EDEADLK;    ///
1056         enum EBFONT             = 59;         ///
1057         enum ENOSTR             = 60;         ///
1058         enum ENODATA            = 61;         ///
1059         enum ETIME              = 62;         ///
1060         enum ENOSR              = 63;         ///
1061         enum ENONET             = 64;         ///
1062         enum ENOPKG             = 65;         ///
1063         enum EREMOTE            = 66;         ///
1064         enum ENOLINK            = 67;         ///
1065         enum EADV               = 68;         ///
1066         enum ESRMNT             = 69;         ///
1067         enum ECOMM              = 70;         ///
1068         enum EPROTO             = 71;         ///
1069         enum EMULTIHOP          = 72;         ///
1070         enum EDOTDOT            = 73;         ///
1071         enum EBADMSG            = 74;         ///
1072         enum EOVERFLOW          = 75;         ///
1073         enum ENOTUNIQ           = 76;         ///
1074         enum EBADFD             = 77;         ///
1075         enum EREMCHG            = 78;         ///
1076         enum ELIBACC            = 79;         ///
1077         enum ELIBBAD            = 80;         ///
1078         enum ELIBSCN            = 81;         ///
1079         enum ELIBMAX            = 82;         ///
1080         enum ELIBEXEC           = 83;         ///
1081         enum EILSEQ             = 84;         ///
1082         enum ERESTART           = 85;         ///
1083         enum ESTRPIPE           = 86;         ///
1084         enum EUSERS             = 87;         ///
1085         enum ENOTSOCK           = 88;         ///
1086         enum EDESTADDRREQ       = 89;         ///
1087         enum EMSGSIZE           = 90;         ///
1088         enum EPROTOTYPE         = 91;         ///
1089         enum ENOPROTOOPT        = 92;         ///
1090         enum EPROTONOSUPPORT    = 93;         ///
1091         enum ESOCKTNOSUPPORT    = 94;         ///
1092         enum EOPNOTSUPP         = 95;         ///
1093         enum ENOTSUP            = EOPNOTSUPP; ///
1094         enum EPFNOSUPPORT       = 96;         ///
1095         enum EAFNOSUPPORT       = 97;         ///
1096         enum EADDRINUSE         = 98;         ///
1097         enum EADDRNOTAVAIL      = 99;         ///
1098         enum ENETDOWN           = 100;        ///
1099         enum ENETUNREACH        = 101;        ///
1100         enum ENETRESET          = 102;        ///
1101         enum ECONNABORTED       = 103;        ///
1102         enum ECONNRESET         = 104;        ///
1103         enum ENOBUFS            = 105;        ///
1104         enum EISCONN            = 106;        ///
1105         enum ENOTCONN           = 107;        ///
1106         enum ESHUTDOWN          = 108;        ///
1107         enum ETOOMANYREFS       = 109;        ///
1108         enum ETIMEDOUT          = 110;        ///
1109         enum ECONNREFUSED       = 111;        ///
1110         enum EHOSTDOWN          = 112;        ///
1111         enum EHOSTUNREACH       = 113;        ///
1112         enum EALREADY           = 114;        ///
1113         enum EINPROGRESS        = 115;        ///
1114         enum ESTALE             = 116;        ///
1115         enum EUCLEAN            = 117;        ///
1116         enum ENOTNAM            = 118;        ///
1117         enum ENAVAIL            = 119;        ///
1118         enum EISNAM             = 120;        ///
1119         enum EREMOTEIO          = 121;        ///
1120         enum EDQUOT             = 122;        ///
1121         enum ENOMEDIUM          = 123;        ///
1122         enum EMEDIUMTYPE        = 124;        ///
1123         enum ECANCELED          = 125;        ///
1124         enum ENOKEY             = 126;        ///
1125         enum EKEYEXPIRED        = 127;        ///
1126         enum EKEYREVOKED        = 128;        ///
1127         enum EKEYREJECTED       = 129;        ///
1128         enum EOWNERDEAD         = 130;        ///
1129         enum ENOTRECOVERABLE    = 131;        ///
1130         enum ERFKILL            = 132;        ///
1131         enum EHWPOISON          = 133;        ///
1132     }
1133     else version (LoongArch64)
1134     {
1135         enum EDEADLK            = 35;         ///
1136         enum ENAMETOOLONG       = 36;         ///
1137         enum ENOLCK             = 37;         ///
1138         enum ENOSYS             = 38;         ///
1139         enum ENOTEMPTY          = 39;         ///
1140         enum ELOOP              = 40;         ///
1141         enum EWOULDBLOCK        = EAGAIN;     ///
1142         enum ENOMSG             = 42;         ///
1143         enum EIDRM              = 43;         ///
1144         enum ECHRNG             = 44;         ///
1145         enum EL2NSYNC           = 45;         ///
1146         enum EL3HLT             = 46;         ///
1147         enum EL3RST             = 47;         ///
1148         enum ELNRNG             = 48;         ///
1149         enum EUNATCH            = 49;         ///
1150         enum ENOCSI             = 50;         ///
1151         enum EL2HLT             = 51;         ///
1152         enum EBADE              = 52;         ///
1153         enum EBADR              = 53;         ///
1154         enum EXFULL             = 54;         ///
1155         enum ENOANO             = 55;         ///
1156         enum EBADRQC            = 56;         ///
1157         enum EBADSLT            = 57;         ///
1158         enum EDEADLOCK          = EDEADLK;    ///
1159         enum EBFONT             = 59;         ///
1160         enum ENOSTR             = 60;         ///
1161         enum ENODATA            = 61;         ///
1162         enum ETIME              = 62;         ///
1163         enum ENOSR              = 63;         ///
1164         enum ENONET             = 64;         ///
1165         enum ENOPKG             = 65;         ///
1166         enum EREMOTE            = 66;         ///
1167         enum ENOLINK            = 67;         ///
1168         enum EADV               = 68;         ///
1169         enum ESRMNT             = 69;         ///
1170         enum ECOMM              = 70;         ///
1171         enum EPROTO             = 71;         ///
1172         enum EMULTIHOP          = 72;         ///
1173         enum EDOTDOT            = 73;         ///
1174         enum EBADMSG            = 74;         ///
1175         enum EOVERFLOW          = 75;         ///
1176         enum ENOTUNIQ           = 76;         ///
1177         enum EBADFD             = 77;         ///
1178         enum EREMCHG            = 78;         ///
1179         enum ELIBACC            = 79;         ///
1180         enum ELIBBAD            = 80;         ///
1181         enum ELIBSCN            = 81;         ///
1182         enum ELIBMAX            = 82;         ///
1183         enum ELIBEXEC           = 83;         ///
1184         enum EILSEQ             = 84;         ///
1185         enum ERESTART           = 85;         ///
1186         enum ESTRPIPE           = 86;         ///
1187         enum EUSERS             = 87;         ///
1188         enum ENOTSOCK           = 88;         ///
1189         enum EDESTADDRREQ       = 89;         ///
1190         enum EMSGSIZE           = 90;         ///
1191         enum EPROTOTYPE         = 91;         ///
1192         enum ENOPROTOOPT        = 92;         ///
1193         enum EPROTONOSUPPORT    = 93;         ///
1194         enum ESOCKTNOSUPPORT    = 94;         ///
1195         enum EOPNOTSUPP         = 95;         ///
1196         enum ENOTSUP            = EOPNOTSUPP; ///
1197         enum EPFNOSUPPORT       = 96;         ///
1198         enum EAFNOSUPPORT       = 97;         ///
1199         enum EADDRINUSE         = 98;         ///
1200         enum EADDRNOTAVAIL      = 99;         ///
1201         enum ENETDOWN           = 100;        ///
1202         enum ENETUNREACH        = 101;        ///
1203         enum ENETRESET          = 102;        ///
1204         enum ECONNABORTED       = 103;        ///
1205         enum ECONNRESET         = 104;        ///
1206         enum ENOBUFS            = 105;        ///
1207         enum EISCONN            = 106;        ///
1208         enum ENOTCONN           = 107;        ///
1209         enum ESHUTDOWN          = 108;        ///
1210         enum ETOOMANYREFS       = 109;        ///
1211         enum ETIMEDOUT          = 110;        ///
1212         enum ECONNREFUSED       = 111;        ///
1213         enum EHOSTDOWN          = 112;        ///
1214         enum EHOSTUNREACH       = 113;        ///
1215         enum EALREADY           = 114;        ///
1216         enum EINPROGRESS        = 115;        ///
1217         enum ESTALE             = 116;        ///
1218         enum EUCLEAN            = 117;        ///
1219         enum ENOTNAM            = 118;        ///
1220         enum ENAVAIL            = 119;        ///
1221         enum EISNAM             = 120;        ///
1222         enum EREMOTEIO          = 121;        ///
1223         enum EDQUOT             = 122;        ///
1224         enum ENOMEDIUM          = 123;        ///
1225         enum EMEDIUMTYPE        = 124;        ///
1226         enum ECANCELED          = 125;        ///
1227         enum ENOKEY             = 126;        ///
1228         enum EKEYEXPIRED        = 127;        ///
1229         enum EKEYREVOKED        = 128;        ///
1230         enum EKEYREJECTED       = 129;        ///
1231         enum EOWNERDEAD         = 130;        ///
1232         enum ENOTRECOVERABLE    = 131;        ///
1233         enum ERFKILL            = 132;        ///
1234         enum EHWPOISON          = 133;        ///
1235     }
1236     else
1237     {
1238         static assert(false, "Architecture not supported.");
1239     }
1240 }
1241 else version (Darwin)
1242 {
1243     enum EPERM              = 1;        /// Operation not permitted
1244     enum ENOENT             = 2;        /// No such file or directory
1245     enum ESRCH              = 3;        /// No such process
1246     enum EINTR              = 4;        /// Interrupted system call
1247     enum EIO                = 5;        /// Input/output error
1248     enum ENXIO              = 6;        /// Device not configured
1249     enum E2BIG              = 7;        /// Argument list too long
1250     enum ENOEXEC            = 8;        /// Exec format error
1251     enum EBADF              = 9;        /// Bad file descriptor
1252     enum ECHILD             = 10;       /// No child processes
1253     enum EDEADLK            = 11;       /// Resource deadlock avoided
1254     enum ENOMEM             = 12;       /// Cannot allocate memory
1255     enum EACCES             = 13;       /// Permission denied
1256     enum EFAULT             = 14;       /// Bad address
1257     enum EBUSY              = 16;       /// Device busy
1258     enum EEXIST             = 17;       /// File exists
1259     enum EXDEV              = 18;       /// Cross-device link
1260     enum ENODEV             = 19;       /// Operation not supported by device
1261     enum ENOTDIR            = 20;       /// Not a directory
1262     enum EISDIR             = 21;       /// Is a directory
1263     enum EINVAL             = 22;       /// Invalid argument
1264     enum ENFILE             = 23;       /// Too many open files in system
1265     enum EMFILE             = 24;       /// Too many open files
1266     enum ENOTTY             = 25;       /// Inappropriate ioctl for device
1267     enum ETXTBSY            = 26;       /// Text file busy
1268     enum EFBIG              = 27;       /// File too large
1269     enum ENOSPC             = 28;       /// No space left on device
1270     enum ESPIPE             = 29;       /// Illegal seek
1271     enum EROFS              = 30;       /// Read-only file system
1272     enum EMLINK             = 31;       /// Too many links
1273     enum EPIPE              = 32;       /// Broken pipe
1274     enum EDOM               = 33;       /// Numerical argument out of domain
1275     enum ERANGE             = 34;       /// Result too large
1276     enum EAGAIN             = 35;       /// Resource temporarily unavailable
1277     enum EWOULDBLOCK        = EAGAIN;   /// Operation would block
1278     enum EINPROGRESS        = 36;       /// Operation now in progress
1279     enum EALREADY           = 37;       /// Operation already in progress
1280     enum ENOTSOCK           = 38;       /// Socket operation on non-socket
1281     enum EDESTADDRREQ       = 39;       /// Destination address required
1282     enum EMSGSIZE           = 40;       /// Message too long
1283     enum EPROTOTYPE         = 41;       /// Protocol wrong type for socket
1284     enum ENOPROTOOPT        = 42;       /// Protocol not available
1285     enum EPROTONOSUPPORT    = 43;       /// Protocol not supported
1286     enum ENOTSUP            = 45;       /// Operation not supported
1287     enum EOPNOTSUPP         = ENOTSUP;  /// Operation not supported on socket
1288     enum EAFNOSUPPORT       = 47;       /// Address family not supported by protocol family
1289     enum EADDRINUSE         = 48;       /// Address already in use
1290     enum EADDRNOTAVAIL      = 49;       /// Can't assign requested address
1291     enum ENETDOWN           = 50;       /// Network is down
1292     enum ENETUNREACH        = 51;       /// Network is unreachable
1293     enum ENETRESET          = 52;       /// Network dropped connection on reset
1294     enum ECONNABORTED       = 53;       /// Software caused connection abort
1295     enum ECONNRESET         = 54;       /// Connection reset by peer
1296     enum ENOBUFS            = 55;       /// No buffer space available
1297     enum EISCONN            = 56;       /// Socket is already connected
1298     enum ENOTCONN           = 57;       /// Socket is not connected
1299     enum ETIMEDOUT          = 60;       /// Operation timed out
1300     enum ECONNREFUSED       = 61;       /// Connection refused
1301     enum ELOOP              = 62;       /// Too many levels of symbolic links
1302     enum ENAMETOOLONG       = 63;       /// File name too long
1303     enum EHOSTUNREACH       = 65;       /// No route to host
1304     enum ENOTEMPTY          = 66;       /// Directory not empty
1305     enum EDQUOT             = 69;       /// Disc quota exceeded
1306     enum ESTALE             = 70;       /// Stale NFS file handle
1307     enum ENOLCK             = 77;       /// No locks available
1308     enum ENOSYS             = 78;       /// Function not implemented
1309     enum EOVERFLOW          = 84;       /// Value too large to be stored in data type
1310     enum ECANCELED          = 89;       /// Operation canceled
1311     enum EIDRM              = 90;       /// Identifier removed
1312     enum ENOMSG             = 91;       /// No message of desired type
1313     enum EILSEQ             = 92;       /// Illegal byte sequence
1314     enum EBADMSG            = 94;       /// Bad message
1315     enum EMULTIHOP          = 95;       /// Reserved
1316     enum ENODATA            = 96;       /// No message available on STREAM
1317     enum ENOLINK            = 97;       /// Reserved
1318     enum ENOSR              = 98;       /// No STREAM resources
1319     enum ENOSTR             = 99;       /// Not a STREAM
1320     enum EPROTO             = 100;      /// Protocol error
1321     enum ETIME              = 101;      /// STREAM ioctl timeout
1322     enum ELAST              = 101;      /// Must be equal largest errno
1323 }
1324 else version (FreeBSD)
1325 {
1326     enum EPERM              = 1;        /// Operation not permitted
1327     enum ENOENT             = 2;        /// No such file or directory
1328     enum ESRCH              = 3;        /// No such process
1329     enum EINTR              = 4;        /// Interrupted system call
1330     enum EIO                = 5;        /// Input/output error
1331     enum ENXIO              = 6;        /// Device not configured
1332     enum E2BIG              = 7;        /// Argument list too long
1333     enum ENOEXEC            = 8;        /// Exec format error
1334     enum EBADF              = 9;        /// Bad file descriptor
1335     enum ECHILD             = 10;       /// No child processes
1336     enum EDEADLK            = 11;       /// Resource deadlock avoided
1337     enum ENOMEM             = 12;       /// Cannot allocate memory
1338     enum EACCES             = 13;       /// Permission denied
1339     enum EFAULT             = 14;       /// Bad address
1340     enum ENOTBLK            = 15;       /// Block device required
1341     enum EBUSY              = 16;       /// Device busy
1342     enum EEXIST             = 17;       /// File exists
1343     enum EXDEV              = 18;       /// Cross-device link
1344     enum ENODEV             = 19;       /// Operation not supported by device
1345     enum ENOTDIR            = 20;       /// Not a directory
1346     enum EISDIR             = 21;       /// Is a directory
1347     enum EINVAL             = 22;       /// Invalid argument
1348     enum ENFILE             = 23;       /// Too many open files in system
1349     enum EMFILE             = 24;       /// Too many open files
1350     enum ENOTTY             = 25;       /// Inappropriate ioctl for device
1351     enum ETXTBSY            = 26;       /// Text file busy
1352     enum EFBIG              = 27;       /// File too large
1353     enum ENOSPC             = 28;       /// No space left on device
1354     enum ESPIPE             = 29;       /// Illegal seek
1355     enum EROFS              = 30;       /// Read-only file system
1356     enum EMLINK             = 31;       /// Too many links
1357     enum EPIPE              = 32;       /// Broken pipe
1358     enum EDOM               = 33;       /// Numerical argument out of domain
1359     enum ERANGE             = 34;       /// Result too large
1360     enum EAGAIN             = 35;       /// Resource temporarily unavailable
1361     enum EWOULDBLOCK        = EAGAIN;   /// Operation would block
1362     enum EINPROGRESS        = 36;       /// Operation now in progress
1363     enum EALREADY           = 37;       /// Operation already in progress
1364     enum ENOTSOCK           = 38;       /// Socket operation on non-socket
1365     enum EDESTADDRREQ       = 39;       /// Destination address required
1366     enum EMSGSIZE           = 40;       /// Message too long
1367     enum EPROTOTYPE         = 41;       /// Protocol wrong type for socket
1368     enum ENOPROTOOPT        = 42;       /// Protocol not available
1369     enum EPROTONOSUPPORT    = 43;       /// Protocol not supported
1370     enum ENOTSUP            = 45;       /// Operation not supported
1371     enum EOPNOTSUPP         = ENOTSUP;  /// Operation not supported on socket
1372     enum EAFNOSUPPORT       = 47;       /// Address family not supported by protocol family
1373     enum EADDRINUSE         = 48;       /// Address already in use
1374     enum EADDRNOTAVAIL      = 49;       /// Can't assign requested address
1375     enum ENETDOWN           = 50;       /// Network is down
1376     enum ENETUNREACH        = 51;       /// Network is unreachable
1377     enum ENETRESET          = 52;       /// Network dropped connection on reset
1378     enum ECONNABORTED       = 53;       /// Software caused connection abort
1379     enum ECONNRESET         = 54;       /// Connection reset by peer
1380     enum ENOBUFS            = 55;       /// No buffer space available
1381     enum EISCONN            = 56;       /// Socket is already connected
1382     enum ENOTCONN           = 57;       /// Socket is not connected
1383     enum ESHUTDOWN          = 58;       /// Can't send after socket shutdown
1384     enum ETOOMANYREFS       = 59;       /// Too many refrences; can't splice
1385     enum ETIMEDOUT          = 60;       /// Operation timed out
1386     enum ECONNREFUSED       = 61;       /// Connection refused
1387     enum ELOOP              = 62;       /// Too many levels of symbolic links
1388     enum ENAMETOOLONG       = 63;       /// File name too long
1389     enum EHOSTUNREACH       = 65;       /// No route to host
1390     enum ENOTEMPTY          = 66;       /// Directory not empty
1391     enum EPROCLIM           = 67;       /// Too many processes
1392     enum EUSERS             = 68;       /// Too many users
1393     enum EDQUOT             = 69;       /// Disc quota exceeded
1394     enum ESTALE             = 70;       /// Stale NFS file handle
1395     enum EREMOTE            = 71;       /// Too many levels of remote in path
1396     enum EBADRPC            = 72;       /// RPC struct is bad
1397     enum ERPCMISMATCH       = 73;       /// RPC version wrong
1398     enum EPROGUNAVAIL       = 74;       /// RPC prog. not avail
1399     enum EPROGMISMATCH      = 75;       /// Program version wrong
1400     enum EPROCUNAVAIL       = 76;       /// Bad procedure for program
1401     enum ENOLCK             = 77;       /// No locks available
1402     enum ENOSYS             = 78;       /// Function not implemented
1403     enum EFTYPE             = 79;       /// Inappropriate file type or format
1404     enum EAUTH              = 80;       /// Authentication error
1405     enum ENEEDAUTH          = 81;       /// Need authenticator
1406     enum EIDRM              = 82;       /// Itendifier removed
1407     enum ENOMSG             = 83;       /// No message of desired type
1408     enum EOVERFLOW          = 84;       /// Value too large to be stored in data type
1409     enum ECANCELED          = 85;       /// Operation canceled
1410     enum EILSEQ             = 86;       /// Illegal byte sequence
1411     enum ENOATTR            = 87;       /// Attribute not found
1412     enum EDOOFUS            = 88;       /// Programming error
1413     enum EBADMSG            = 89;       /// Bad message
1414     enum EMULTIHOP          = 90;       /// Multihop attempted
1415     enum ENOLINK            = 91;       /// Link has been severed
1416     enum EPROTO             = 92;       /// Protocol error
1417     enum ELAST              = 92;       /// Must be equal largest errno
1418 }
1419 else version (NetBSD)
1420 {
1421     // http://cvsweb.netbsd.org/bsdweb.cgi/~checkout~/src/sys/sys/errno.h
1422     enum EPERM           = 1;
1423     enum ENOENT          = 2;
1424     enum ESRCH           = 3;
1425     enum EINTR           = 4;
1426     enum EIO             = 5;
1427     enum ENXIO           = 6;
1428     enum E2BIG           = 7;
1429     enum ENOEXEC         = 8;
1430     enum EBADF           = 9;
1431     enum ECHILD          = 10;
1432     enum EDEADLK         = 11;
1433     ///
1434     enum ENOMEM          = 12;
1435     enum EACCES          = 13;
1436     enum EFAULT          = 14;
1437     enum ENOTBLK         = 15;
1438     enum EBUSY           = 16;
1439     enum EEXIST          = 17;
1440     enum EXDEV           = 18;
1441     enum ENODEV          = 19;
1442     enum ENOTDIR         = 20;
1443     enum EISDIR          = 21;
1444     enum EINVAL          = 22;
1445     enum ENFILE          = 23;
1446     enum EMFILE          = 24;
1447     enum ENOTTY          = 25;
1448     enum ETXTBSY         = 26;
1449     enum EFBIG           = 27;
1450     enum ENOSPC          = 28;
1451     enum ESPIPE          = 29;
1452     enum EROFS           = 30;
1453     enum EMLINK          = 31;
1454     enum EPIPE           = 32;
1455     ///
1456     enum EDOM            = 33;
1457     enum ERANGE          = 34;
1458 
1459     ///
1460     enum EAGAIN          = 35;
1461     enum EWOULDBLOCK     = EAGAIN;
1462     enum EINPROGRESS     = 36;
1463     enum EALREADY        = 37;
1464 
1465     ///
1466     enum ENOTSOCK        = 38;
1467     enum EDESTADDRREQ    = 39;
1468     enum EMSGSIZE        = 40;
1469     enum EPROTOTYPE      = 41;
1470     enum ENOPROTOOPT     = 42;
1471     enum EPROTONOSUPPORT = 43;
1472     enum ESOCKTNOSUPPORT = 44;
1473     enum EOPNOTSUPP      = 45;
1474     enum EPFNOSUPPORT    = 46;
1475     enum EAFNOSUPPORT    = 47;
1476     enum EADDRINUSE      = 48;
1477     enum EADDRNOTAVAIL   = 49;
1478 
1479     ///
1480     enum ENETDOWN        = 50;
1481     enum ENETUNREACH     = 51;
1482     enum ENETRESET       = 52;
1483     enum ECONNABORTED    = 53;
1484     enum ECONNRESET      = 54;
1485     enum ENOBUFS         = 55;
1486     enum EISCONN         = 56;
1487     enum ENOTCONN        = 57;
1488     enum ESHUTDOWN       = 58;
1489     enum ETOOMANYREFS    = 59;
1490     enum ETIMEDOUT       = 60;
1491     enum ECONNREFUSED    = 61;
1492     enum ELOOP           = 62;
1493     enum ENAMETOOLONG    = 63;
1494 
1495     ///
1496     enum EHOSTDOWN       = 64;
1497     enum EHOSTUNREACH    = 65;
1498     enum ENOTEMPTY       = 66;
1499 
1500     ///
1501     enum EPROCLIM        = 67;
1502     enum EUSERS          = 68;
1503     enum EDQUOT          = 69;
1504 
1505     ///
1506     enum ESTALE          = 70;
1507     enum EREMOTE         = 71;
1508     enum EBADRPC         = 72;
1509     enum ERPCMISMATCH    = 73;
1510     enum EPROGUNAVAIL    = 74;
1511     enum EPROGMISMATCH   = 75;
1512     enum EPROCUNAVAIL    = 76;
1513 
1514     enum ENOLCK          = 77;
1515     enum ENOSYS          = 78;
1516 
1517     enum EFTYPE          = 79;
1518     enum EAUTH           = 80;
1519     enum ENEEDAUTH       = 81;
1520 
1521     ///
1522     enum EIDRM           = 82;
1523     enum ENOMSG          = 83;
1524     enum EOVERFLOW       = 84;
1525     ///
1526     enum EILSEQ          = 85;
1527 
1528     ///
1529     enum ENOTSUP         = 86;
1530 
1531     ///
1532     enum ECANCELED       = 87;
1533 
1534     ///
1535     enum EBADMSG         = 88;
1536 
1537     ///
1538     enum ENODATA         = 89;
1539     enum ENOSR           = 90;
1540     enum ENOSTR          = 91;
1541     enum ETIME           = 92;
1542 
1543     ///
1544     enum ENOATTR         = 93;
1545 
1546     ///
1547     enum EMULTIHOP       = 94;
1548     enum ENOLINK         = 95;
1549     enum EPROTO          = 96;
1550 }
1551 else version (OpenBSD)
1552 {
1553     enum EPERM              = 1;        /// Operation not permitted
1554     enum ENOENT             = 2;        /// No such file or directory
1555     enum ESRCH              = 3;        /// No such process
1556     enum EINTR              = 4;        /// Interrupted system call
1557     enum EIO                = 5;        /// Input/output error
1558     enum ENXIO              = 6;        /// Device not configured
1559     enum E2BIG              = 7;        /// Argument list too long
1560     enum ENOEXEC            = 8;        /// Exec format error
1561     enum EBADF              = 9;        /// Bad file descriptor
1562     enum ECHILD             = 10;       /// No child processes
1563     enum EDEADLK            = 11;       /// Resource deadlock avoided
1564     enum ENOMEM             = 12;       /// Cannot allocate memory
1565     enum EACCES             = 13;       /// Permission denied
1566     enum EFAULT             = 14;       /// Bad address
1567     enum ENOTBLK            = 15;       /// Block device required
1568     enum EBUSY              = 16;       /// Device busy
1569     enum EEXIST             = 17;       /// File exists
1570     enum EXDEV              = 18;       /// Cross-device link
1571     enum ENODEV             = 19;       /// Operation not supported by device
1572     enum ENOTDIR            = 20;       /// Not a directory
1573     enum EISDIR             = 21;       /// Is a directory
1574     enum EINVAL             = 22;       /// Invalid argument
1575     enum ENFILE             = 23;       /// Too many open files in system
1576     enum EMFILE             = 24;       /// Too many open files
1577     enum ENOTTY             = 25;       /// Inappropriate ioctl for device
1578     enum ETXTBSY            = 26;       /// Text file busy
1579     enum EFBIG              = 27;       /// File too large
1580     enum ENOSPC             = 28;       /// No space left on device
1581     enum ESPIPE             = 29;       /// Illegal seek
1582     enum EROFS              = 30;       /// Read-only file system
1583     enum EMLINK             = 31;       /// Too many links
1584     enum EPIPE              = 32;       /// Broken pipe
1585     enum EDOM               = 33;       /// Numerical argument out of domain
1586     enum ERANGE             = 34;       /// Result too large
1587     enum EAGAIN             = 35;       /// Resource temporarily unavailable
1588     enum EWOULDBLOCK        = EAGAIN;   /// Operation would block
1589     enum EINPROGRESS        = 36;       /// Operation now in progress
1590     enum EALREADY           = 37;       /// Operation already in progress
1591     enum ENOTSOCK           = 38;       /// Socket operation on non-socket
1592     enum EDESTADDRREQ       = 39;       /// Destination address required
1593     enum EMSGSIZE           = 40;       /// Message too long
1594     enum EPROTOTYPE         = 41;       /// Protocol wrong type for socket
1595     enum ENOPROTOOPT        = 42;       /// Protocol not available
1596     enum EPROTONOSUPPORT    = 43;       /// Protocol not supported
1597     enum ESOCKTNOSUPPORT    = 44;       /// Socket type not supported
1598     enum EOPNOTSUPP         = 45;       /// Operation not supported
1599     enum EPFNOSUPPORT       = 46;       /// Protocol family not supported
1600     enum EAFNOSUPPORT       = 47;       /// Address family not supported by protocol family
1601     enum EADDRINUSE         = 48;       /// Address already in use
1602     enum EADDRNOTAVAIL      = 49;       /// Can't assign requested address
1603     enum ENETDOWN           = 50;       /// Network is down
1604     enum ENETUNREACH        = 51;       /// Network is unreachable
1605     enum ENETRESET          = 52;       /// Network dropped connection on reset
1606     enum ECONNABORTED       = 53;       /// Software caused connection abort
1607     enum ECONNRESET         = 54;       /// Connection reset by peer
1608     enum ENOBUFS            = 55;       /// No buffer space available
1609     enum EISCONN            = 56;       /// Socket is already connected
1610     enum ENOTCONN           = 57;       /// Socket is not connected
1611     enum ESHUTDOWN          = 58;       /// Can't send after socket shutdown
1612     enum ETOOMANYREFS       = 59;       /// Too many references: can't splice
1613     enum ETIMEDOUT          = 60;       /// Operation timed out
1614     enum ECONNREFUSED       = 61;       /// Connection refused
1615     enum ELOOP              = 62;       /// Too many levels of symbolic links
1616     enum ENAMETOOLONG       = 63;       /// File name too long
1617     enum EHOSTDOWN          = 64;       /// Host is down
1618     enum EHOSTUNREACH       = 65;       /// No route to host
1619     enum ENOTEMPTY          = 66;       /// Directory not empty
1620     enum EPROCLIM           = 67;       /// Too many processes
1621     enum EUSERS             = 68;       /// Too many users
1622     enum EDQUOT             = 69;       /// Disk quota exceeded
1623     enum ESTALE             = 70;       /// Stale NFS file handle
1624     enum EREMOTE            = 71;       /// Too many levels of remote in path
1625     enum EBADRPC            = 72;       /// RPC struct is bad
1626     enum ERPCMISMATCH       = 73;       /// RPC version wrong
1627     enum EPROGUNAVAIL       = 74;       /// RPC program not available
1628     enum EPROGMISMATCH      = 75;       /// Program version wrong
1629     enum EPROCUNAVAIL       = 76;       /// Bad procedure for program
1630     enum ENOLCK             = 77;       /// No locks available
1631     enum ENOSYS             = 78;       /// Function not implemented
1632     enum EFTYPE             = 79;       /// Inappropriate file type or format
1633     enum EAUTH              = 80;       /// Authentication error
1634     enum ENEEDAUTH          = 81;       /// Need authenticator
1635     enum EIPSEC             = 82;       /// IPsec processing failure
1636     enum ENOATTR            = 83;       /// Attribute not found
1637     enum EILSEQ             = 84;       /// Illegal byte sequence
1638     enum ENOMEDIUM          = 85;       /// No medium found
1639     enum EMEDIUMTYPE        = 86;       /// Wrong medium type
1640     enum EOVERFLOW          = 87;       /// Value too large to be stored in data type
1641     enum ECANCELED          = 88;       /// Operation canceled
1642     enum EIDRM              = 89;       /// Identifier removed
1643     enum ENOMSG             = 90;       /// No message of desired type
1644     enum ENOTSUP            = 91;       /// Not supported
1645     enum EBADMSG            = 92;       /// Bad message
1646     enum ENOTRECOVERABLE    = 93;       /// State not recoverable
1647     enum EOWNERDEAD         = 94;       /// Previous owner died
1648     enum EPROTO             = 95;       /// Protocol error
1649     enum ELAST              = 95;       /// Must be equal largest errno
1650 }
1651 else version (DragonFlyBSD)
1652 {
1653     enum EPERM              = 1;
1654     enum ENOENT             = 2;
1655     enum ESRCH              = 3;
1656     enum EINTR              = 4;
1657     enum EIO                = 5;
1658     enum ENXIO              = 6;
1659     enum E2BIG              = 7;
1660     enum ENOEXEC            = 8;
1661     enum EBADF              = 9;
1662     enum ECHILD             = 10;
1663     enum EDEADLK            = 11;
1664     enum ENOMEM             = 12;
1665     enum EACCES             = 13;
1666     enum EFAULT             = 14;
1667     enum ENOTBLK            = 15;
1668     enum EBUSY              = 16;
1669     enum EEXIST             = 17;
1670     enum EXDEV              = 18;
1671     enum ENODEV             = 19;
1672     enum ENOTDIR            = 20;
1673     enum EISDIR             = 21;
1674     enum EINVAL             = 22;
1675     enum ENFILE             = 23;
1676     enum EMFILE             = 24;
1677     enum ENOTTY             = 25;
1678     enum ETXTBSY            = 26;
1679     enum EFBIG              = 27;
1680     enum ENOSPC             = 28;
1681     enum ESPIPE             = 29;
1682     enum EROFS              = 30;
1683     enum EMLINK             = 31;
1684     enum EPIPE              = 32;
1685     enum EDOM               = 33;
1686     enum ERANGE             = 34;
1687     enum EAGAIN             = 35;
1688     enum EWOULDBLOCK        = EAGAIN;
1689     enum EINPROGRESS        = 36;
1690     enum EALREADY           = 37;
1691     enum ENOTSOCK           = 38;
1692     enum EDESTADDRREQ       = 39;
1693     enum EMSGSIZE           = 40;
1694     enum EPROTOTYPE         = 41;
1695     enum ENOPROTOOPT        = 42;
1696     enum EPROTONOSUPPORT    = 43;
1697     enum ENOTSUP            = 45;
1698     enum EOPNOTSUPP         = ENOTSUP;
1699     enum EPFNOSUPPORT       = 46;
1700     enum EAFNOSUPPORT       = 47;
1701     enum EADDRINUSE         = 48;
1702     enum EADDRNOTAVAIL      = 49;
1703     enum ENETDOWN           = 50;
1704     enum ENETUNREACH        = 51;
1705     enum ENETRESET          = 52;
1706     enum ECONNABORTED       = 53;
1707     enum ECONNRESET         = 54;
1708     enum ENOBUFS            = 55;
1709     enum EISCONN            = 56;
1710     enum ENOTCONN           = 57;
1711     enum ESHUTDOWN          = 58;
1712     enum ETOOMANYREFS       = 59;
1713     enum ETIMEDOUT          = 60;
1714     enum ECONNREFUSED       = 61;
1715     enum ELOOP              = 62;
1716     enum ENAMETOOLONG       = 63;
1717     enum EHOSTUNREACH       = 65;
1718     enum ENOTEMPTY          = 66;
1719     enum EPROCLIM           = 67;
1720     enum EUSERS             = 68;
1721     enum EDQUOT             = 69;
1722     enum ESTALE             = 70;
1723     enum EREMOTE            = 71;
1724     enum EBADRPC            = 72;
1725     enum ERPCMISMATCH       = 73;
1726     enum EPROGUNAVAIL       = 74;
1727     enum EPROGMISMATCH      = 75;
1728     enum EPROCUNAVAIL       = 76;
1729     enum ENOLCK             = 77;
1730     enum ENOSYS             = 78;
1731     enum EFTYPE             = 79;
1732     enum EAUTH              = 80;
1733     enum ENEEDAUTH          = 81;
1734     enum EIDRM              = 82;
1735     enum ENOMSG             = 83;
1736     enum EOVERFLOW          = 84;
1737     enum ECANCELED          = 85;
1738     enum EILSEQ             = 86;
1739     enum ENOATTR            = 87;
1740     enum EDOOFUS            = 88;
1741     enum EBADMSG            = 89;
1742     enum EMULTIHOP          = 90;
1743     enum ENOLINK            = 91;
1744     enum EPROTO             = 92;
1745     enum ENOMEDIUM          = 93;
1746     enum EUNUSED94          = 94;
1747     enum EUNUSED95          = 95;
1748     enum EUNUSED96          = 96;
1749     enum EUNUSED97          = 97;
1750     enum EUNUSED98          = 98;
1751     enum EASYNC             = 99;
1752     enum ELAST              = 99;
1753 }
1754 else version (Solaris)
1755 {
1756     enum EPERM =  1;              ///  Not super-user
1757     enum ENOENT = 2;              ///  No such file or directory
1758     enum ESRCH =  3;              ///  No such process
1759     enum EINTR =  4;              ///  interrupted system call
1760     enum EIO =    5;              ///  I/O error
1761     enum ENXIO =  6;              ///  No such device or address
1762     enum E2BIG =  7;              ///  Arg list too long
1763     enum ENOEXEC = 8;             ///  Exec format error
1764     enum EBADF =  9;              ///  Bad file number
1765     enum ECHILD = 10;             ///  No children
1766     enum EAGAIN = 11;             ///  Resource temporarily unavailable
1767     enum ENOMEM = 12;             ///  Not enough core
1768     enum EACCES = 13;             ///  Permission denied
1769     enum EFAULT = 14;             ///  Bad address
1770     enum ENOTBLK = 15;            ///  Block device required
1771     enum EBUSY =  16;             ///  Mount device busy
1772     enum EEXIST = 17;             ///  File exists
1773     enum EXDEV =  18;             ///  Cross-device link
1774     enum ENODEV = 19;             ///  No such device
1775     enum ENOTDIR = 20;            ///  Not a directory
1776     enum EISDIR = 21;             ///  Is a directory
1777     enum EINVAL = 22;             ///  Invalid argument
1778     enum ENFILE = 23;             ///  File table overflow
1779     enum EMFILE = 24;             ///  Too many open files
1780     enum ENOTTY = 25;             ///  Inappropriate ioctl for device
1781     enum ETXTBSY = 26;            ///  Text file busy
1782     enum EFBIG =  27;             ///  File too large
1783     enum ENOSPC = 28;             ///  No space left on device
1784     enum ESPIPE = 29;             ///  Illegal seek
1785     enum EROFS =  30;             ///  Read only file system
1786     enum EMLINK = 31;             ///  Too many links
1787     enum EPIPE =  32;             ///  Broken pipe
1788     enum EDOM =   33;             ///  Math arg out of domain of func
1789     enum ERANGE = 34;             ///  Math result not representable
1790     enum ENOMSG = 35;             ///  No message of desired type
1791     enum EIDRM =  36;             ///  Identifier removed
1792     enum ECHRNG = 37;             ///  Channel number out of range
1793     enum EL2NSYNC = 38;           ///  Level 2 not synchronized
1794     enum EL3HLT = 39;             ///  Level 3 halted
1795     enum EL3RST = 40;             ///  Level 3 reset
1796     enum ELNRNG = 41;             ///  Link number out of range
1797     enum EUNATCH = 42;            ///  Protocol driver not attached
1798     enum ENOCSI = 43;             ///  No CSI structure available
1799     enum EL2HLT = 44;             ///  Level 2 halted
1800     enum EDEADLK = 45;            ///  Deadlock condition.
1801     enum ENOLCK = 46;             ///  No record locks available.
1802     enum ECANCELED = 47;          ///  Operation canceled
1803     enum ENOTSUP = 48;            ///  Operation not supported
1804     enum EDQUOT = 49;             ///  Disc quota exceeded
1805     enum EBADE =  50;             ///  invalid exchange
1806     enum EBADR =  51;             ///  invalid request descriptor
1807     enum EXFULL = 52;             ///  exchange full
1808     enum ENOANO = 53;             ///  no anode
1809     enum EBADRQC = 54;            ///  invalid request code
1810     enum EBADSLT = 55;            ///  invalid slot
1811     enum EDEADLOCK = 56;          ///  file locking deadlock error
1812     enum EBFONT = 57;             ///  bad font file fmt
1813     enum EOWNERDEAD =     58;     ///  process died with the lock
1814     enum ENOTRECOVERABLE = 59;    ///  lock is not recoverable
1815     enum ENOSTR = 60;             ///  Device not a stream
1816     enum ENODATA = 61;            ///  no data (for no delay io)
1817     enum ETIME =  62;             ///  timer expired
1818     enum ENOSR =  63;             ///  out of streams resources
1819     enum ENONET = 64;             ///  Machine is not on the network
1820     enum ENOPKG = 65;             ///  Package not installed
1821     enum EREMOTE = 66;            ///  The object is remote
1822     enum ENOLINK = 67;            ///  the link has been severed
1823     enum EADV =   68;             ///  advertise error
1824     enum ESRMNT = 69;             ///  srmount error
1825     enum ECOMM =  70;             ///  Communication error on send
1826     enum EPROTO = 71;             ///  Protocol error
1827     enum ELOCKUNMAPPED =  72;     ///  locked lock was unmapped
1828     enum ENOTACTIVE = 73;         ///  Facility is not active
1829     enum EMULTIHOP = 74;          ///  multihop attempted
1830     enum EBADMSG = 77;            ///  trying to read unreadable message
1831     enum ENAMETOOLONG = 78;       ///  path name is too long
1832     enum EOVERFLOW = 79;          ///  value too large to be stored in data type
1833     enum ENOTUNIQ = 80;           ///  given log. name not unique
1834     enum EBADFD =  81;            ///  f.d. invalid for this operation
1835     enum EREMCHG = 82;            ///  Remote address changed
1836     enum ELIBACC = 83;            ///  Can't access a needed shared lib.
1837     enum ELIBBAD = 84;            ///  Accessing a corrupted shared lib.
1838     enum ELIBSCN = 85;            ///  .lib section in a.out corrupted.
1839     enum ELIBMAX = 86;            ///  Attempting to link in too many libs.
1840     enum ELIBEXEC = 87;           ///  Attempting to exec a shared library.
1841     enum EILSEQ = 88;             ///  Illegal byte sequence.
1842     enum ENOSYS = 89;             ///  Unsupported file system operation
1843     enum ELOOP =  90;             ///  Symbolic link loop
1844     enum ERESTART = 91;           ///  Restartable system call
1845     enum ESTRPIPE = 92;           ///  if pipe/FIFO, don't sleep in stream head
1846     enum ENOTEMPTY = 93;          ///  directory not empty
1847     enum EUSERS = 94;             ///  Too many users (for UFS)
1848     enum ENOTSOCK =       95;     ///  Socket operation on non-socket
1849     enum EDESTADDRREQ =   96;     ///  Destination address required
1850     enum EMSGSIZE =       97;     ///  Message too long
1851     enum EPROTOTYPE =     98;     ///  Protocol wrong type for socket
1852     enum ENOPROTOOPT =    99;     ///  Protocol not available
1853     enum EPROTONOSUPPORT = 120;   ///  Protocol not supported
1854     enum ESOCKTNOSUPPORT = 121;   ///  Socket type not supported
1855     enum EOPNOTSUPP =     122;    ///  Operation not supported on socket
1856     enum EPFNOSUPPORT =   123;    ///  Protocol family not supported
1857     enum EAFNOSUPPORT =   124;    ///  Address family not supported by the protocol family
1858     enum EADDRINUSE =     125;    ///  Address already in use
1859     enum EADDRNOTAVAIL =   126;   ///  Can't assign requested address
1860     enum ENETDOWN =       127;    ///  Network is down
1861     enum ENETUNREACH =    128;    ///  Network is unreachable
1862     enum ENETRESET =      129;    ///  Network dropped connection because of reset
1863     enum ECONNABORTED =   130;    ///  Software caused connection abort
1864     enum ECONNRESET =     131;    ///  Connection reset by peer
1865     enum ENOBUFS =        132;    ///  No buffer space available
1866     enum EISCONN =        133;    ///  Socket is already connected
1867     enum ENOTCONN =       134;    ///  Socket is not connected
1868     enum ESHUTDOWN =      143;    ///  Can't send after socket shutdown
1869     enum ETOOMANYREFS =   144;    ///  Too many references: can't splice
1870     enum ETIMEDOUT =      145;    ///  Connection timed out
1871     enum ECONNREFUSED =   146;    ///  Connection refused
1872     enum EHOSTDOWN =      147;    ///  Host is down
1873     enum EHOSTUNREACH =   148;    ///  No route to host
1874     enum EWOULDBLOCK =    EAGAIN; ///  Resource temporarily unavailable
1875     enum EALREADY =       149;    ///  operation already in progress
1876     enum EINPROGRESS =    150;    ///  operation now in progress
1877     enum ESTALE =         151;    ///  Stale NFS file handle
1878 }
1879 else version (Haiku)
1880 {
1881     // https://github.com/haiku/haiku/blob/master/headers/os/support/Errors.h
1882     // https://github.com/haiku/haiku/blob/master/headers/build/os/support/Errors.h
1883     import core.stdc.limits : INT_MIN;
1884     enum B_GENERAL_ERROR_BASE        = INT_MIN;
1885     enum B_OS_ERROR_BASE             = (B_GENERAL_ERROR_BASE + 0x1000);
1886     enum B_APP_ERROR_BASE            = (B_GENERAL_ERROR_BASE + 0x2000);
1887     enum B_INTERFACE_ERROR_BASE      = (B_GENERAL_ERROR_BASE + 0x3000);
1888     enum B_MEDIA_ERROR_BASE          = (B_GENERAL_ERROR_BASE + 0x4000);
1889                                             /* - 0x41ff */
1890     enum B_TRANSLATION_ERROR_BASE    = (B_GENERAL_ERROR_BASE + 0x4800);
1891                                             /* - 0x48ff */
1892     enum B_MIDI_ERROR_BASE           = (B_GENERAL_ERROR_BASE + 0x5000);
1893     enum B_STORAGE_ERROR_BASE        = (B_GENERAL_ERROR_BASE + 0x6000);
1894     enum B_POSIX_ERROR_BASE          = (B_GENERAL_ERROR_BASE + 0x7000);
1895     enum B_MAIL_ERROR_BASE           = (B_GENERAL_ERROR_BASE + 0x8000);
1896     enum B_PRINT_ERROR_BASE          = (B_GENERAL_ERROR_BASE + 0x9000);
1897     enum B_DEVICE_ERROR_BASE         = (B_GENERAL_ERROR_BASE + 0xa000);
1898 
1899     /* General Errors */
1900     enum B_NO_MEMORY                 = (B_GENERAL_ERROR_BASE + 0);
1901     enum B_IO_ERROR                  = (B_GENERAL_ERROR_BASE + 1);
1902     enum B_PERMISSION_DENIED         = (B_GENERAL_ERROR_BASE + 2);
1903     enum B_BAD_INDEX                 = (B_GENERAL_ERROR_BASE + 3);
1904     enum B_BAD_TYPE                  = (B_GENERAL_ERROR_BASE + 4);
1905     enum B_BAD_VALUE                 = (B_GENERAL_ERROR_BASE + 5);
1906     enum B_MISMATCHED_VALUES         = (B_GENERAL_ERROR_BASE + 6);
1907     enum B_NAME_NOT_FOUND            = (B_GENERAL_ERROR_BASE + 7);
1908     enum B_NAME_IN_USE               = (B_GENERAL_ERROR_BASE + 8);
1909     enum B_TIMED_OUT                 = (B_GENERAL_ERROR_BASE + 9);
1910     enum B_INTERRUPTED               = (B_GENERAL_ERROR_BASE + 10);
1911     enum B_WOULD_BLOCK               = (B_GENERAL_ERROR_BASE + 11);
1912     enum B_CANCELED                  = (B_GENERAL_ERROR_BASE + 12);
1913     enum B_NO_INIT                   = (B_GENERAL_ERROR_BASE + 13);
1914     enum B_NOT_INITIALIZED           = (B_GENERAL_ERROR_BASE + 13);
1915     enum B_BUSY                      = (B_GENERAL_ERROR_BASE + 14);
1916     enum B_NOT_ALLOWED               = (B_GENERAL_ERROR_BASE + 15);
1917     enum B_BAD_DATA                  = (B_GENERAL_ERROR_BASE + 16);
1918     enum B_DONT_DO_THAT              = (B_GENERAL_ERROR_BASE + 17);
1919 
1920     enum B_ERROR                     = (-1);
1921     enum B_OK                        = (int(0));
1922     enum B_NO_ERROR                  = (int(0));
1923 
1924     /* Kernel Kit Errors */
1925     enum B_BAD_SEM_ID                = (B_OS_ERROR_BASE + 0);
1926     enum B_NO_MORE_SEMS              = (B_OS_ERROR_BASE + 1);
1927 
1928     enum B_BAD_THREAD_ID             = (B_OS_ERROR_BASE + 0x100);
1929     enum B_NO_MORE_THREADS           = (B_OS_ERROR_BASE + 0x101);
1930     enum B_BAD_THREAD_STATE          = (B_OS_ERROR_BASE + 0x102);
1931     enum B_BAD_TEAM_ID               = (B_OS_ERROR_BASE + 0x103);
1932     enum B_NO_MORE_TEAMS             = (B_OS_ERROR_BASE + 0x104);
1933 
1934     enum B_BAD_PORT_ID               = (B_OS_ERROR_BASE + 0x200);
1935     enum B_NO_MORE_PORTS             = (B_OS_ERROR_BASE + 0x201);
1936 
1937     enum B_BAD_IMAGE_ID              = (B_OS_ERROR_BASE + 0x300);
1938     enum B_BAD_ADDRESS               = (B_OS_ERROR_BASE + 0x301);
1939     enum B_NOT_AN_EXECUTABLE         = (B_OS_ERROR_BASE + 0x302);
1940     enum B_MISSING_LIBRARY           = (B_OS_ERROR_BASE + 0x303);
1941     enum B_MISSING_SYMBOL            = (B_OS_ERROR_BASE + 0x304);
1942     enum B_UNKNOWN_EXECUTABLE        = (B_OS_ERROR_BASE + 0x305);
1943     enum B_LEGACY_EXECUTABLE         = (B_OS_ERROR_BASE + 0x306);
1944 
1945     enum B_DEBUGGER_ALREADY_INSTALLED    = (B_OS_ERROR_BASE + 0x400);
1946 
1947     /* Application Kit Errors */
1948     enum B_BAD_REPLY                         = (B_APP_ERROR_BASE + 0);
1949     enum B_DUPLICATE_REPLY                   = (B_APP_ERROR_BASE + 1);
1950     enum B_MESSAGE_TO_SELF                   = (B_APP_ERROR_BASE + 2);
1951     enum B_BAD_HANDLER                       = (B_APP_ERROR_BASE + 3);
1952     enum B_ALREADY_RUNNING                   = (B_APP_ERROR_BASE + 4);
1953     enum B_LAUNCH_FAILED                     = (B_APP_ERROR_BASE + 5);
1954     enum B_AMBIGUOUS_APP_LAUNCH              = (B_APP_ERROR_BASE + 6);
1955     enum B_UNKNOWN_MIME_TYPE                 = (B_APP_ERROR_BASE + 7);
1956     enum B_BAD_SCRIPT_SYNTAX                 = (B_APP_ERROR_BASE + 8);
1957     enum B_LAUNCH_FAILED_NO_RESOLVE_LINK     = (B_APP_ERROR_BASE + 9);
1958     enum B_LAUNCH_FAILED_EXECUTABLE          = (B_APP_ERROR_BASE + 10);
1959     enum B_LAUNCH_FAILED_APP_NOT_FOUND       = (B_APP_ERROR_BASE + 11);
1960     enum B_LAUNCH_FAILED_APP_IN_TRASH        = (B_APP_ERROR_BASE + 12);
1961     enum B_LAUNCH_FAILED_NO_PREFERRED_APP    = (B_APP_ERROR_BASE + 13);
1962     enum B_LAUNCH_FAILED_FILES_APP_NOT_FOUND = (B_APP_ERROR_BASE + 14);
1963     enum B_BAD_MIME_SNIFFER_RULE             = (B_APP_ERROR_BASE + 15);
1964     enum B_NOT_A_MESSAGE                     = (B_APP_ERROR_BASE + 16);
1965     enum B_SHUTDOWN_CANCELLED                = (B_APP_ERROR_BASE + 17);
1966     enum B_SHUTTING_DOWN                     = (B_APP_ERROR_BASE + 18);
1967 
1968     /* Storage Kit/File System Errors */
1969     enum B_FILE_ERROR                        = (B_STORAGE_ERROR_BASE + 0);
1970     enum B_FILE_NOT_FOUND                    = (B_STORAGE_ERROR_BASE + 1);
1971                 /* deprecated: use B_ENTRY_NOT_FOUND instead */
1972     enum B_FILE_EXISTS                       = (B_STORAGE_ERROR_BASE + 2);
1973     enum B_ENTRY_NOT_FOUND                   = (B_STORAGE_ERROR_BASE + 3);
1974     enum B_NAME_TOO_LONG                     = (B_STORAGE_ERROR_BASE + 4);
1975     enum B_NOT_A_DIRECTORY                   = (B_STORAGE_ERROR_BASE + 5);
1976     enum B_DIRECTORY_NOT_EMPTY               = (B_STORAGE_ERROR_BASE + 6);
1977     enum B_DEVICE_FULL                       = (B_STORAGE_ERROR_BASE + 7);
1978     enum B_READ_ONLY_DEVICE                  = (B_STORAGE_ERROR_BASE + 8);
1979     enum B_IS_A_DIRECTORY                    = (B_STORAGE_ERROR_BASE + 9);
1980     enum B_NO_MORE_FDS                       = (B_STORAGE_ERROR_BASE + 10);
1981     enum B_CROSS_DEVICE_LINK                 = (B_STORAGE_ERROR_BASE + 11);
1982     enum B_LINK_LIMIT                        = (B_STORAGE_ERROR_BASE + 12);
1983     enum B_BUSTED_PIPE                       = (B_STORAGE_ERROR_BASE + 13);
1984     enum B_UNSUPPORTED                       = (B_STORAGE_ERROR_BASE + 14);
1985     enum B_PARTITION_TOO_SMALL               = (B_STORAGE_ERROR_BASE + 15);
1986     enum B_PARTIAL_READ                      = (B_STORAGE_ERROR_BASE + 16);
1987     enum B_PARTIAL_WRITE                     = (B_STORAGE_ERROR_BASE + 17);
1988 
1989     /* POSIX Errors */
1990     enum B_USE_POSITIVE_POSIX_ERRORS = false;
1991 
1992     static if (B_USE_POSITIVE_POSIX_ERRORS)
1993     {
1994         enum B_TO_POSIX_ERROR(int code) = -code;
1995     }
1996     else
1997     {
1998         enum B_TO_POSIX_ERROR(int code) = code;
1999     }
2000     alias B_FROM_POSIX_ERROR = B_TO_POSIX_ERROR;
2001 
2002     enum B_POSIX_ENOMEM  = B_TO_POSIX_ERROR!(B_POSIX_ERROR_BASE + 0);
2003     enum E2BIG           = B_TO_POSIX_ERROR!(B_POSIX_ERROR_BASE + 1);
2004     enum ECHILD          = B_TO_POSIX_ERROR!(B_POSIX_ERROR_BASE + 2);
2005     enum EDEADLK         = B_TO_POSIX_ERROR!(B_POSIX_ERROR_BASE + 3);
2006     enum EFBIG           = B_TO_POSIX_ERROR!(B_POSIX_ERROR_BASE + 4);
2007     enum EMLINK          = B_TO_POSIX_ERROR!(B_POSIX_ERROR_BASE + 5);
2008     enum ENFILE          = B_TO_POSIX_ERROR!(B_POSIX_ERROR_BASE + 6);
2009     enum ENODEV          = B_TO_POSIX_ERROR!(B_POSIX_ERROR_BASE + 7);
2010     enum ENOLCK          = B_TO_POSIX_ERROR!(B_POSIX_ERROR_BASE + 8);
2011     enum ENOSYS          = B_TO_POSIX_ERROR!(B_POSIX_ERROR_BASE + 9);
2012     enum ENOTTY          = B_TO_POSIX_ERROR!(B_POSIX_ERROR_BASE + 10);
2013     enum ENXIO           = B_TO_POSIX_ERROR!(B_POSIX_ERROR_BASE + 11);
2014     enum ESPIPE          = B_TO_POSIX_ERROR!(B_POSIX_ERROR_BASE + 12);
2015     enum ESRCH           = B_TO_POSIX_ERROR!(B_POSIX_ERROR_BASE + 13);
2016     enum EFPOS           = B_TO_POSIX_ERROR!(B_POSIX_ERROR_BASE + 14);
2017     enum ESIGPARM        = B_TO_POSIX_ERROR!(B_POSIX_ERROR_BASE + 15);
2018     enum EDOM            = B_TO_POSIX_ERROR!(B_POSIX_ERROR_BASE + 16);
2019     enum ERANGE          = B_TO_POSIX_ERROR!(B_POSIX_ERROR_BASE + 17);
2020     enum EPROTOTYPE      = B_TO_POSIX_ERROR!(B_POSIX_ERROR_BASE + 18);
2021     enum EPROTONOSUPPORT = B_TO_POSIX_ERROR!(B_POSIX_ERROR_BASE + 19);
2022     enum EPFNOSUPPORT    = B_TO_POSIX_ERROR!(B_POSIX_ERROR_BASE + 20);
2023     enum EAFNOSUPPORT    = B_TO_POSIX_ERROR!(B_POSIX_ERROR_BASE + 21);
2024     enum EADDRINUSE      = B_TO_POSIX_ERROR!(B_POSIX_ERROR_BASE + 22);
2025     enum EADDRNOTAVAIL   = B_TO_POSIX_ERROR!(B_POSIX_ERROR_BASE + 23);
2026     enum ENETDOWN        = B_TO_POSIX_ERROR!(B_POSIX_ERROR_BASE + 24);
2027     enum ENETUNREACH     = B_TO_POSIX_ERROR!(B_POSIX_ERROR_BASE + 25);
2028     enum ENETRESET       = B_TO_POSIX_ERROR!(B_POSIX_ERROR_BASE + 26);
2029     enum ECONNABORTED    = B_TO_POSIX_ERROR!(B_POSIX_ERROR_BASE + 27);
2030     enum ECONNRESET      = B_TO_POSIX_ERROR!(B_POSIX_ERROR_BASE + 28);
2031     enum EISCONN         = B_TO_POSIX_ERROR!(B_POSIX_ERROR_BASE + 29);
2032     enum ENOTCONN        = B_TO_POSIX_ERROR!(B_POSIX_ERROR_BASE + 30);
2033     enum ESHUTDOWN       = B_TO_POSIX_ERROR!(B_POSIX_ERROR_BASE + 31);
2034     enum ECONNREFUSED    = B_TO_POSIX_ERROR!(B_POSIX_ERROR_BASE + 32);
2035     enum EHOSTUNREACH    = B_TO_POSIX_ERROR!(B_POSIX_ERROR_BASE + 33);
2036     enum ENOPROTOOPT     = B_TO_POSIX_ERROR!(B_POSIX_ERROR_BASE + 34);
2037     enum ENOBUFS         = B_TO_POSIX_ERROR!(B_POSIX_ERROR_BASE + 35);
2038     enum EINPROGRESS     = B_TO_POSIX_ERROR!(B_POSIX_ERROR_BASE + 36);
2039     enum EALREADY        = B_TO_POSIX_ERROR!(B_POSIX_ERROR_BASE + 37);
2040     enum EILSEQ          = B_TO_POSIX_ERROR!(B_POSIX_ERROR_BASE + 38);
2041     enum ENOMSG          = B_TO_POSIX_ERROR!(B_POSIX_ERROR_BASE + 39);
2042     enum ESTALE          = B_TO_POSIX_ERROR!(B_POSIX_ERROR_BASE + 40);
2043     enum EOVERFLOW       = B_TO_POSIX_ERROR!(B_POSIX_ERROR_BASE + 41);
2044     enum EMSGSIZE        = B_TO_POSIX_ERROR!(B_POSIX_ERROR_BASE + 42);
2045     enum EOPNOTSUPP      = B_TO_POSIX_ERROR!(B_POSIX_ERROR_BASE + 43);
2046     enum ENOTSOCK        = B_TO_POSIX_ERROR!(B_POSIX_ERROR_BASE + 44);
2047     enum EHOSTDOWN       = B_TO_POSIX_ERROR!(B_POSIX_ERROR_BASE + 45);
2048     enum EBADMSG         = B_TO_POSIX_ERROR!(B_POSIX_ERROR_BASE + 46);
2049     enum ECANCELED       = B_TO_POSIX_ERROR!(B_POSIX_ERROR_BASE + 47);
2050     enum EDESTADDRREQ    = B_TO_POSIX_ERROR!(B_POSIX_ERROR_BASE + 48);
2051     enum EDQUOT          = B_TO_POSIX_ERROR!(B_POSIX_ERROR_BASE + 49);
2052     enum EIDRM           = B_TO_POSIX_ERROR!(B_POSIX_ERROR_BASE + 50);
2053     enum EMULTIHOP       = B_TO_POSIX_ERROR!(B_POSIX_ERROR_BASE + 51);
2054     enum ENODATA         = B_TO_POSIX_ERROR!(B_POSIX_ERROR_BASE + 52);
2055     enum ENOLINK         = B_TO_POSIX_ERROR!(B_POSIX_ERROR_BASE + 53);
2056     enum ENOSR           = B_TO_POSIX_ERROR!(B_POSIX_ERROR_BASE + 54);
2057     enum ENOSTR          = B_TO_POSIX_ERROR!(B_POSIX_ERROR_BASE + 55);
2058     enum ENOTSUP         = B_TO_POSIX_ERROR!(B_POSIX_ERROR_BASE + 56);
2059     enum EPROTO          = B_TO_POSIX_ERROR!(B_POSIX_ERROR_BASE + 57);
2060     enum ETIME           = B_TO_POSIX_ERROR!(B_POSIX_ERROR_BASE + 58);
2061     enum ETXTBSY         = B_TO_POSIX_ERROR!(B_POSIX_ERROR_BASE + 59);
2062     enum ENOATTR         = B_TO_POSIX_ERROR!(B_POSIX_ERROR_BASE + 60);
2063 
2064     /* B_NO_MEMORY (0x80000000) can't be negated, so it needs special handling */
2065     static if (B_USE_POSITIVE_POSIX_ERRORS)
2066         enum ENOMEM = B_POSIX_ENOMEM;
2067     else
2068         enum ENOMEM = B_NO_MEMORY;
2069 
2070     /* POSIX errors that can be mapped to BeOS error codes */
2071     enum EACCES          = B_TO_POSIX_ERROR!(B_PERMISSION_DENIED);
2072     enum EINTR           = B_TO_POSIX_ERROR!(B_INTERRUPTED);
2073     enum EIO             = B_TO_POSIX_ERROR!(B_IO_ERROR);
2074     enum EBUSY           = B_TO_POSIX_ERROR!(B_BUSY);
2075     enum EFAULT          = B_TO_POSIX_ERROR!(B_BAD_ADDRESS);
2076     enum ETIMEDOUT       = B_TO_POSIX_ERROR!(B_TIMED_OUT);
2077     enum EAGAIN          = B_TO_POSIX_ERROR!(B_WOULD_BLOCK) /* SysV compatibility */;
2078     enum EWOULDBLOCK     = B_TO_POSIX_ERROR!(B_WOULD_BLOCK) /* BSD compatibility */;
2079     enum EBADF           = B_TO_POSIX_ERROR!(B_FILE_ERROR);
2080     enum EEXIST          = B_TO_POSIX_ERROR!(B_FILE_EXISTS);
2081     enum EINVAL          = B_TO_POSIX_ERROR!(B_BAD_VALUE);
2082     enum ENAMETOOLONG    = B_TO_POSIX_ERROR!(B_NAME_TOO_LONG);
2083     enum ENOENT          = B_TO_POSIX_ERROR!(B_ENTRY_NOT_FOUND);
2084     enum EPERM           = B_TO_POSIX_ERROR!(B_NOT_ALLOWED);
2085     enum ENOTDIR         = B_TO_POSIX_ERROR!(B_NOT_A_DIRECTORY);
2086     enum EISDIR          = B_TO_POSIX_ERROR!(B_IS_A_DIRECTORY);
2087     enum ENOTEMPTY       = B_TO_POSIX_ERROR!(B_DIRECTORY_NOT_EMPTY);
2088     enum ENOSPC          = B_TO_POSIX_ERROR!(B_DEVICE_FULL);
2089     enum EROFS           = B_TO_POSIX_ERROR!(B_READ_ONLY_DEVICE);
2090     enum EMFILE          = B_TO_POSIX_ERROR!(B_NO_MORE_FDS);
2091     enum EXDEV           = B_TO_POSIX_ERROR!(B_CROSS_DEVICE_LINK);
2092     enum ELOOP           = B_TO_POSIX_ERROR!(B_LINK_LIMIT);
2093     enum ENOEXEC         = B_TO_POSIX_ERROR!(B_NOT_AN_EXECUTABLE);
2094     enum EPIPE           = B_TO_POSIX_ERROR!(B_BUSTED_PIPE);
2095 
2096     /* new error codes that can be mapped to POSIX errors */
2097     enum B_BUFFER_OVERFLOW          =  B_FROM_POSIX_ERROR!(EOVERFLOW);
2098     enum B_TOO_MANY_ARGS            =  B_FROM_POSIX_ERROR!(E2BIG);
2099     enum B_FILE_TOO_LARGE           =  B_FROM_POSIX_ERROR!(EFBIG);
2100     enum B_RESULT_NOT_REPRESENTABLE =  B_FROM_POSIX_ERROR!(ERANGE);
2101     enum B_DEVICE_NOT_FOUND         =  B_FROM_POSIX_ERROR!(ENODEV);
2102     enum B_NOT_SUPPORTED            =  B_FROM_POSIX_ERROR!(EOPNOTSUPP);
2103 
2104     /* Media Kit Errors */
2105     enum B_STREAM_NOT_FOUND              = (B_MEDIA_ERROR_BASE + 0);
2106     enum B_SERVER_NOT_FOUND              = (B_MEDIA_ERROR_BASE + 1);
2107     enum B_RESOURCE_NOT_FOUND            = (B_MEDIA_ERROR_BASE + 2);
2108     enum B_RESOURCE_UNAVAILABLE          = (B_MEDIA_ERROR_BASE + 3);
2109     enum B_BAD_SUBSCRIBER                = (B_MEDIA_ERROR_BASE + 4);
2110     enum B_SUBSCRIBER_NOT_ENTERED        = (B_MEDIA_ERROR_BASE + 5);
2111     enum B_BUFFER_NOT_AVAILABLE          = (B_MEDIA_ERROR_BASE + 6);
2112     enum B_LAST_BUFFER_ERROR             = (B_MEDIA_ERROR_BASE + 7);
2113 
2114     enum B_MEDIA_SYSTEM_FAILURE          = (B_MEDIA_ERROR_BASE + 100);
2115     enum B_MEDIA_BAD_NODE                = (B_MEDIA_ERROR_BASE + 101);
2116     enum B_MEDIA_NODE_BUSY               = (B_MEDIA_ERROR_BASE + 102);
2117     enum B_MEDIA_BAD_FORMAT              = (B_MEDIA_ERROR_BASE + 103);
2118     enum B_MEDIA_BAD_BUFFER              = (B_MEDIA_ERROR_BASE + 104);
2119     enum B_MEDIA_TOO_MANY_NODES          = (B_MEDIA_ERROR_BASE + 105);
2120     enum B_MEDIA_TOO_MANY_BUFFERS        = (B_MEDIA_ERROR_BASE + 106);
2121     enum B_MEDIA_NODE_ALREADY_EXISTS     = (B_MEDIA_ERROR_BASE + 107);
2122     enum B_MEDIA_BUFFER_ALREADY_EXISTS   = (B_MEDIA_ERROR_BASE + 108);
2123     enum B_MEDIA_CANNOT_SEEK             = (B_MEDIA_ERROR_BASE + 109);
2124     enum B_MEDIA_CANNOT_CHANGE_RUN_MODE  = (B_MEDIA_ERROR_BASE + 110);
2125     enum B_MEDIA_APP_ALREADY_REGISTERED  = (B_MEDIA_ERROR_BASE + 111);
2126     enum B_MEDIA_APP_NOT_REGISTERED      = (B_MEDIA_ERROR_BASE + 112);
2127     enum B_MEDIA_CANNOT_RECLAIM_BUFFERS  = (B_MEDIA_ERROR_BASE + 113);
2128     enum B_MEDIA_BUFFERS_NOT_RECLAIMED   = (B_MEDIA_ERROR_BASE + 114);
2129     enum B_MEDIA_TIME_SOURCE_STOPPED     = (B_MEDIA_ERROR_BASE + 115);
2130     enum B_MEDIA_TIME_SOURCE_BUSY        = (B_MEDIA_ERROR_BASE + 116);
2131     enum B_MEDIA_BAD_SOURCE              = (B_MEDIA_ERROR_BASE + 117);
2132     enum B_MEDIA_BAD_DESTINATION         = (B_MEDIA_ERROR_BASE + 118);
2133     enum B_MEDIA_ALREADY_CONNECTED       = (B_MEDIA_ERROR_BASE + 119);
2134     enum B_MEDIA_NOT_CONNECTED           = (B_MEDIA_ERROR_BASE + 120);
2135     enum B_MEDIA_BAD_CLIP_FORMAT         = (B_MEDIA_ERROR_BASE + 121);
2136     enum B_MEDIA_ADDON_FAILED            = (B_MEDIA_ERROR_BASE + 122);
2137     enum B_MEDIA_ADDON_DISABLED          = (B_MEDIA_ERROR_BASE + 123);
2138     enum B_MEDIA_CHANGE_IN_PROGRESS      = (B_MEDIA_ERROR_BASE + 124);
2139     enum B_MEDIA_STALE_CHANGE_COUNT      = (B_MEDIA_ERROR_BASE + 125);
2140     enum B_MEDIA_ADDON_RESTRICTED        = (B_MEDIA_ERROR_BASE + 126);
2141     enum B_MEDIA_NO_HANDLER              = (B_MEDIA_ERROR_BASE + 127);
2142     enum B_MEDIA_DUPLICATE_FORMAT        = (B_MEDIA_ERROR_BASE + 128);
2143     enum B_MEDIA_REALTIME_DISABLED       = (B_MEDIA_ERROR_BASE + 129);
2144     enum B_MEDIA_REALTIME_UNAVAILABLE    = (B_MEDIA_ERROR_BASE + 130);
2145 
2146     /* Mail Kit Errors */
2147     enum B_MAIL_NO_DAEMON                = (B_MAIL_ERROR_BASE + 0);
2148     enum B_MAIL_UNKNOWN_USER             = (B_MAIL_ERROR_BASE + 1);
2149     enum B_MAIL_WRONG_PASSWORD           = (B_MAIL_ERROR_BASE + 2);
2150     enum B_MAIL_UNKNOWN_HOST             = (B_MAIL_ERROR_BASE + 3);
2151     enum B_MAIL_ACCESS_ERROR             = (B_MAIL_ERROR_BASE + 4);
2152     enum B_MAIL_UNKNOWN_FIELD            = (B_MAIL_ERROR_BASE + 5);
2153     enum B_MAIL_NO_RECIPIENT             = (B_MAIL_ERROR_BASE + 6);
2154     enum B_MAIL_INVALID_MAIL             = (B_MAIL_ERROR_BASE + 7);
2155 
2156     /* Printing Errors */
2157     enum B_NO_PRINT_SERVER               = (B_PRINT_ERROR_BASE + 0);
2158 
2159     /* Device Kit Errors */
2160     enum B_DEV_INVALID_IOCTL             = (B_DEVICE_ERROR_BASE + 0);
2161     enum B_DEV_NO_MEMORY                 = (B_DEVICE_ERROR_BASE + 1);
2162     enum B_DEV_BAD_DRIVE_NUM             = (B_DEVICE_ERROR_BASE + 2);
2163     enum B_DEV_NO_MEDIA                  = (B_DEVICE_ERROR_BASE + 3);
2164     enum B_DEV_UNREADABLE                = (B_DEVICE_ERROR_BASE + 4);
2165     enum B_DEV_FORMAT_ERROR              = (B_DEVICE_ERROR_BASE + 5);
2166     enum B_DEV_TIMEOUT                   = (B_DEVICE_ERROR_BASE + 6);
2167     enum B_DEV_RECALIBRATE_ERROR         = (B_DEVICE_ERROR_BASE + 7);
2168     enum B_DEV_SEEK_ERROR                = (B_DEVICE_ERROR_BASE + 8);
2169     enum B_DEV_ID_ERROR                  = (B_DEVICE_ERROR_BASE + 9);
2170     enum B_DEV_READ_ERROR                = (B_DEVICE_ERROR_BASE + 10);
2171     enum B_DEV_WRITE_ERROR               = (B_DEVICE_ERROR_BASE + 11);
2172     enum B_DEV_NOT_READY                 = (B_DEVICE_ERROR_BASE + 12);
2173     enum B_DEV_MEDIA_CHANGED             = (B_DEVICE_ERROR_BASE + 13);
2174     enum B_DEV_MEDIA_CHANGE_REQUESTED    = (B_DEVICE_ERROR_BASE + 14);
2175     enum B_DEV_RESOURCE_CONFLICT         = (B_DEVICE_ERROR_BASE + 15);
2176     enum B_DEV_CONFIGURATION_ERROR       = (B_DEVICE_ERROR_BASE + 16);
2177     enum B_DEV_DISABLED_BY_USER          = (B_DEVICE_ERROR_BASE + 17);
2178     enum B_DEV_DOOR_OPEN                 = (B_DEVICE_ERROR_BASE + 18);
2179 
2180     enum B_DEV_INVALID_PIPE              = (B_DEVICE_ERROR_BASE + 19);
2181     enum B_DEV_CRC_ERROR                 = (B_DEVICE_ERROR_BASE + 20);
2182     enum B_DEV_STALLED                   = (B_DEVICE_ERROR_BASE + 21);
2183     enum B_DEV_BAD_PID                   = (B_DEVICE_ERROR_BASE + 22);
2184     enum B_DEV_UNEXPECTED_PID            = (B_DEVICE_ERROR_BASE + 23);
2185     enum B_DEV_DATA_OVERRUN              = (B_DEVICE_ERROR_BASE + 24);
2186     enum B_DEV_DATA_UNDERRUN             = (B_DEVICE_ERROR_BASE + 25);
2187     enum B_DEV_FIFO_OVERRUN              = (B_DEVICE_ERROR_BASE + 26);
2188     enum B_DEV_FIFO_UNDERRUN             = (B_DEVICE_ERROR_BASE + 27);
2189     enum B_DEV_PENDING                   = (B_DEVICE_ERROR_BASE + 28);
2190     enum B_DEV_MULTIPLE_ERRORS           = (B_DEVICE_ERROR_BASE + 29);
2191     enum B_DEV_TOO_LATE                  = (B_DEVICE_ERROR_BASE + 30);
2192 
2193     /* Translation Kit Errors */
2194     enum B_TRANSLATION_BASE_ERROR        = (B_TRANSLATION_ERROR_BASE + 0);
2195     enum B_NO_TRANSLATOR                 = (B_TRANSLATION_ERROR_BASE + 1);
2196     enum B_ILLEGAL_DATA                  = (B_TRANSLATION_ERROR_BASE + 2);
2197 }
2198 else version (WASI)
2199 {
2200     enum EPERM            = 1;
2201     enum ENOENT           = 2;
2202     enum ESRCH            = 3;
2203     enum EINTR            = 4;
2204     enum EIO              = 5;
2205     enum ENXIO            = 6;
2206     enum E2BIG            = 7;
2207     enum ENOEXEC          = 8;
2208     enum EBADF            = 9;
2209     enum ECHILD          = 10;
2210     enum EAGAIN          = 11;
2211     enum ENOMEM          = 12;
2212     enum EACCES          = 13;
2213     enum EFAULT          = 14;
2214     enum ENOTBLK         = 15;
2215     enum EBUSY           = 16;
2216     enum EEXIST          = 17;
2217     enum EXDEV           = 18;
2218     enum ENODEV          = 19;
2219     enum ENOTDIR         = 20;
2220     enum EISDIR          = 21;
2221     enum EINVAL          = 22;
2222     enum ENFILE          = 23;
2223     enum EMFILE          = 24;
2224     enum ENOTTY          = 25;
2225     enum ETXTBSY         = 26;
2226     enum EFBIG           = 27;
2227     enum ENOSPC          = 28;
2228     enum ESPIPE          = 29;
2229     enum EROFS           = 30;
2230     enum EMLINK          = 31;
2231     enum EPIPE           = 32;
2232     enum EDOM            = 33;
2233     enum ERANGE          = 34;
2234     enum EDEADLK         = 35;
2235     enum ENAMETOOLONG    = 36;
2236     enum ENOLCK          = 37;
2237     enum ENOSYS          = 38;
2238     enum ENOTEMPTY       = 39;
2239     enum ELOOP           = 40;
2240     enum EWOULDBLOCK     = EAGAIN;
2241     enum ENOMSG          = 42;
2242     enum EIDRM           = 43;
2243     enum ECHRNG          = 44;
2244     enum EL2NSYNC        = 45;
2245     enum EL3HLT          = 46;
2246     enum EL3RST          = 47;
2247     enum ELNRNG          = 48;
2248     enum EUNATCH         = 49;
2249     enum ENOCSI          = 50;
2250     enum EL2HLT          = 51;
2251     enum EBADE           = 52;
2252     enum EBADR           = 53;
2253     enum EXFULL          = 54;
2254     enum ENOANO          = 55;
2255     enum EBADRQC         = 56;
2256     enum EBADSLT         = 57;
2257     enum EDEADLOCK       = EDEADLK;
2258     enum EBFONT          = 59;
2259     enum ENOSTR          = 60;
2260     enum ENODATA         = 61;
2261     enum ETIME           = 62;
2262     enum ENOSR           = 63;
2263     enum ENONET          = 64;
2264     enum ENOPKG          = 65;
2265     enum EREMOTE         = 66;
2266     enum ENOLINK         = 67;
2267     enum EADV            = 68;
2268     enum ESRMNT          = 69;
2269     enum ECOMM           = 70;
2270     enum EPROTO          = 71;
2271     enum EMULTIHOP       = 72;
2272     enum EDOTDOT         = 73;
2273     enum EBADMSG         = 74;
2274     enum EOVERFLOW       = 75;
2275     enum ENOTUNIQ        = 76;
2276     enum EBADFD          = 77;
2277     enum EREMCHG         = 78;
2278     enum ELIBACC         = 79;
2279     enum ELIBBAD         = 80;
2280     enum ELIBSCN         = 81;
2281     enum ELIBMAX         = 82;
2282     enum ELIBEXEC        = 83;
2283     enum EILSEQ          = 84;
2284     enum ERESTART        = 85;
2285     enum ESTRPIPE        = 86;
2286     enum EUSERS          = 87;
2287     enum ENOTSOCK        = 88;
2288     enum EDESTADDRREQ    = 89;
2289     enum EMSGSIZE        = 90;
2290     enum EPROTOTYPE      = 91;
2291     enum ENOPROTOOPT     = 92;
2292     enum EPROTONOSUPPORT = 93;
2293     enum ESOCKTNOSUPPORT = 94;
2294     enum EOPNOTSUPP      = 95;
2295     enum ENOTSUP         = EOPNOTSUPP;
2296     enum EPFNOSUPPORT    = 96;
2297     enum EAFNOSUPPORT    = 97;
2298     enum EADDRINUSE      = 98;
2299     enum EADDRNOTAVAIL   = 99;
2300     enum ENETDOWN        = 100;
2301     enum ENETUNREACH     = 101;
2302     enum ENETRESET       = 102;
2303     enum ECONNABORTED    = 103;
2304     enum ECONNRESET      = 104;
2305     enum ENOBUFS         = 105;
2306     enum EISCONN         = 106;
2307     enum ENOTCONN        = 107;
2308     enum ESHUTDOWN       = 108;
2309     enum ETOOMANYREFS    = 109;
2310     enum ETIMEDOUT       = 110;
2311     enum ECONNREFUSED    = 111;
2312     enum EHOSTDOWN       = 112;
2313     enum EHOSTUNREACH    = 113;
2314     enum EALREADY        = 114;
2315     enum EINPROGRESS     = 115;
2316     enum ESTALE          = 116;
2317     enum EUCLEAN         = 117;
2318     enum ENOTNAM         = 118;
2319     enum ENAVAIL         = 119;
2320     enum EISNAM          = 120;
2321     enum EREMOTEIO       = 121;
2322     enum EDQUOT          = 122;
2323     enum ENOMEDIUM       = 123;
2324     enum EMEDIUMTYPE     = 124;
2325     enum ECANCELED       = 125;
2326     enum ENOKEY          = 126;
2327     enum EKEYEXPIRED     = 127;
2328     enum EKEYREVOKED     = 128;
2329     enum EKEYREJECTED    = 129;
2330     enum EOWNERDEAD      = 130;
2331     enum ENOTRECOVERABLE = 131;
2332     enum ERFKILL         = 132;
2333     enum EHWPOISON       = 133;
2334 }
2335 else version (FreeStanding) {}
2336 else
2337 {
2338     static assert(false, "Unsupported platform");
2339 }