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