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/druntime/blob/master/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 @trusted: // Only manipulates errno.
43 nothrow:
44 @nogc:
45 
version(CRuntime_DigitalMars)46 version (CRuntime_DigitalMars)
47 {
48     extern (C)
49     {
50         ref int _errno();
51         alias errno = _errno;
52     }
53 }
version(CRuntime_Microsoft)54 else version (CRuntime_Microsoft)
55 {
56     extern (C)
57     {
58         ref int _errno();
59         alias errno = _errno;
60     }
61 }
version(CRuntime_Glibc)62 else version (CRuntime_Glibc)
63 {
64     extern (C)
65     {
66         ref int __errno_location();
67         alias errno = __errno_location;
68     }
69 }
version(CRuntime_Musl)70 else version (CRuntime_Musl)
71 {
72     extern (C)
73     {
74         ref int __errno_location();
75         alias errno = __errno_location;
76     }
77 }
version(OpenBSD)78 else version (OpenBSD)
79 {
80     // https://github.com/openbsd/src/blob/master/include/errno.h
81     extern (C)
82     {
83         ref int __errno();
84         alias errno = __errno;
85     }
86 }
version(NetBSD)87 else version (NetBSD)
88 {
89     // https://github.com/NetBSD/src/blob/trunk/include/errno.h
90     extern (C)
91     {
92         ref int __errno();
93         alias errno = __errno;
94     }
95 }
version(FreeBSD)96 else version (FreeBSD)
97 {
98     extern (C)
99     {
100         ref int __error();
101         alias errno = __error;
102     }
103 }
version(DragonFlyBSD)104 else version (DragonFlyBSD)
105 {
106     extern (C)
107     {
108         pragma(mangle, "errno") int __errno;
109         ref int __error() {
110             return __errno;
111         }
112         alias errno = __error;
113     }
114 }
version(CRuntime_Bionic)115 else version (CRuntime_Bionic)
116 {
117     extern (C)
118     {
119         ref int __errno();
120         alias errno = __errno;
121     }
122 }
version(CRuntime_UClibc)123 else version (CRuntime_UClibc)
124 {
125     extern (C)
126     {
127         ref int __errno_location();
128         alias errno = __errno_location;
129     }
130 }
version(Darwin)131 else version (Darwin)
132 {
133     extern (C)
134     {
135         ref int __error();
136         alias errno = __error;
137     }
138 }
version(Solaris)139 else version (Solaris)
140 {
141     extern (C)
142     {
143         ref int ___errno();
144         alias errno = ___errno;
145     }
146 }
147 else
148 {
149     ///
errno()150     @property int errno() { return getErrno(); }
151     ///
errno(int n)152     @property int errno(int n) { return setErrno(n); }
153 
154     extern (C)
155     {
156         private int getErrno();      // for internal use
157         private int setErrno(int);   // for internal use
158     }
159 }
160 
161 extern (C):
162 
163 
version(Windows)164 version (Windows)
165 {
166     enum EPERM              = 1;        /// Operation not permitted
167     enum ENOENT             = 2;        /// No such file or directory
168     enum ESRCH              = 3;        /// No such process
169     enum EINTR              = 4;        /// Interrupted system call
170     enum EIO                = 5;        /// I/O error
171     enum ENXIO              = 6;        /// No such device or address
172     enum E2BIG              = 7;        /// Argument list too long
173     enum ENOEXEC            = 8;        /// Exec format error
174     enum EBADF              = 9;        /// Bad file number
175     enum ECHILD             = 10;       /// No child processes
176     enum EAGAIN             = 11;       /// Try again
177     enum ENOMEM             = 12;       /// Out of memory
178     enum EACCES             = 13;       /// Permission denied
179     enum EFAULT             = 14;       /// Bad address
180     enum EBUSY              = 16;       /// Device or resource busy
181     enum EEXIST             = 17;       /// File exists
182     enum EXDEV              = 18;       /// Cross-device link
183     enum ENODEV             = 19;       /// No such device
184     enum ENOTDIR            = 20;       /// Not a directory
185     enum EISDIR             = 21;       /// Is a directory
186     enum EINVAL             = 22;       /// Invalid argument
187     enum ENFILE             = 23;       /// File table overflow
188     enum EMFILE             = 24;       /// Too many open files
189     enum ENOTTY             = 25;       /// Not a typewriter
190     enum EFBIG              = 27;       /// File too large
191     enum ENOSPC             = 28;       /// No space left on device
192     enum ESPIPE             = 29;       /// Illegal seek
193     enum EROFS              = 30;       /// Read-only file system
194     enum EMLINK             = 31;       /// Too many links
195     enum EPIPE              = 32;       /// Broken pipe
196     enum EDOM               = 33;       /// Math argument out of domain of func
197     enum ERANGE             = 34;       /// Math result not representable
198     enum EDEADLK            = 36;       /// Resource deadlock would occur
199     enum ENAMETOOLONG       = 38;       /// File name too long
200     enum ENOLCK             = 39;       /// No record locks available
201     enum ENOSYS             = 40;       /// Function not implemented
202     enum ENOTEMPTY          = 41;       /// Directory not empty
203     enum EILSEQ             = 42;       /// Illegal byte sequence
204     enum EDEADLOCK          = EDEADLK;  /// Resource deadlock would occur
205 }
version(linux)206 else version (linux)
207 {
208     enum EPERM              = 1;  ///
209     enum ENOENT             = 2;  ///
210     enum ESRCH              = 3;  ///
211     enum EINTR              = 4;  ///
212     enum EIO                = 5;  ///
213     enum ENXIO              = 6;  ///
214     enum E2BIG              = 7;  ///
215     enum ENOEXEC            = 8;  ///
216     enum EBADF              = 9;  ///
217     enum ECHILD             = 10; ///
218     enum EAGAIN             = 11; ///
219     enum ENOMEM             = 12; ///
220     enum EACCES             = 13; ///
221     enum EFAULT             = 14; ///
222     enum ENOTBLK            = 15; ///
223     enum EBUSY              = 16; ///
224     enum EEXIST             = 17; ///
225     enum EXDEV              = 18; ///
226     enum ENODEV             = 19; ///
227     enum ENOTDIR            = 20; ///
228     enum EISDIR             = 21; ///
229     enum EINVAL             = 22; ///
230     enum ENFILE             = 23; ///
231     enum EMFILE             = 24; ///
232     enum ENOTTY             = 25; ///
233     enum ETXTBSY            = 26; ///
234     enum EFBIG              = 27; ///
235     enum ENOSPC             = 28; ///
236     enum ESPIPE             = 29; ///
237     enum EROFS              = 30; ///
238     enum EMLINK             = 31; ///
239     enum EPIPE              = 32; ///
240     enum EDOM               = 33; ///
241     enum ERANGE             = 34; ///
242 
243     version (X86_Any)
244     {
245         enum EDEADLK            = 35;         ///
246         enum ENAMETOOLONG       = 36;         ///
247         enum ENOLCK             = 37;         ///
248         enum ENOSYS             = 38;         ///
249         enum ENOTEMPTY          = 39;         ///
250         enum ELOOP              = 40;         ///
251         enum EWOULDBLOCK        = EAGAIN;     ///
252         enum ENOMSG             = 42;         ///
253         enum EIDRM              = 43;         ///
254         enum ECHRNG             = 44;         ///
255         enum EL2NSYNC           = 45;         ///
256         enum EL3HLT             = 46;         ///
257         enum EL3RST             = 47;         ///
258         enum ELNRNG             = 48;         ///
259         enum EUNATCH            = 49;         ///
260         enum ENOCSI             = 50;         ///
261         enum EL2HLT             = 51;         ///
262         enum EBADE              = 52;         ///
263         enum EBADR              = 53;         ///
264         enum EXFULL             = 54;         ///
265         enum ENOANO             = 55;         ///
266         enum EBADRQC            = 56;         ///
267         enum EBADSLT            = 57;         ///
268         enum EDEADLOCK          = EDEADLK;    ///
269         enum EBFONT             = 59;         ///
270         enum ENOSTR             = 60;         ///
271         enum ENODATA            = 61;         ///
272         enum ETIME              = 62;         ///
273         enum ENOSR              = 63;         ///
274         enum ENONET             = 64;         ///
275         enum ENOPKG             = 65;         ///
276         enum EREMOTE            = 66;         ///
277         enum ENOLINK            = 67;         ///
278         enum EADV               = 68;         ///
279         enum ESRMNT             = 69;         ///
280         enum ECOMM              = 70;         ///
281         enum EPROTO             = 71;         ///
282         enum EMULTIHOP          = 72;         ///
283         enum EDOTDOT            = 73;         ///
284         enum EBADMSG            = 74;         ///
285         enum EOVERFLOW          = 75;         ///
286         enum ENOTUNIQ           = 76;         ///
287         enum EBADFD             = 77;         ///
288         enum EREMCHG            = 78;         ///
289         enum ELIBACC            = 79;         ///
290         enum ELIBBAD            = 80;         ///
291         enum ELIBSCN            = 81;         ///
292         enum ELIBMAX            = 82;         ///
293         enum ELIBEXEC           = 83;         ///
294         enum EILSEQ             = 84;         ///
295         enum ERESTART           = 85;         ///
296         enum ESTRPIPE           = 86;         ///
297         enum EUSERS             = 87;         ///
298         enum ENOTSOCK           = 88;         ///
299         enum EDESTADDRREQ       = 89;         ///
300         enum EMSGSIZE           = 90;         ///
301         enum EPROTOTYPE         = 91;         ///
302         enum ENOPROTOOPT        = 92;         ///
303         enum EPROTONOSUPPORT    = 93;         ///
304         enum ESOCKTNOSUPPORT    = 94;         ///
305         enum EOPNOTSUPP         = 95;         ///
306         enum ENOTSUP            = EOPNOTSUPP; ///
307         enum EPFNOSUPPORT       = 96;         ///
308         enum EAFNOSUPPORT       = 97;         ///
309         enum EADDRINUSE         = 98;         ///
310         enum EADDRNOTAVAIL      = 99;         ///
311         enum ENETDOWN           = 100;        ///
312         enum ENETUNREACH        = 101;        ///
313         enum ENETRESET          = 102;        ///
314         enum ECONNABORTED       = 103;        ///
315         enum ECONNRESET         = 104;        ///
316         enum ENOBUFS            = 105;        ///
317         enum EISCONN            = 106;        ///
318         enum ENOTCONN           = 107;        ///
319         enum ESHUTDOWN          = 108;        ///
320         enum ETOOMANYREFS       = 109;        ///
321         enum ETIMEDOUT          = 110;        ///
322         enum ECONNREFUSED       = 111;        ///
323         enum EHOSTDOWN          = 112;        ///
324         enum EHOSTUNREACH       = 113;        ///
325         enum EALREADY           = 114;        ///
326         enum EINPROGRESS        = 115;        ///
327         enum ESTALE             = 116;        ///
328         enum EUCLEAN            = 117;        ///
329         enum ENOTNAM            = 118;        ///
330         enum ENAVAIL            = 119;        ///
331         enum EISNAM             = 120;        ///
332         enum EREMOTEIO          = 121;        ///
333         enum EDQUOT             = 122;        ///
334         enum ENOMEDIUM          = 123;        ///
335         enum EMEDIUMTYPE        = 124;        ///
336         enum ECANCELED          = 125;        ///
337         enum ENOKEY             = 126;        ///
338         enum EKEYEXPIRED        = 127;        ///
339         enum EKEYREVOKED        = 128;        ///
340         enum EKEYREJECTED       = 129;        ///
341         enum EOWNERDEAD         = 130;        ///
342         enum ENOTRECOVERABLE    = 131;        ///
343         enum ERFKILL            = 132;        ///
344         enum EHWPOISON          = 133;        ///
345     }
346     else version (ARM_Any)
347     {
348         enum EDEADLK            = 35;         ///
349         enum ENAMETOOLONG       = 36;         ///
350         enum ENOLCK             = 37;         ///
351         enum ENOSYS             = 38;         ///
352         enum ENOTEMPTY          = 39;         ///
353         enum ELOOP              = 40;         ///
354         enum EWOULDBLOCK        = EAGAIN;     ///
355         enum ENOMSG             = 42;         ///
356         enum EIDRM              = 43;         ///
357         enum ECHRNG             = 44;         ///
358         enum EL2NSYNC           = 45;         ///
359         enum EL3HLT             = 46;         ///
360         enum EL3RST             = 47;         ///
361         enum ELNRNG             = 48;         ///
362         enum EUNATCH            = 49;         ///
363         enum ENOCSI             = 50;         ///
364         enum EL2HLT             = 51;         ///
365         enum EBADE              = 52;         ///
366         enum EBADR              = 53;         ///
367         enum EXFULL             = 54;         ///
368         enum ENOANO             = 55;         ///
369         enum EBADRQC            = 56;         ///
370         enum EBADSLT            = 57;         ///
371         enum EDEADLOCK          = EDEADLK;    ///
372         enum EBFONT             = 59;         ///
373         enum ENOSTR             = 60;         ///
374         enum ENODATA            = 61;         ///
375         enum ETIME              = 62;         ///
376         enum ENOSR              = 63;         ///
377         enum ENONET             = 64;         ///
378         enum ENOPKG             = 65;         ///
379         enum EREMOTE            = 66;         ///
380         enum ENOLINK            = 67;         ///
381         enum EADV               = 68;         ///
382         enum ESRMNT             = 69;         ///
383         enum ECOMM              = 70;         ///
384         enum EPROTO             = 71;         ///
385         enum EMULTIHOP          = 72;         ///
386         enum EDOTDOT            = 73;         ///
387         enum EBADMSG            = 74;         ///
388         enum EOVERFLOW          = 75;         ///
389         enum ENOTUNIQ           = 76;         ///
390         enum EBADFD             = 77;         ///
391         enum EREMCHG            = 78;         ///
392         enum ELIBACC            = 79;         ///
393         enum ELIBBAD            = 80;         ///
394         enum ELIBSCN            = 81;         ///
395         enum ELIBMAX            = 82;         ///
396         enum ELIBEXEC           = 83;         ///
397         enum EILSEQ             = 84;         ///
398         enum ERESTART           = 85;         ///
399         enum ESTRPIPE           = 86;         ///
400         enum EUSERS             = 87;         ///
401         enum ENOTSOCK           = 88;         ///
402         enum EDESTADDRREQ       = 89;         ///
403         enum EMSGSIZE           = 90;         ///
404         enum EPROTOTYPE         = 91;         ///
405         enum ENOPROTOOPT        = 92;         ///
406         enum EPROTONOSUPPORT    = 93;         ///
407         enum ESOCKTNOSUPPORT    = 94;         ///
408         enum EOPNOTSUPP         = 95;         ///
409         enum ENOTSUP            = EOPNOTSUPP; ///
410         enum EPFNOSUPPORT       = 96;         ///
411         enum EAFNOSUPPORT       = 97;         ///
412         enum EADDRINUSE         = 98;         ///
413         enum EADDRNOTAVAIL      = 99;         ///
414         enum ENETDOWN           = 100;        ///
415         enum ENETUNREACH        = 101;        ///
416         enum ENETRESET          = 102;        ///
417         enum ECONNABORTED       = 103;        ///
418         enum ECONNRESET         = 104;        ///
419         enum ENOBUFS            = 105;        ///
420         enum EISCONN            = 106;        ///
421         enum ENOTCONN           = 107;        ///
422         enum ESHUTDOWN          = 108;        ///
423         enum ETOOMANYREFS       = 109;        ///
424         enum ETIMEDOUT          = 110;        ///
425         enum ECONNREFUSED       = 111;        ///
426         enum EHOSTDOWN          = 112;        ///
427         enum EHOSTUNREACH       = 113;        ///
428         enum EALREADY           = 114;        ///
429         enum EINPROGRESS        = 115;        ///
430         enum ESTALE             = 116;        ///
431         enum EUCLEAN            = 117;        ///
432         enum ENOTNAM            = 118;        ///
433         enum ENAVAIL            = 119;        ///
434         enum EISNAM             = 120;        ///
435         enum EREMOTEIO          = 121;        ///
436         enum EDQUOT             = 122;        ///
437         enum ENOMEDIUM          = 123;        ///
438         enum EMEDIUMTYPE        = 124;        ///
439         enum ECANCELED          = 125;        ///
440         enum ENOKEY             = 126;        ///
441         enum EKEYEXPIRED        = 127;        ///
442         enum EKEYREVOKED        = 128;        ///
443         enum EKEYREJECTED       = 129;        ///
444         enum EOWNERDEAD         = 130;        ///
445         enum ENOTRECOVERABLE    = 131;        ///
446         enum ERFKILL            = 132;        ///
447         enum EHWPOISON          = 133;        ///
448     }
449     else version (HPPA_Any)
450     {
451         enum ENOMSG             = 35;         ///
452         enum EIDRM              = 36;         ///
453         enum ECHRNG             = 37;         ///
454         enum EL2NSYNC           = 38;         ///
455         enum EL3HLT             = 39;         ///
456         enum EL3RST             = 40;         ///
457         enum ELNRNG             = 41;         ///
458         enum EUNATCH            = 42;         ///
459         enum ENOCSI             = 43;         ///
460         enum EL2HLT             = 44;         ///
461         enum EDEADLK            = 45;         ///
462         enum EDEADLOCK          = EDEADLK;    ///
463         enum ENOLCK             = 46;         ///
464         enum EILSEQ             = 47;         ///
465         enum ENONET             = 50;         ///
466         enum ENODATA            = 51;         ///
467         enum ETIME              = 52;         ///
468         enum ENOSR              = 53;         ///
469         enum ENOSTR             = 54;         ///
470         enum ENOPKG             = 55;         ///
471         enum ENOLINK            = 57;         ///
472         enum EADV               = 58;         ///
473         enum ESRMNT             = 59;         ///
474         enum ECOMM              = 60;         ///
475         enum EPROTO             = 61;         ///
476         enum EMULTIHOP          = 64;         ///
477         enum EDOTDOT            = 66;         ///
478         enum EBADMSG            = 67;         ///
479         enum EUSERS             = 68;         ///
480         enum EDQUOT             = 69;         ///
481         enum ESTALE             = 70;         ///
482         enum EREMOTE            = 71;         ///
483         enum EOVERFLOW          = 72;         ///
484         enum EBADE              = 160;        ///
485         enum EBADR              = 161;        ///
486         enum EXFULL             = 162;        ///
487         enum ENOANO             = 163;        ///
488         enum EBADRQC            = 164;        ///
489         enum EBADSLT            = 165;        ///
490         enum EBFONT             = 166;        ///
491         enum ENOTUNIQ           = 167;        ///
492         enum EBADFD             = 168;        ///
493         enum EREMCHG            = 169;        ///
494         enum ELIBACC            = 170;        ///
495         enum ELIBBAD            = 171;        ///
496         enum ELIBSCN            = 172;        ///
497         enum ELIBMAX            = 173;        ///
498         enum ELIBEXEC           = 174;        ///
499         enum ERESTART           = 175;        ///
500         enum ESTRPIPE           = 176;        ///
501         enum EUCLEAN            = 177;        ///
502         enum ENOTNAM            = 178;        ///
503         enum ENAVAIL            = 179;        ///
504         enum EISNAM             = 180;        ///
505         enum EREMOTEIO          = 181;        ///
506         enum ENOMEDIUM          = 182;        ///
507         enum EMEDIUMTYPE        = 183;        ///
508         enum ENOKEY             = 184;        ///
509         enum EKEYEXPIRED        = 185;        ///
510         enum EKEYREVOKED        = 186;        ///
511         enum EKEYREJECTED       = 187;        ///
512         enum ENOSYM             = 215;        ///
513         enum ENOTSOCK           = 216;        ///
514         enum EDESTADDRREQ       = 217;        ///
515         enum EMSGSIZE           = 218;        ///
516         enum EPROTOTYPE         = 219;        ///
517         enum ENOPROTOOPT        = 220;        ///
518         enum EPROTONOSUPPORT    = 221;        ///
519         enum ESOCKTNOSUPPORT    = 221;        ///
520         enum EOPNOTSUPP         = 223;        ///
521         enum EPFNOSUPPORT       = 224;        ///
522         enum EAFNOSUPPORT       = 225;        ///
523         enum EADDRINUSE         = 226;        ///
524         enum EADDRNOTAVAIL      = 227;        ///
525         enum ENETDOWN           = 228;        ///
526         enum ENETUNREACH        = 229;        ///
527         enum ENETRESET          = 230;        ///
528         enum ECONNABORTED       = 231;        ///
529         enum ECONNRESET         = 232;        ///
530         enum ENOBUFS            = 233;        ///
531         enum EISCONN            = 234;        ///
532         enum ENOTCONN           = 235;        ///
533         enum ESHUTDOWN          = 236;        ///
534         enum ETOOMANYREFS       = 237;        ///
535         enum ETIMEDOUT          = 238;        ///
536         enum ECONNREFUSED       = 239;        ///
537         enum EREFUSED           = ECONNREFUSED; ///
538         enum EREMOTERELEASE     = 240;        ///
539         enum EHOSTDOWN          = 241;        ///
540         enum EHOSTUNREACH       = 242;        ///
541         enum EALREADY           = 244;        ///
542         enum EINPROGRESS        = 245;        ///
543         enum EWOULDBLOCK        = EAGAIN;     ///
544         enum ENOTEMPTY          = 247;        ///
545         enum ENAMETOOLONG       = 248;        ///
546         enum ELOOP              = 249;        ///
547         enum ENOSYS             = 251;        ///
548         enum ECANCELLED         = 253;        ///
549         enum ECANCELED          = ECANCELLED;  ///
550         enum EOWNERDEAD         = 254;        ///
551         enum ENOTRECOVERABLE    = 255;        ///
552         enum ERFKILL            = 256;        ///
553         enum EHWPOISON          = 257;        ///
554     }
555     else version (MIPS_Any)
556     {
557         enum ENOMSG             = 35;         ///
558         enum EIDRM              = 36;         ///
559         enum ECHRNG             = 37;         ///
560         enum EL2NSYNC           = 38;         ///
561         enum EL3HLT             = 39;         ///
562         enum EL3RST             = 40;         ///
563         enum ELNRNG             = 41;         ///
564         enum EUNATCH            = 42;         ///
565         enum ENOCSI             = 43;         ///
566         enum EL2HLT             = 44;         ///
567         enum EDEADLK            = 45;         ///
568         enum ENOLCK             = 46;         ///
569         enum EBADE              = 50;         ///
570         enum EBADR              = 51;         ///
571         enum EXFULL             = 52;         ///
572         enum ENOANO             = 53;         ///
573         enum EBADRQC            = 54;         ///
574         enum EBADSLT            = 55;         ///
575         enum EDEADLOCK          = 56;         ///
576         enum EBFONT             = 59;         ///
577         enum ENOSTR             = 60;         ///
578         enum ENODATA            = 61;         ///
579         enum ETIME              = 62;         ///
580         enum ENOSR              = 63;         ///
581         enum ENONET             = 64;         ///
582         enum ENOPKG             = 65;         ///
583         enum EREMOTE            = 66;         ///
584         enum ENOLINK            = 67;         ///
585         enum EADV               = 68;         ///
586         enum ESRMNT             = 69;         ///
587         enum ECOMM              = 70;         ///
588         enum EPROTO             = 71;         ///
589         enum EDOTDOT            = 73;         ///
590         enum EMULTIHOP          = 74;         ///
591         enum EBADMSG            = 77;         ///
592         enum ENAMETOOLONG       = 78;         ///
593         enum EOVERFLOW          = 79;         ///
594         enum ENOTUNIQ           = 80;         ///
595         enum EBADFD             = 81;         ///
596         enum EREMCHG            = 82;         ///
597         enum ELIBACC            = 83;         ///
598         enum ELIBBAD            = 84;         ///
599         enum ELIBSCN            = 85;         ///
600         enum ELIBMAX            = 86;         ///
601         enum ELIBEXEC           = 87;         ///
602         enum EILSEQ             = 88;         ///
603         enum ENOSYS             = 89;         ///
604         enum ELOOP              = 90;         ///
605         enum ERESTART           = 91;         ///
606         enum ESTRPIPE           = 92;         ///
607         enum ENOTEMPTY          = 93;         ///
608         enum EUSERS             = 94;         ///
609         enum ENOTSOCK           = 95;         ///
610         enum EDESTADDRREQ       = 96;         ///
611         enum EMSGSIZE           = 97;         ///
612         enum EPROTOTYPE         = 98;         ///
613         enum ENOPROTOOPT        = 99;         ///
614         enum EPROTONOSUPPORT    = 120;        ///
615         enum ESOCKTNOSUPPORT    = 121;        ///
616         enum EOPNOTSUPP         = 122;        ///
617         enum ENOTSUP            = EOPNOTSUPP; ///
618         enum EPFNOSUPPORT       = 123;        ///
619         enum EAFNOSUPPORT       = 124;        ///
620         enum EADDRINUSE         = 125;        ///
621         enum EADDRNOTAVAIL      = 126;        ///
622         enum ENETDOWN           = 127;        ///
623         enum ENETUNREACH        = 128;        ///
624         enum ENETRESET          = 129;        ///
625         enum ECONNABORTED       = 130;        ///
626         enum ECONNRESET         = 131;        ///
627         enum ENOBUFS            = 132;        ///
628         enum EISCONN            = 133;        ///
629         enum ENOTCONN           = 134;        ///
630         enum EUCLEAN            = 135;        ///
631         enum ENOTNAM            = 137;        ///
632         enum ENAVAIL            = 138;        ///
633         enum EISNAM             = 139;        ///
634         enum EREMOTEIO          = 140;        ///
635         enum EINIT              = 141;        ///
636         enum EREMDEV            = 142;        ///
637         enum ESHUTDOWN          = 143;        ///
638         enum ETOOMANYREFS       = 144;        ///
639         enum ETIMEDOUT          = 145;        ///
640         enum ECONNREFUSED       = 146;        ///
641         enum EHOSTDOWN          = 147;        ///
642         enum EHOSTUNREACH       = 148;        ///
643         enum EWOULDBLOCK        = EAGAIN;     ///
644         enum EALREADY           = 149;        ///
645         enum EINPROGRESS        = 150;        ///
646         enum ESTALE             = 151;        ///
647         enum ECANCELED          = 158;        ///
648         enum ENOMEDIUM          = 159;        ///
649         enum EMEDIUMTYPE        = 160;        ///
650         enum ENOKEY             = 161;        ///
651         enum EKEYEXPIRED        = 162;        ///
652         enum EKEYREVOKED        = 163;        ///
653         enum EKEYREJECTED       = 164;        ///
654         enum EOWNERDEAD         = 165;        ///
655         enum ENOTRECOVERABLE    = 166;        ///
656         enum ERFKILL            = 167;        ///
657         enum EHWPOISON          = 168;        ///
658         enum EDQUOT             = 1133;       ///
659     }
660     else version (PPC_Any)
661     {
662         enum EDEADLK            = 35;         ///
663         enum ENAMETOOLONG       = 36;         ///
664         enum ENOLCK             = 37;         ///
665         enum ENOSYS             = 38;         ///
666         enum ENOTEMPTY          = 39;         ///
667         enum ELOOP              = 40;         ///
668         enum EWOULDBLOCK        = EAGAIN;     ///
669         enum ENOMSG             = 42;         ///
670         enum EIDRM              = 43;         ///
671         enum ECHRNG             = 44;         ///
672         enum EL2NSYNC           = 45;         ///
673         enum EL3HLT             = 46;         ///
674         enum EL3RST             = 47;         ///
675         enum ELNRNG             = 48;         ///
676         enum EUNATCH            = 49;         ///
677         enum ENOCSI             = 50;         ///
678         enum EL2HLT             = 51;         ///
679         enum EBADE              = 52;         ///
680         enum EBADR              = 53;         ///
681         enum EXFULL             = 54;         ///
682         enum ENOANO             = 55;         ///
683         enum EBADRQC            = 56;         ///
684         enum EBADSLT            = 57;         ///
685         enum EDEADLOCK          = 58;         ///
686         enum EBFONT             = 59;         ///
687         enum ENOSTR             = 60;         ///
688         enum ENODATA            = 61;         ///
689         enum ETIME              = 62;         ///
690         enum ENOSR              = 63;         ///
691         enum ENONET             = 64;         ///
692         enum ENOPKG             = 65;         ///
693         enum EREMOTE            = 66;         ///
694         enum ENOLINK            = 67;         ///
695         enum EADV               = 68;         ///
696         enum ESRMNT             = 69;         ///
697         enum ECOMM              = 70;         ///
698         enum EPROTO             = 71;         ///
699         enum EMULTIHOP          = 72;         ///
700         enum EDOTDOT            = 73;         ///
701         enum EBADMSG            = 74;         ///
702         enum EOVERFLOW          = 75;         ///
703         enum ENOTUNIQ           = 76;         ///
704         enum EBADFD             = 77;         ///
705         enum EREMCHG            = 78;         ///
706         enum ELIBACC            = 79;         ///
707         enum ELIBBAD            = 80;         ///
708         enum ELIBSCN            = 81;         ///
709         enum ELIBMAX            = 82;         ///
710         enum ELIBEXEC           = 83;         ///
711         enum EILSEQ             = 84;         ///
712         enum ERESTART           = 85;         ///
713         enum ESTRPIPE           = 86;         ///
714         enum EUSERS             = 87;         ///
715         enum ENOTSOCK           = 88;         ///
716         enum EDESTADDRREQ       = 89;         ///
717         enum EMSGSIZE           = 90;         ///
718         enum EPROTOTYPE         = 91;         ///
719         enum ENOPROTOOPT        = 92;         ///
720         enum EPROTONOSUPPORT    = 93;         ///
721         enum ESOCKTNOSUPPORT    = 94;         ///
722         enum EOPNOTSUPP         = 95;         ///
723         enum ENOTSUP            = EOPNOTSUPP; ///
724         enum EPFNOSUPPORT       = 96;         ///
725         enum EAFNOSUPPORT       = 97;         ///
726         enum EADDRINUSE         = 98;         ///
727         enum EADDRNOTAVAIL      = 99;         ///
728         enum ENETDOWN           = 100;        ///
729         enum ENETUNREACH        = 101;        ///
730         enum ENETRESET          = 102;        ///
731         enum ECONNABORTED       = 103;        ///
732         enum ECONNRESET         = 104;        ///
733         enum ENOBUFS            = 105;        ///
734         enum EISCONN            = 106;        ///
735         enum ENOTCONN           = 107;        ///
736         enum ESHUTDOWN          = 108;        ///
737         enum ETOOMANYREFS       = 109;        ///
738         enum ETIMEDOUT          = 110;        ///
739         enum ECONNREFUSED       = 111;        ///
740         enum EHOSTDOWN          = 112;        ///
741         enum EHOSTUNREACH       = 113;        ///
742         enum EALREADY           = 114;        ///
743         enum EINPROGRESS        = 115;        ///
744         enum ESTALE             = 116;        ///
745         enum EUCLEAN            = 117;        ///
746         enum ENOTNAM            = 118;        ///
747         enum ENAVAIL            = 119;        ///
748         enum EISNAM             = 120;        ///
749         enum EREMOTEIO          = 121;        ///
750         enum EDQUOT             = 122;        ///
751         enum ENOMEDIUM          = 123;        ///
752         enum EMEDIUMTYPE        = 124;        ///
753         enum ECANCELED          = 125;        ///
754         enum ENOKEY             = 126;        ///
755         enum EKEYEXPIRED        = 127;        ///
756         enum EKEYREVOKED        = 128;        ///
757         enum EKEYREJECTED       = 129;        ///
758         enum EOWNERDEAD         = 130;        ///
759         enum ENOTRECOVERABLE    = 131;        ///
760         enum ERFKILL            = 132;        ///
761         enum EHWPOISON          = 133;        ///
762     }
763     else version (RISCV_Any)
764     {
765         enum EDEADLK            = 35;         ///
766         enum ENAMETOOLONG       = 36;         ///
767         enum ENOLCK             = 37;         ///
768         enum ENOSYS             = 38;         ///
769         enum ENOTEMPTY          = 39;         ///
770         enum ELOOP              = 40;         ///
771         enum EWOULDBLOCK        = EAGAIN;     ///
772         enum ENOMSG             = 42;         ///
773         enum EIDRM              = 43;         ///
774         enum ECHRNG             = 44;         ///
775         enum EL2NSYNC           = 45;         ///
776         enum EL3HLT             = 46;         ///
777         enum EL3RST             = 47;         ///
778         enum ELNRNG             = 48;         ///
779         enum EUNATCH            = 49;         ///
780         enum ENOCSI             = 50;         ///
781         enum EL2HLT             = 51;         ///
782         enum EBADE              = 52;         ///
783         enum EBADR              = 53;         ///
784         enum EXFULL             = 54;         ///
785         enum ENOANO             = 55;         ///
786         enum EBADRQC            = 56;         ///
787         enum EBADSLT            = 57;         ///
788         enum EDEADLOCK          = EDEADLK;    ///
789         enum EBFONT             = 59;         ///
790         enum ENOSTR             = 60;         ///
791         enum ENODATA            = 61;         ///
792         enum ETIME              = 62;         ///
793         enum ENOSR              = 63;         ///
794         enum ENONET             = 64;         ///
795         enum ENOPKG             = 65;         ///
796         enum EREMOTE            = 66;         ///
797         enum ENOLINK            = 67;         ///
798         enum EADV               = 68;         ///
799         enum ESRMNT             = 69;         ///
800         enum ECOMM              = 70;         ///
801         enum EPROTO             = 71;         ///
802         enum EMULTIHOP          = 72;         ///
803         enum EDOTDOT            = 73;         ///
804         enum EBADMSG            = 74;         ///
805         enum EOVERFLOW          = 75;         ///
806         enum ENOTUNIQ           = 76;         ///
807         enum EBADFD             = 77;         ///
808         enum EREMCHG            = 78;         ///
809         enum ELIBACC            = 79;         ///
810         enum ELIBBAD            = 80;         ///
811         enum ELIBSCN            = 81;         ///
812         enum ELIBMAX            = 82;         ///
813         enum ELIBEXEC           = 83;         ///
814         enum EILSEQ             = 84;         ///
815         enum ERESTART           = 85;         ///
816         enum ESTRPIPE           = 86;         ///
817         enum EUSERS             = 87;         ///
818         enum ENOTSOCK           = 88;         ///
819         enum EDESTADDRREQ       = 89;         ///
820         enum EMSGSIZE           = 90;         ///
821         enum EPROTOTYPE         = 91;         ///
822         enum ENOPROTOOPT        = 92;         ///
823         enum EPROTONOSUPPORT    = 93;         ///
824         enum ESOCKTNOSUPPORT    = 94;         ///
825         enum EOPNOTSUPP         = 95;         ///
826         enum EPFNOSUPPORT       = 96;         ///
827         enum EAFNOSUPPORT       = 97;         ///
828         enum EADDRINUSE         = 98;         ///
829         enum EADDRNOTAVAIL      = 99;         ///
830         enum ENETDOWN           = 100;        ///
831         enum ENETUNREACH        = 101;        ///
832         enum ENETRESET          = 102;        ///
833         enum ECONNABORTED       = 103;        ///
834         enum ECONNRESET         = 104;        ///
835         enum ENOBUFS            = 105;        ///
836         enum EISCONN            = 106;        ///
837         enum ENOTCONN           = 107;        ///
838         enum ESHUTDOWN          = 108;        ///
839         enum ETOOMANYREFS       = 109;        ///
840         enum ETIMEDOUT          = 110;        ///
841         enum ECONNREFUSED       = 111;        ///
842         enum EHOSTDOWN          = 112;        ///
843         enum EHOSTUNREACH       = 113;        ///
844         enum EALREADY           = 114;        ///
845         enum EINPROGRESS        = 115;        ///
846         enum ESTALE             = 116;        ///
847         enum EUCLEAN            = 117;        ///
848         enum ENOTNAM            = 118;        ///
849         enum ENAVAIL            = 119;        ///
850         enum EISNAM             = 120;        ///
851         enum EREMOTEIO          = 121;        ///
852         enum EDQUOT             = 122;        ///
853         enum ENOMEDIUM          = 123;        ///
854         enum EMEDIUMTYPE        = 124;        ///
855         enum ECANCELED          = 125;        ///
856         enum ENOKEY             = 126;        ///
857         enum EKEYEXPIRED        = 127;        ///
858         enum EKEYREVOKED        = 128;        ///
859         enum EKEYREJECTED       = 129;        ///
860         enum EOWNERDEAD         = 130;        ///
861         enum ENOTRECOVERABLE    = 131;        ///
862         enum ERFKILL            = 132;        ///
863         enum EHWPOISON          = 133;        ///
864     }
865     else version (SPARC_Any)
866     {
867         enum EWOULDBLOCK        = EAGAIN;     ///
868         enum EINPROGRESS        = 36;         ///
869         enum EALREADY           = 37;         ///
870         enum ENOTSOCK           = 38;         ///
871         enum EDESTADDRREQ       = 39;         ///
872         enum EMSGSIZE           = 40;         ///
873         enum EPROTOTYPE         = 41;         ///
874         enum ENOPROTOOPT        = 42;         ///
875         enum EPROTONOSUPPORT    = 43;         ///
876         enum ESOCKTNOSUPPORT    = 44;         ///
877         enum EOPNOTSUPP         = 45;         ///
878         enum ENOTSUP            = EOPNOTSUPP; ///
879         enum EPFNOSUPPORT       = 46;         ///
880         enum EAFNOSUPPORT       = 47;         ///
881         enum EADDRINUSE         = 48;         ///
882         enum EADDRNOTAVAIL      = 49;         ///
883         enum ENETDOWN           = 50;         ///
884         enum ENETUNREACH        = 51;         ///
885         enum ENETRESET          = 52;         ///
886         enum ECONNABORTED       = 53;         ///
887         enum ECONNRESET         = 54;         ///
888         enum ENOBUFS            = 55;         ///
889         enum EISCONN            = 56;         ///
890         enum ENOTCONN           = 57;         ///
891         enum ESHUTDOWN          = 58;         ///
892         enum ETOOMANYREFS       = 59;         ///
893         enum ETIMEDOUT          = 60;         ///
894         enum ECONNREFUSED       = 61;         ///
895         enum ELOOP              = 62;         ///
896         enum ENAMETOOLONG       = 63;         ///
897         enum EHOSTDOWN          = 64;         ///
898         enum EHOSTUNREACH       = 65;         ///
899         enum ENOTEMPTY          = 66;         ///
900         enum EPROCLIM           = 67;         ///
901         enum EUSERS             = 68;         ///
902         enum EDQUOT             = 69;         ///
903         enum ESTALE             = 70;         ///
904         enum EREMOTE            = 71;         ///
905         enum ENOSTR             = 72;         ///
906         enum ETIME              = 73;         ///
907         enum ENOSR              = 74;         ///
908         enum ENOMSG             = 75;         ///
909         enum EBADMSG            = 76;         ///
910         enum EIDRM              = 77;         ///
911         enum EDEADLK            = 78;         ///
912         enum ENOLCK             = 79;         ///
913         enum ENONET             = 80;         ///
914         enum ERREMOTE           = 81;         ///
915         enum ENOLINK            = 82;         ///
916         enum EADV               = 83;         ///
917         enum ESRMNT             = 84;         ///
918         enum ECOMM              = 85;         ///
919         enum EPROTO             = 86;         ///
920         enum EMULTIHOP          = 87;         ///
921         enum EDOTDOT            = 88;         ///
922         enum EREMCHG            = 89;         ///
923         enum ENOSYS             = 90;         ///
924         enum ESTRPIPE           = 91;         ///
925         enum EOVERFLOW          = 92;         ///
926         enum EBADFD             = 93;         ///
927         enum ECHRNG             = 94;         ///
928         enum EL2NSYNC           = 95;         ///
929         enum EL3HLT             = 96;         ///
930         enum EL3RST             = 97;         ///
931         enum ELNRNG             = 98;         ///
932         enum EUNATCH            = 99;         ///
933         enum ENOCSI             = 100;        ///
934         enum EL2HLT             = 101;        ///
935         enum EBADE              = 102;        ///
936         enum EBADR              = 103;        ///
937         enum EXFULL             = 104;        ///
938         enum ENOANO             = 105;        ///
939         enum EBADRQC            = 106;        ///
940         enum EBADSLT            = 107;        ///
941         enum EDEADLOCK          = 108;        ///
942         enum EBFONT             = 109;        ///
943         enum ELIBEXEC           = 110;        ///
944         enum ENODATA            = 111;        ///
945         enum ELIBBAD            = 112;        ///
946         enum ENOPKG             = 113;        ///
947         enum ELIBACC            = 114;        ///
948         enum ENOTUNIQ           = 115;        ///
949         enum ERESTART           = 116;        ///
950         enum EUCLEAN            = 117;        ///
951         enum ENOTNAM            = 118;        ///
952         enum ENAVAIL            = 119;        ///
953         enum EISNAM             = 120;        ///
954         enum EREMOTEIO          = 121;        ///
955         enum EILSEQ             = 122;        ///
956         enum ELIBMAX            = 123;        ///
957         enum ELIBSCN            = 124;        ///
958         enum ENOMEDIUM          = 125;        ///
959         enum EMEDIUMTYPE        = 126;        ///
960         enum ECANCELED          = 127;        ///
961         enum ENOKEY             = 128;        ///
962         enum EKEYEXPIRED        = 129;        ///
963         enum EKEYREVOKED        = 130;        ///
964         enum EKEYREJECTED       = 131;        ///
965         enum EOWNERDEAD         = 132;        ///
966         enum ENOTRECOVERABLE    = 133;        ///
967         enum ERFKILL            = 134;        ///
968         enum EHWPOISON          = 135;        ///
969     }
970     else version (IBMZ_Any)
971     {
972         enum EDEADLK            = 35;         ///
973         enum ENAMETOOLONG       = 36;         ///
974         enum ENOLCK             = 37;         ///
975         enum ENOSYS             = 38;         ///
976         enum ENOTEMPTY          = 39;         ///
977         enum ELOOP              = 40;         ///
978         enum EWOULDBLOCK        = EAGAIN;     ///
979         enum ENOMSG             = 42;         ///
980         enum EIDRM              = 43;         ///
981         enum ECHRNG             = 44;         ///
982         enum EL2NSYNC           = 45;         ///
983         enum EL3HLT             = 46;         ///
984         enum EL3RST             = 47;         ///
985         enum ELNRNG             = 48;         ///
986         enum EUNATCH            = 49;         ///
987         enum ENOCSI             = 50;         ///
988         enum EL2HLT             = 51;         ///
989         enum EBADE              = 52;         ///
990         enum EBADR              = 53;         ///
991         enum EXFULL             = 54;         ///
992         enum ENOANO             = 55;         ///
993         enum EBADRQC            = 56;         ///
994         enum EBADSLT            = 57;         ///
995         enum EDEADLOCK          = EDEADLK;    ///
996         enum EBFONT             = 59;         ///
997         enum ENOSTR             = 60;         ///
998         enum ENODATA            = 61;         ///
999         enum ETIME              = 62;         ///
1000         enum ENOSR              = 63;         ///
1001         enum ENONET             = 64;         ///
1002         enum ENOPKG             = 65;         ///
1003         enum EREMOTE            = 66;         ///
1004         enum ENOLINK            = 67;         ///
1005         enum EADV               = 68;         ///
1006         enum ESRMNT             = 69;         ///
1007         enum ECOMM              = 70;         ///
1008         enum EPROTO             = 71;         ///
1009         enum EMULTIHOP          = 72;         ///
1010         enum EDOTDOT            = 73;         ///
1011         enum EBADMSG            = 74;         ///
1012         enum EOVERFLOW          = 75;         ///
1013         enum ENOTUNIQ           = 76;         ///
1014         enum EBADFD             = 77;         ///
1015         enum EREMCHG            = 78;         ///
1016         enum ELIBACC            = 79;         ///
1017         enum ELIBBAD            = 80;         ///
1018         enum ELIBSCN            = 81;         ///
1019         enum ELIBMAX            = 82;         ///
1020         enum ELIBEXEC           = 83;         ///
1021         enum EILSEQ             = 84;         ///
1022         enum ERESTART           = 85;         ///
1023         enum ESTRPIPE           = 86;         ///
1024         enum EUSERS             = 87;         ///
1025         enum ENOTSOCK           = 88;         ///
1026         enum EDESTADDRREQ       = 89;         ///
1027         enum EMSGSIZE           = 90;         ///
1028         enum EPROTOTYPE         = 91;         ///
1029         enum ENOPROTOOPT        = 92;         ///
1030         enum EPROTONOSUPPORT    = 93;         ///
1031         enum ESOCKTNOSUPPORT    = 94;         ///
1032         enum EOPNOTSUPP         = 95;         ///
1033         enum ENOTSUP            = EOPNOTSUPP; ///
1034         enum EPFNOSUPPORT       = 96;         ///
1035         enum EAFNOSUPPORT       = 97;         ///
1036         enum EADDRINUSE         = 98;         ///
1037         enum EADDRNOTAVAIL      = 99;         ///
1038         enum ENETDOWN           = 100;        ///
1039         enum ENETUNREACH        = 101;        ///
1040         enum ENETRESET          = 102;        ///
1041         enum ECONNABORTED       = 103;        ///
1042         enum ECONNRESET         = 104;        ///
1043         enum ENOBUFS            = 105;        ///
1044         enum EISCONN            = 106;        ///
1045         enum ENOTCONN           = 107;        ///
1046         enum ESHUTDOWN          = 108;        ///
1047         enum ETOOMANYREFS       = 109;        ///
1048         enum ETIMEDOUT          = 110;        ///
1049         enum ECONNREFUSED       = 111;        ///
1050         enum EHOSTDOWN          = 112;        ///
1051         enum EHOSTUNREACH       = 113;        ///
1052         enum EALREADY           = 114;        ///
1053         enum EINPROGRESS        = 115;        ///
1054         enum ESTALE             = 116;        ///
1055         enum EUCLEAN            = 117;        ///
1056         enum ENOTNAM            = 118;        ///
1057         enum ENAVAIL            = 119;        ///
1058         enum EISNAM             = 120;        ///
1059         enum EREMOTEIO          = 121;        ///
1060         enum EDQUOT             = 122;        ///
1061         enum ENOMEDIUM          = 123;        ///
1062         enum EMEDIUMTYPE        = 124;        ///
1063         enum ECANCELED          = 125;        ///
1064         enum ENOKEY             = 126;        ///
1065         enum EKEYEXPIRED        = 127;        ///
1066         enum EKEYREVOKED        = 128;        ///
1067         enum EKEYREJECTED       = 129;        ///
1068         enum EOWNERDEAD         = 130;        ///
1069         enum ENOTRECOVERABLE    = 131;        ///
1070         enum ERFKILL            = 132;        ///
1071         enum EHWPOISON          = 133;        ///
1072     }
1073     else
1074     {
1075         static assert(false, "Architecture not supported.");
1076     }
1077 }
version(Darwin)1078 else version (Darwin)
1079 {
1080     enum EPERM              = 1;        /// Operation not permitted
1081     enum ENOENT             = 2;        /// No such file or directory
1082     enum ESRCH              = 3;        /// No such process
1083     enum EINTR              = 4;        /// Interrupted system call
1084     enum EIO                = 5;        /// Input/output error
1085     enum ENXIO              = 6;        /// Device not configured
1086     enum E2BIG              = 7;        /// Argument list too long
1087     enum ENOEXEC            = 8;        /// Exec format error
1088     enum EBADF              = 9;        /// Bad file descriptor
1089     enum ECHILD             = 10;       /// No child processes
1090     enum EDEADLK            = 11;       /// Resource deadlock avoided
1091     enum ENOMEM             = 12;       /// Cannot allocate memory
1092     enum EACCES             = 13;       /// Permission denied
1093     enum EFAULT             = 14;       /// Bad address
1094     enum EBUSY              = 16;       /// Device busy
1095     enum EEXIST             = 17;       /// File exists
1096     enum EXDEV              = 18;       /// Cross-device link
1097     enum ENODEV             = 19;       /// Operation not supported by device
1098     enum ENOTDIR            = 20;       /// Not a directory
1099     enum EISDIR             = 21;       /// Is a directory
1100     enum EINVAL             = 22;       /// Invalid argument
1101     enum ENFILE             = 23;       /// Too many open files in system
1102     enum EMFILE             = 24;       /// Too many open files
1103     enum ENOTTY             = 25;       /// Inappropriate ioctl for device
1104     enum ETXTBSY            = 26;       /// Text file busy
1105     enum EFBIG              = 27;       /// File too large
1106     enum ENOSPC             = 28;       /// No space left on device
1107     enum ESPIPE             = 29;       /// Illegal seek
1108     enum EROFS              = 30;       /// Read-only file system
1109     enum EMLINK             = 31;       /// Too many links
1110     enum EPIPE              = 32;       /// Broken pipe
1111     enum EDOM               = 33;       /// Numerical argument out of domain
1112     enum ERANGE             = 34;       /// Result too large
1113     enum EAGAIN             = 35;       /// Resource temporarily unavailable
1114     enum EWOULDBLOCK        = EAGAIN;   /// Operation would block
1115     enum EINPROGRESS        = 36;       /// Operation now in progress
1116     enum EALREADY           = 37;       /// Operation already in progress
1117     enum ENOTSOCK           = 38;       /// Socket operation on non-socket
1118     enum EDESTADDRREQ       = 39;       /// Destination address required
1119     enum EMSGSIZE           = 40;       /// Message too long
1120     enum EPROTOTYPE         = 41;       /// Protocol wrong type for socket
1121     enum ENOPROTOOPT        = 42;       /// Protocol not available
1122     enum EPROTONOSUPPORT    = 43;       /// Protocol not supported
1123     enum ENOTSUP            = 45;       /// Operation not supported
1124     enum EOPNOTSUPP         = ENOTSUP;  /// Operation not supported on socket
1125     enum EAFNOSUPPORT       = 47;       /// Address family not supported by protocol family
1126     enum EADDRINUSE         = 48;       /// Address already in use
1127     enum EADDRNOTAVAIL      = 49;       /// Can't assign requested address
1128     enum ENETDOWN           = 50;       /// Network is down
1129     enum ENETUNREACH        = 51;       /// Network is unreachable
1130     enum ENETRESET          = 52;       /// Network dropped connection on reset
1131     enum ECONNABORTED       = 53;       /// Software caused connection abort
1132     enum ECONNRESET         = 54;       /// Connection reset by peer
1133     enum ENOBUFS            = 55;       /// No buffer space available
1134     enum EISCONN            = 56;       /// Socket is already connected
1135     enum ENOTCONN           = 57;       /// Socket is not connected
1136     enum ETIMEDOUT          = 60;       /// Operation timed out
1137     enum ECONNREFUSED       = 61;       /// Connection refused
1138     enum ELOOP              = 62;       /// Too many levels of symbolic links
1139     enum ENAMETOOLONG       = 63;       /// File name too long
1140     enum EHOSTUNREACH       = 65;       /// No route to host
1141     enum ENOTEMPTY          = 66;       /// Directory not empty
1142     enum EDQUOT             = 69;       /// Disc quota exceeded
1143     enum ESTALE             = 70;       /// Stale NFS file handle
1144     enum ENOLCK             = 77;       /// No locks available
1145     enum ENOSYS             = 78;       /// Function not implemented
1146     enum EOVERFLOW          = 84;       /// Value too large to be stored in data type
1147     enum ECANCELED          = 89;       /// Operation canceled
1148     enum EIDRM              = 90;       /// Identifier removed
1149     enum ENOMSG             = 91;       /// No message of desired type
1150     enum EILSEQ             = 92;       /// Illegal byte sequence
1151     enum EBADMSG            = 94;       /// Bad message
1152     enum EMULTIHOP          = 95;       /// Reserved
1153     enum ENODATA            = 96;       /// No message available on STREAM
1154     enum ENOLINK            = 97;       /// Reserved
1155     enum ENOSR              = 98;       /// No STREAM resources
1156     enum ENOSTR             = 99;       /// Not a STREAM
1157     enum EPROTO             = 100;      /// Protocol error
1158     enum ETIME              = 101;      /// STREAM ioctl timeout
1159     enum ELAST              = 101;      /// Must be equal largest errno
1160 }
version(FreeBSD)1161 else version (FreeBSD)
1162 {
1163     enum EPERM              = 1;        /// Operation not permitted
1164     enum ENOENT             = 2;        /// No such file or directory
1165     enum ESRCH              = 3;        /// No such process
1166     enum EINTR              = 4;        /// Interrupted system call
1167     enum EIO                = 5;        /// Input/output error
1168     enum ENXIO              = 6;        /// Device not configured
1169     enum E2BIG              = 7;        /// Argument list too long
1170     enum ENOEXEC            = 8;        /// Exec format error
1171     enum EBADF              = 9;        /// Bad file descriptor
1172     enum ECHILD             = 10;       /// No child processes
1173     enum EDEADLK            = 11;       /// Resource deadlock avoided
1174     enum ENOMEM             = 12;       /// Cannot allocate memory
1175     enum EACCES             = 13;       /// Permission denied
1176     enum EFAULT             = 14;       /// Bad address
1177     enum ENOTBLK            = 15;       /// Block device required
1178     enum EBUSY              = 16;       /// Device busy
1179     enum EEXIST             = 17;       /// File exists
1180     enum EXDEV              = 18;       /// Cross-device link
1181     enum ENODEV             = 19;       /// Operation not supported by device
1182     enum ENOTDIR            = 20;       /// Not a directory
1183     enum EISDIR             = 21;       /// Is a directory
1184     enum EINVAL             = 22;       /// Invalid argument
1185     enum ENFILE             = 23;       /// Too many open files in system
1186     enum EMFILE             = 24;       /// Too many open files
1187     enum ENOTTY             = 25;       /// Inappropriate ioctl for device
1188     enum ETXTBSY            = 26;       /// Text file busy
1189     enum EFBIG              = 27;       /// File too large
1190     enum ENOSPC             = 28;       /// No space left on device
1191     enum ESPIPE             = 29;       /// Illegal seek
1192     enum EROFS              = 30;       /// Read-only file system
1193     enum EMLINK             = 31;       /// Too many links
1194     enum EPIPE              = 32;       /// Broken pipe
1195     enum EDOM               = 33;       /// Numerical argument out of domain
1196     enum ERANGE             = 34;       /// Result too large
1197     enum EAGAIN             = 35;       /// Resource temporarily unavailable
1198     enum EWOULDBLOCK        = EAGAIN;   /// Operation would block
1199     enum EINPROGRESS        = 36;       /// Operation now in progress
1200     enum EALREADY           = 37;       /// Operation already in progress
1201     enum ENOTSOCK           = 38;       /// Socket operation on non-socket
1202     enum EDESTADDRREQ       = 39;       /// Destination address required
1203     enum EMSGSIZE           = 40;       /// Message too long
1204     enum EPROTOTYPE         = 41;       /// Protocol wrong type for socket
1205     enum ENOPROTOOPT        = 42;       /// Protocol not available
1206     enum EPROTONOSUPPORT    = 43;       /// Protocol not supported
1207     enum ENOTSUP            = 45;       /// Operation not supported
1208     enum EOPNOTSUPP         = ENOTSUP;  /// Operation not supported on socket
1209     enum EAFNOSUPPORT       = 47;       /// Address family not supported by protocol family
1210     enum EADDRINUSE         = 48;       /// Address already in use
1211     enum EADDRNOTAVAIL      = 49;       /// Can't assign requested address
1212     enum ENETDOWN           = 50;       /// Network is down
1213     enum ENETUNREACH        = 51;       /// Network is unreachable
1214     enum ENETRESET          = 52;       /// Network dropped connection on reset
1215     enum ECONNABORTED       = 53;       /// Software caused connection abort
1216     enum ECONNRESET         = 54;       /// Connection reset by peer
1217     enum ENOBUFS            = 55;       /// No buffer space available
1218     enum EISCONN            = 56;       /// Socket is already connected
1219     enum ENOTCONN           = 57;       /// Socket is not connected
1220     enum ESHUTDOWN          = 58;       /// Can't send after socket shutdown
1221     enum ETOOMANYREFS       = 59;       /// Too many refrences; can't splice
1222     enum ETIMEDOUT          = 60;       /// Operation timed out
1223     enum ECONNREFUSED       = 61;       /// Connection refused
1224     enum ELOOP              = 62;       /// Too many levels of symbolic links
1225     enum ENAMETOOLONG       = 63;       /// File name too long
1226     enum EHOSTUNREACH       = 65;       /// No route to host
1227     enum ENOTEMPTY          = 66;       /// Directory not empty
1228     enum EPROCLIM           = 67;       /// Too many processes
1229     enum EUSERS             = 68;       /// Too many users
1230     enum EDQUOT             = 69;       /// Disc quota exceeded
1231     enum ESTALE             = 70;       /// Stale NFS file handle
1232     enum EREMOTE            = 71;       /// Too many levels of remote in path
1233     enum EBADRPC            = 72;       /// RPC struct is bad
1234     enum ERPCMISMATCH       = 73;       /// RPC version wrong
1235     enum EPROGUNAVAIL       = 74;       /// RPC prog. not avail
1236     enum EPROGMISMATCH      = 75;       /// Program version wrong
1237     enum EPROCUNAVAIL       = 76;       /// Bad procedure for program
1238     enum ENOLCK             = 77;       /// No locks available
1239     enum ENOSYS             = 78;       /// Function not implemented
1240     enum EFTYPE             = 79;       /// Inappropriate file type or format
1241     enum EAUTH              = 80;       /// Authentication error
1242     enum ENEEDAUTH          = 81;       /// Need authenticator
1243     enum EIDRM              = 82;       /// Itendifier removed
1244     enum ENOMSG             = 83;       /// No message of desired type
1245     enum EOVERFLOW          = 84;       /// Value too large to be stored in data type
1246     enum ECANCELED          = 85;       /// Operation canceled
1247     enum EILSEQ             = 86;       /// Illegal byte sequence
1248     enum ENOATTR            = 87;       /// Attribute not found
1249     enum EDOOFUS            = 88;       /// Programming error
1250     enum EBADMSG            = 89;       /// Bad message
1251     enum EMULTIHOP          = 90;       /// Multihop attempted
1252     enum ENOLINK            = 91;       /// Link has been severed
1253     enum EPROTO             = 92;       /// Protocol error
1254     enum ELAST              = 92;       /// Must be equal largest errno
1255 }
version(NetBSD)1256 else version (NetBSD)
1257 {
1258     // http://cvsweb.netbsd.org/bsdweb.cgi/~checkout~/src/sys/sys/errno.h
1259     enum EPERM           = 1;
1260     enum ENOENT          = 2;
1261     enum ESRCH           = 3;
1262     enum EINTR           = 4;
1263     enum EIO             = 5;
1264     enum ENXIO           = 6;
1265     enum E2BIG           = 7;
1266     enum ENOEXEC         = 8;
1267     enum EBADF           = 9;
1268     enum ECHILD          = 10;
1269     enum EDEADLK         = 11;
1270     ///
1271     enum ENOMEM          = 12;
1272     enum EACCES          = 13;
1273     enum EFAULT          = 14;
1274     enum ENOTBLK         = 15;
1275     enum EBUSY           = 16;
1276     enum EEXIST          = 17;
1277     enum EXDEV           = 18;
1278     enum ENODEV          = 19;
1279     enum ENOTDIR         = 20;
1280     enum EISDIR          = 21;
1281     enum EINVAL          = 22;
1282     enum ENFILE          = 23;
1283     enum EMFILE          = 24;
1284     enum ENOTTY          = 25;
1285     enum ETXTBSY         = 26;
1286     enum EFBIG           = 27;
1287     enum ENOSPC          = 28;
1288     enum ESPIPE          = 29;
1289     enum EROFS           = 30;
1290     enum EMLINK          = 31;
1291     enum EPIPE           = 32;
1292     ///
1293     enum EDOM            = 33;
1294     enum ERANGE          = 34;
1295 
1296     ///
1297     enum EAGAIN          = 35;
1298     enum EWOULDBLOCK     = EAGAIN;
1299     enum EINPROGRESS     = 36;
1300     enum EALREADY        = 37;
1301 
1302     ///
1303     enum ENOTSOCK        = 38;
1304     enum EDESTADDRREQ    = 39;
1305     enum EMSGSIZE        = 40;
1306     enum EPROTOTYPE      = 41;
1307     enum ENOPROTOOPT     = 42;
1308     enum EPROTONOSUPPORT = 43;
1309     enum ESOCKTNOSUPPORT = 44;
1310     enum EOPNOTSUPP      = 45;
1311     enum EPFNOSUPPORT    = 46;
1312     enum EAFNOSUPPORT    = 47;
1313     enum EADDRINUSE      = 48;
1314     enum EADDRNOTAVAIL   = 49;
1315 
1316     ///
1317     enum ENETDOWN        = 50;
1318     enum ENETUNREACH     = 51;
1319     enum ENETRESET       = 52;
1320     enum ECONNABORTED    = 53;
1321     enum ECONNRESET      = 54;
1322     enum ENOBUFS         = 55;
1323     enum EISCONN         = 56;
1324     enum ENOTCONN        = 57;
1325     enum ESHUTDOWN       = 58;
1326     enum ETOOMANYREFS    = 59;
1327     enum ETIMEDOUT       = 60;
1328     enum ECONNREFUSED    = 61;
1329     enum ELOOP           = 62;
1330     enum ENAMETOOLONG    = 63;
1331 
1332     ///
1333     enum EHOSTDOWN       = 64;
1334     enum EHOSTUNREACH    = 65;
1335     enum ENOTEMPTY       = 66;
1336 
1337     ///
1338     enum EPROCLIM        = 67;
1339     enum EUSERS          = 68;
1340     enum EDQUOT          = 69;
1341 
1342     ///
1343     enum ESTALE          = 70;
1344     enum EREMOTE         = 71;
1345     enum EBADRPC         = 72;
1346     enum ERPCMISMATCH    = 73;
1347     enum EPROGUNAVAIL    = 74;
1348     enum EPROGMISMATCH   = 75;
1349     enum EPROCUNAVAIL    = 76;
1350 
1351     enum ENOLCK          = 77;
1352     enum ENOSYS          = 78;
1353 
1354     enum EFTYPE          = 79;
1355     enum EAUTH           = 80;
1356     enum ENEEDAUTH       = 81;
1357 
1358     ///
1359     enum EIDRM           = 82;
1360     enum ENOMSG          = 83;
1361     enum EOVERFLOW       = 84;
1362     ///
1363     enum EILSEQ          = 85;
1364 
1365     ///
1366     enum ENOTSUP         = 86;
1367 
1368     ///
1369     enum ECANCELED       = 87;
1370 
1371     ///
1372     enum EBADMSG         = 88;
1373 
1374     ///
1375     enum ENODATA         = 89;
1376     enum ENOSR           = 90;
1377     enum ENOSTR          = 91;
1378     enum ETIME           = 92;
1379 
1380     ///
1381     enum ENOATTR         = 93;
1382 
1383     ///
1384     enum EMULTIHOP       = 94;
1385     enum ENOLINK         = 95;
1386     enum EPROTO          = 96;
1387 }
version(OpenBSD)1388 else version (OpenBSD)
1389 {
1390     enum EPERM              = 1;        /// Operation not permitted
1391     enum ENOENT             = 2;        /// No such file or directory
1392     enum ESRCH              = 3;        /// No such process
1393     enum EINTR              = 4;        /// Interrupted system call
1394     enum EIO                = 5;        /// Input/output error
1395     enum ENXIO              = 6;        /// Device not configured
1396     enum E2BIG              = 7;        /// Argument list too long
1397     enum ENOEXEC            = 8;        /// Exec format error
1398     enum EBADF              = 9;        /// Bad file descriptor
1399     enum ECHILD             = 10;       /// No child processes
1400     enum EDEADLK            = 11;       /// Resource deadlock avoided
1401     enum ENOMEM             = 12;       /// Cannot allocate memory
1402     enum EACCES             = 13;       /// Permission denied
1403     enum EFAULT             = 14;       /// Bad address
1404     enum ENOTBLK            = 15;       /// Block device required
1405     enum EBUSY              = 16;       /// Device busy
1406     enum EEXIST             = 17;       /// File exists
1407     enum EXDEV              = 18;       /// Cross-device link
1408     enum ENODEV             = 19;       /// Operation not supported by device
1409     enum ENOTDIR            = 20;       /// Not a directory
1410     enum EISDIR             = 21;       /// Is a directory
1411     enum EINVAL             = 22;       /// Invalid argument
1412     enum ENFILE             = 23;       /// Too many open files in system
1413     enum EMFILE             = 24;       /// Too many open files
1414     enum ENOTTY             = 25;       /// Inappropriate ioctl for device
1415     enum ETXTBSY            = 26;       /// Text file busy
1416     enum EFBIG              = 27;       /// File too large
1417     enum ENOSPC             = 28;       /// No space left on device
1418     enum ESPIPE             = 29;       /// Illegal seek
1419     enum EROFS              = 30;       /// Read-only file system
1420     enum EMLINK             = 31;       /// Too many links
1421     enum EPIPE              = 32;       /// Broken pipe
1422     enum EDOM               = 33;       /// Numerical argument out of domain
1423     enum ERANGE             = 34;       /// Result too large
1424     enum EAGAIN             = 35;       /// Resource temporarily unavailable
1425     enum EWOULDBLOCK        = EAGAIN;   /// Operation would block
1426     enum EINPROGRESS        = 36;       /// Operation now in progress
1427     enum EALREADY           = 37;       /// Operation already in progress
1428     enum ENOTSOCK           = 38;       /// Socket operation on non-socket
1429     enum EDESTADDRREQ       = 39;       /// Destination address required
1430     enum EMSGSIZE           = 40;       /// Message too long
1431     enum EPROTOTYPE         = 41;       /// Protocol wrong type for socket
1432     enum ENOPROTOOPT        = 42;       /// Protocol not available
1433     enum EPROTONOSUPPORT    = 43;       /// Protocol not supported
1434     enum ESOCKTNOSUPPORT    = 44;       /// Socket type not supported
1435     enum EOPNOTSUPP         = 45;       /// Operation not supported
1436     enum EPFNOSUPPORT       = 46;       /// Protocol family not supported
1437     enum EAFNOSUPPORT       = 47;       /// Address family not supported by protocol family
1438     enum EADDRINUSE         = 48;       /// Address already in use
1439     enum EADDRNOTAVAIL      = 49;       /// Can't assign requested address
1440     enum ENETDOWN           = 50;       /// Network is down
1441     enum ENETUNREACH        = 51;       /// Network is unreachable
1442     enum ENETRESET          = 52;       /// Network dropped connection on reset
1443     enum ECONNABORTED       = 53;       /// Software caused connection abort
1444     enum ECONNRESET         = 54;       /// Connection reset by peer
1445     enum ENOBUFS            = 55;       /// No buffer space available
1446     enum EISCONN            = 56;       /// Socket is already connected
1447     enum ENOTCONN           = 57;       /// Socket is not connected
1448     enum ESHUTDOWN          = 58;       /// Can't send after socket shutdown
1449     enum ETOOMANYREFS       = 59;       /// Too many references: can't splice
1450     enum ETIMEDOUT          = 60;       /// Operation timed out
1451     enum ECONNREFUSED       = 61;       /// Connection refused
1452     enum ELOOP              = 62;       /// Too many levels of symbolic links
1453     enum ENAMETOOLONG       = 63;       /// File name too long
1454     enum EHOSTDOWN          = 64;       /// Host is down
1455     enum EHOSTUNREACH       = 65;       /// No route to host
1456     enum ENOTEMPTY          = 66;       /// Directory not empty
1457     enum EPROCLIM           = 67;       /// Too many processes
1458     enum EUSERS             = 68;       /// Too many users
1459     enum EDQUOT             = 69;       /// Disk quota exceeded
1460     enum ESTALE             = 70;       /// Stale NFS file handle
1461     enum EREMOTE            = 71;       /// Too many levels of remote in path
1462     enum EBADRPC            = 72;       /// RPC struct is bad
1463     enum ERPCMISMATCH       = 73;       /// RPC version wrong
1464     enum EPROGUNAVAIL       = 74;       /// RPC program not available
1465     enum EPROGMISMATCH      = 75;       /// Program version wrong
1466     enum EPROCUNAVAIL       = 76;       /// Bad procedure for program
1467     enum ENOLCK             = 77;       /// No locks available
1468     enum ENOSYS             = 78;       /// Function not implemented
1469     enum EFTYPE             = 79;       /// Inappropriate file type or format
1470     enum EAUTH              = 80;       /// Authentication error
1471     enum ENEEDAUTH          = 81;       /// Need authenticator
1472     enum EIPSEC             = 82;       /// IPsec processing failure
1473     enum ENOATTR            = 83;       /// Attribute not found
1474     enum EILSEQ             = 84;       /// Illegal byte sequence
1475     enum ENOMEDIUM          = 85;       /// No medium found
1476     enum EMEDIUMTYPE        = 86;       /// Wrong medium type
1477     enum EOVERFLOW          = 87;       /// Value too large to be stored in data type
1478     enum ECANCELED          = 88;       /// Operation canceled
1479     enum EIDRM              = 89;       /// Identifier removed
1480     enum ENOMSG             = 90;       /// No message of desired type
1481     enum ENOTSUP            = 91;       /// Not supported
1482     enum ELAST              = 91;       /// Must be equal largest errno
1483 }
version(DragonFlyBSD)1484 else version (DragonFlyBSD)
1485 {
1486     enum EPERM              = 1;
1487     enum ENOENT             = 2;
1488     enum ESRCH              = 3;
1489     enum EINTR              = 4;
1490     enum EIO                = 5;
1491     enum ENXIO              = 6;
1492     enum E2BIG              = 7;
1493     enum ENOEXEC            = 8;
1494     enum EBADF              = 9;
1495     enum ECHILD             = 10;
1496     enum EDEADLK            = 11;
1497     enum ENOMEM             = 12;
1498     enum EACCES             = 13;
1499     enum EFAULT             = 14;
1500     enum ENOTBLK            = 15;
1501     enum EBUSY              = 16;
1502     enum EEXIST             = 17;
1503     enum EXDEV              = 18;
1504     enum ENODEV             = 19;
1505     enum ENOTDIR            = 20;
1506     enum EISDIR             = 21;
1507     enum EINVAL             = 22;
1508     enum ENFILE             = 23;
1509     enum EMFILE             = 24;
1510     enum ENOTTY             = 25;
1511     enum ETXTBSY            = 26;
1512     enum EFBIG              = 27;
1513     enum ENOSPC             = 28;
1514     enum ESPIPE             = 29;
1515     enum EROFS              = 30;
1516     enum EMLINK             = 31;
1517     enum EPIPE              = 32;
1518     enum EDOM               = 33;
1519     enum ERANGE             = 34;
1520     enum EAGAIN             = 35;
1521     enum EWOULDBLOCK        = EAGAIN;
1522     enum EINPROGRESS        = 36;
1523     enum EALREADY           = 37;
1524     enum ENOTSOCK           = 38;
1525     enum EDESTADDRREQ       = 39;
1526     enum EMSGSIZE           = 40;
1527     enum EPROTOTYPE         = 41;
1528     enum ENOPROTOOPT        = 42;
1529     enum EPROTONOSUPPORT    = 43;
1530     enum ENOTSUP            = 45;
1531     enum EOPNOTSUPP         = ENOTSUP;
1532     enum EPFNOSUPPORT       = 46;
1533     enum EAFNOSUPPORT       = 47;
1534     enum EADDRINUSE         = 48;
1535     enum EADDRNOTAVAIL      = 49;
1536     enum ENETDOWN           = 50;
1537     enum ENETUNREACH        = 51;
1538     enum ENETRESET          = 52;
1539     enum ECONNABORTED       = 53;
1540     enum ECONNRESET         = 54;
1541     enum ENOBUFS            = 55;
1542     enum EISCONN            = 56;
1543     enum ENOTCONN           = 57;
1544     enum ESHUTDOWN          = 58;
1545     enum ETOOMANYREFS       = 59;
1546     enum ETIMEDOUT          = 60;
1547     enum ECONNREFUSED       = 61;
1548     enum ELOOP              = 62;
1549     enum ENAMETOOLONG       = 63;
1550     enum EHOSTUNREACH       = 65;
1551     enum ENOTEMPTY          = 66;
1552     enum EPROCLIM           = 67;
1553     enum EUSERS             = 68;
1554     enum EDQUOT             = 69;
1555     enum ESTALE             = 70;
1556     enum EREMOTE            = 71;
1557     enum EBADRPC            = 72;
1558     enum ERPCMISMATCH       = 73;
1559     enum EPROGUNAVAIL       = 74;
1560     enum EPROGMISMATCH      = 75;
1561     enum EPROCUNAVAIL       = 76;
1562     enum ENOLCK             = 77;
1563     enum ENOSYS             = 78;
1564     enum EFTYPE             = 79;
1565     enum EAUTH              = 80;
1566     enum ENEEDAUTH          = 81;
1567     enum EIDRM              = 82;
1568     enum ENOMSG             = 83;
1569     enum EOVERFLOW          = 84;
1570     enum ECANCELED          = 85;
1571     enum EILSEQ             = 86;
1572     enum ENOATTR            = 87;
1573     enum EDOOFUS            = 88;
1574     enum EBADMSG            = 89;
1575     enum EMULTIHOP          = 90;
1576     enum ENOLINK            = 91;
1577     enum EPROTO             = 92;
1578     enum ENOMEDIUM          = 93;
1579     enum EUNUSED94          = 94;
1580     enum EUNUSED95          = 95;
1581     enum EUNUSED96          = 96;
1582     enum EUNUSED97          = 97;
1583     enum EUNUSED98          = 98;
1584     enum EASYNC             = 99;
1585     enum ELAST              = 99;
1586 }
version(Solaris)1587 else version (Solaris)
1588 {
1589     enum EPERM =  1       /** Not super-user                       */;
1590     enum ENOENT = 2       /** No such file or directory            */;
1591     enum ESRCH =  3       /** No such process                      */;
1592     enum EINTR =  4       /** interrupted system call              */;
1593     enum EIO =    5       /** I/O error                            */;
1594     enum ENXIO =  6       /** No such device or address            */;
1595     enum E2BIG =  7       /** Arg list too long                    */;
1596     enum ENOEXEC = 8       /** Exec format error                    */;
1597     enum EBADF =  9       /** Bad file number                      */;
1598     enum ECHILD = 10      /** No children                          */;
1599     enum EAGAIN = 11      /** Resource temporarily unavailable     */;
1600     enum ENOMEM = 12      /** Not enough core                      */;
1601     enum EACCES = 13      /** Permission denied                    */;
1602     enum EFAULT = 14      /** Bad address                          */;
1603     enum ENOTBLK = 15      /** Block device required                */;
1604     enum EBUSY =  16      /** Mount device busy                    */;
1605     enum EEXIST = 17      /** File exists                          */;
1606     enum EXDEV =  18      /** Cross-device link                    */;
1607     enum ENODEV = 19      /** No such device                       */;
1608     enum ENOTDIR = 20      /** Not a directory                      */;
1609     enum EISDIR = 21      /** Is a directory                       */;
1610     enum EINVAL = 22      /** Invalid argument                     */;
1611     enum ENFILE = 23      /** File table overflow                  */;
1612     enum EMFILE = 24      /** Too many open files                  */;
1613     enum ENOTTY = 25      /** Inappropriate ioctl for device       */;
1614     enum ETXTBSY = 26      /** Text file busy                       */;
1615     enum EFBIG =  27      /** File too large                       */;
1616     enum ENOSPC = 28      /** No space left on device              */;
1617     enum ESPIPE = 29      /** Illegal seek                         */;
1618     enum EROFS =  30      /** Read only file system                */;
1619     enum EMLINK = 31      /** Too many links                       */;
1620     enum EPIPE =  32      /** Broken pipe                          */;
1621     enum EDOM =   33      /** Math arg out of domain of func       */;
1622     enum ERANGE = 34      /** Math result not representable        */;
1623     enum ENOMSG = 35      /** No message of desired type           */;
1624     enum EIDRM =  36      /** Identifier removed                   */;
1625     enum ECHRNG = 37      /** Channel number out of range          */;
1626     enum EL2NSYNC = 38     /** Level 2 not synchronized             */;
1627     enum EL3HLT = 39      /** Level 3 halted                       */;
1628     enum EL3RST = 40      /** Level 3 reset                        */;
1629     enum ELNRNG = 41      /** Link number out of range             */;
1630     enum EUNATCH = 42      /** Protocol driver not attached         */;
1631     enum ENOCSI = 43      /** No CSI structure available           */;
1632     enum EL2HLT = 44      /** Level 2 halted                       */;
1633     enum EDEADLK = 45      /** Deadlock condition.                  */;
1634     enum ENOLCK = 46      /** No record locks available.           */;
1635     enum ECANCELED = 47    /** Operation canceled                   */;
1636     enum ENOTSUP = 48      /** Operation not supported              */;
1637     enum EDQUOT = 49      /** Disc quota exceeded                  */;
1638     enum EBADE =  50      /** invalid exchange                     */;
1639     enum EBADR =  51      /** invalid request descriptor           */;
1640     enum EXFULL = 52      /** exchange full                        */;
1641     enum ENOANO = 53      /** no anode                             */;
1642     enum EBADRQC = 54      /** invalid request code                 */;
1643     enum EBADSLT = 55      /** invalid slot                         */;
1644     enum EDEADLOCK = 56    /** file locking deadlock error          */;
1645     enum EBFONT = 57      /** bad font file fmt                    */;
1646     enum EOWNERDEAD =     58      /** process died with the lock */;
1647     enum ENOTRECOVERABLE = 59      /** lock is not recoverable */;
1648     enum ENOSTR = 60      /** Device not a stream                  */;
1649     enum ENODATA = 61      /** no data (for no delay io)            */;
1650     enum ETIME =  62      /** timer expired                        */;
1651     enum ENOSR =  63      /** out of streams resources             */;
1652     enum ENONET = 64      /** Machine is not on the network        */;
1653     enum ENOPKG = 65      /** Package not installed                */;
1654     enum EREMOTE = 66      /** The object is remote                 */;
1655     enum ENOLINK = 67      /** the link has been severed            */;
1656     enum EADV =   68      /** advertise error                      */;
1657     enum ESRMNT = 69      /** srmount error                        */;
1658     enum ECOMM =  70      /** Communication error on send          */;
1659     enum EPROTO = 71      /** Protocol error                       */;
1660     enum ELOCKUNMAPPED =  72      /** locked lock was unmapped */;
1661     enum ENOTACTIVE = 73   /** Facility is not active               */;
1662     enum EMULTIHOP = 74    /** multihop attempted                   */;
1663     enum EBADMSG = 77      /** trying to read unreadable message    */;
1664     enum ENAMETOOLONG = 78 /** path name is too long                */;
1665     enum EOVERFLOW = 79    /** value too large to be stored in data type */;
1666     enum ENOTUNIQ = 80     /** given log. name not unique           */;
1667     enum EBADFD =  81      /** f.d. invalid for this operation      */;
1668     enum EREMCHG = 82      /** Remote address changed               */;
1669     enum ELIBACC = 83      /** Can't access a needed shared lib.    */;
1670     enum ELIBBAD = 84      /** Accessing a corrupted shared lib.    */;
1671     enum ELIBSCN = 85      /** .lib section in a.out corrupted.     */;
1672     enum ELIBMAX = 86      /** Attempting to link in too many libs. */;
1673     enum ELIBEXEC = 87     /** Attempting to exec a shared library. */;
1674     enum EILSEQ = 88      /** Illegal byte sequence.               */;
1675     enum ENOSYS = 89      /** Unsupported file system operation    */;
1676     enum ELOOP =  90      /** Symbolic link loop                   */;
1677     enum ERESTART = 91     /** Restartable system call              */;
1678     enum ESTRPIPE = 92     /** if pipe/FIFO, don't sleep in stream head */;
1679     enum ENOTEMPTY = 93    /** directory not empty                  */;
1680     enum EUSERS = 94      /** Too many users (for UFS)             */;
1681     enum ENOTSOCK =       95      /** Socket operation on non-socket */;
1682     enum EDESTADDRREQ =   96      /** Destination address required */;
1683     enum EMSGSIZE =       97      /** Message too long */;
1684     enum EPROTOTYPE =     98      /** Protocol wrong type for socket */;
1685     enum ENOPROTOOPT =    99      /** Protocol not available */;
1686     enum EPROTONOSUPPORT = 120     /** Protocol not supported */;
1687     enum ESOCKTNOSUPPORT = 121     /** Socket type not supported */;
1688     enum EOPNOTSUPP =     122     /** Operation not supported on socket */;
1689     enum EPFNOSUPPORT =   123     /** Protocol family not supported */;
1690     enum EAFNOSUPPORT =   124     /** Address family not supported by the protocol family */;
1691     enum EADDRINUSE =     125     /** Address already in use */;
1692     enum EADDRNOTAVAIL =   126     /** Can't assign requested address */;
1693     enum ENETDOWN =       127     /** Network is down */;
1694     enum ENETUNREACH =    128     /** Network is unreachable */;
1695     enum ENETRESET =      129     /** Network dropped connection because of reset */;
1696     enum ECONNABORTED =   130     /** Software caused connection abort */;
1697     enum ECONNRESET =     131     /** Connection reset by peer */;
1698     enum ENOBUFS =        132     /** No buffer space available */;
1699     enum EISCONN =        133     /** Socket is already connected */;
1700     enum ENOTCONN =       134     /** Socket is not connected */;
1701     enum ESHUTDOWN =      143     /** Can't send after socket shutdown */;
1702     enum ETOOMANYREFS =   144     /** Too many references: can't splice */;
1703     enum ETIMEDOUT =      145     /** Connection timed out */;
1704     enum ECONNREFUSED =   146     /** Connection refused */;
1705     enum EHOSTDOWN =      147     /** Host is down */;
1706     enum EHOSTUNREACH =   148     /** No route to host */;
1707     enum EWOULDBLOCK =    EAGAIN;      /** Resource temporarily unavailable     */;
1708     enum EALREADY =       149     /** operation already in progress */;
1709     enum EINPROGRESS =    150     /** operation now in progress */;
1710     enum ESTALE =         151     /** Stale NFS file handle */;
1711 }
1712 else
1713 {
1714     static assert(false, "Unsupported platform");
1715 }
1716