109 #define PLATFORM_ERRNO(_platform) <ipxe/errno/_platform.h> 110 #include PLATFORM_ERRNO(PLATFORM) 121 extern char missing_errfile_declaration[]
__attribute__ (( deprecated ));
123 #define ERRFILE ( ( int ) ( 0 * ( ( intptr_t ) missing_errfile_declaration ) ) ) 135 #define __einfo( platform, posix, uniq, desc ) ( platform, posix, uniq, desc ) 143 #define __einfo_platform( einfo ) __einfo_extract_platform einfo 144 #define __einfo_extract_platform( platform, posix, uniq, desc ) platform 152 #define __einfo_posix( einfo ) __einfo_extract_posix einfo 153 #define __einfo_extract_posix( platform, posix, uniq, desc ) posix 161 #define __einfo_uniq( einfo ) __einfo_extract_uniq einfo 162 #define __einfo_extract_uniq( platform, posix, uniq, desc ) uniq 170 #define __einfo_desc( einfo ) __einfo_extract_desc einfo 171 #define __einfo_extract_desc( platform, posix, uniq, desc ) desc 181 #define __einfo_uniqify( einfo_base, uniq, desc ) \ 182 __einfo ( __einfo_platform ( einfo_base ), \ 183 __einfo_posix ( einfo_base ), \ 194 #define __einfo_platformify( einfo_base, platform, desc ) \ 195 __einfo ( platform, __einfo_posix ( einfo_base ), \ 196 __einfo_uniq ( einfo_base ), desc ) 204 #define __einfo_errno( einfo ) \ 206 ( ( __einfo_posix ( einfo ) << 24 ) | ( ERRFILE ) | \ 207 ( __einfo_uniq ( einfo ) << 8 ) | \ 208 ( PLATFORM_TO_ERRNO ( __einfo_platform ( einfo ) ) << 0 ) ) ) 226 #define EUNIQ( einfo_base, uniq, ... ) ( { \ 227 euniq_discard ( 0, ##__VA_ARGS__ ); \ 228 ( ( int ) ( __einfo_error ( einfo_base ) | \ 229 ( (uniq) << 8 ) ) ); } ) 249 #define EPLATFORM( einfo_base, platform, ... ) ( { \ 250 eplatform_discard ( 0, ##__VA_ARGS__ ); \ 251 ( ( int ) ( __einfo_error ( einfo_base ) | \ 252 PLATFORM_TO_ERRNO ( platform ) ) ); } ) 261 #define __einfo_error( einfo ) ( { \ 262 __asm__ ( ".section \".einfo\", \"\", " PROGBITS_OPS "\n\t" \ 265 ".long ( 4f - 1b )\n\t" \ 266 ".long %" ASM_NO_PREFIX "0\n\t" \ 267 ".long ( 2f - 1b )\n\t" \ 268 ".long ( 3f - 1b )\n\t" \ 269 ".long %" ASM_NO_PREFIX "1\n\t" \ 270 "\n2:\t.asciz \"" __einfo_desc ( einfo ) "\"\n\t" \ 271 "\n3:\t.asciz \"" __FILE__ "\"\n\t" \ 274 ".previous\n\t" : : \ 275 "i" ( __einfo_errno ( einfo ) ), \ 276 "i" ( __LINE__ ) ); \ 277 __einfo_errno ( einfo ); } ) 289 #define ENOERR __einfo_error ( EINFO_ENOERR ) 290 #define EINFO_ENOERR __einfo ( PLATFORM_ENOERR, 0x00, 0, \ 291 "Operation completed successfully" ) 294 #define E2BIG __einfo_error ( EINFO_E2BIG ) 295 #define EINFO_E2BIG __einfo ( PLATFORM_E2BIG, 0x01, 0, \ 296 "Argument list too long" ) 299 #define EACCES __einfo_error ( EINFO_EACCES ) 300 #define EINFO_EACCES __einfo ( PLATFORM_EACCES, 0x02, 0, \ 301 "Permission denied" ) 304 #define EADDRINUSE __einfo_error ( EINFO_EADDRINUSE ) 305 #define EINFO_EADDRINUSE __einfo ( PLATFORM_EADDRINUSE, 0x03, 0, \ 306 "Address already in use" ) 309 #define EADDRNOTAVAIL __einfo_error ( EINFO_EADDRNOTAVAIL ) 310 #define EINFO_EADDRNOTAVAIL __einfo ( PLATFORM_EADDRNOTAVAIL, 0x04, 0, \ 311 "Address not available" ) 314 #define EAFNOSUPPORT __einfo_error ( EINFO_EAFNOSUPPORT ) 315 #define EINFO_EAFNOSUPPORT __einfo ( PLATFORM_EAFNOSUPPORT, 0x05, 0, \ 316 "Address family not supported" ) 319 #define EAGAIN __einfo_error ( EINFO_EAGAIN ) 320 #define EINFO_EAGAIN __einfo ( PLATFORM_EAGAIN, 0x06, 0, \ 321 "Resource temporarily unavailable" ) 324 #define EALREADY __einfo_error ( EINFO_EALREADY ) 325 #define EINFO_EALREADY __einfo ( PLATFORM_EALREADY, 0x07, 0, \ 326 "Connection already in progress" ) 329 #define EBADF __einfo_error ( EINFO_EBADF ) 330 #define EINFO_EBADF __einfo ( PLATFORM_EBADF, 0x08, 0, \ 331 "Bad file descriptor" ) 334 #define EBADMSG __einfo_error ( EINFO_EBADMSG ) 335 #define EINFO_EBADMSG __einfo ( PLATFORM_EBADMSG, 0x09, 0, \ 339 #define EBUSY __einfo_error ( EINFO_EBUSY ) 340 #define EINFO_EBUSY __einfo ( PLATFORM_EBUSY, 0x0a, 0, \ 341 "Device or resource busy" ) 344 #define ECANCELED __einfo_error ( EINFO_ECANCELED ) 345 #define EINFO_ECANCELED __einfo ( PLATFORM_ECANCELED, 0x0b, 0, \ 346 "Operation canceled" ) 349 #define ECHILD __einfo_error ( EINFO_ECHILD ) 350 #define EINFO_ECHILD __einfo ( PLATFORM_ECHILD, 0x0c, 0, \ 351 "No child processes" ) 354 #define ECONNABORTED __einfo_error ( EINFO_ECONNABORTED ) 355 #define EINFO_ECONNABORTED __einfo ( PLATFORM_ECONNABORTED, 0x0d, 0, \ 356 "Connection aborted" ) 359 #define ECONNREFUSED __einfo_error ( EINFO_ECONNREFUSED ) 360 #define EINFO_ECONNREFUSED __einfo ( PLATFORM_ECONNREFUSED, 0x0e, 0, \ 361 "Connection refused" ) 364 #define ECONNRESET __einfo_error ( EINFO_ECONNRESET ) 365 #define EINFO_ECONNRESET __einfo ( PLATFORM_ECONNRESET, 0x0f, 0, \ 369 #define EDEADLK __einfo_error ( EINFO_EDEADLK ) 370 #define EINFO_EDEADLK __einfo ( PLATFORM_EDEADLK, 0x10, 0, \ 371 "Resource deadlock avoided" ) 374 #define EDESTADDRREQ __einfo_error ( EINFO_EDESTADDRREQ ) 375 #define EINFO_EDESTADDRREQ __einfo ( PLATFORM_EDESTADDRREQ, 0x11, 0, \ 376 "Destination address required" ) 379 #define EDOM __einfo_error ( EINFO_EDOM ) 380 #define EINFO_EDOM __einfo ( PLATFORM_EDOM, 0x12, 0, \ 381 "Mathematics argument out of domain of function" ) 384 #define EDQUOT __einfo_error ( EINFO_EDQUOT ) 385 #define EINFO_EDQUOT __einfo ( PLATFORM_EDQUOT, 0x13, 0, \ 386 "Disk quote exceeded" ) 389 #define EEXIST __einfo_error ( EINFO_EEXIST ) 390 #define EINFO_EEXIST __einfo ( PLATFORM_EEXIST, 0x14, 0, \ 394 #define EFAULT __einfo_error ( EINFO_EFAULT ) 395 #define EINFO_EFAULT __einfo ( PLATFORM_EFAULT, 0x15, 0, \ 399 #define EFBIG __einfo_error ( EINFO_EFBIG ) 400 #define EINFO_EFBIG __einfo ( PLATFORM_EFBIG, 0x16, 0, \ 404 #define EHOSTUNREACH __einfo_error ( EINFO_EHOSTUNREACH ) 405 #define EINFO_EHOSTUNREACH __einfo ( PLATFORM_EHOSTUNREACH, 0x17, 0, \ 406 "Host is unreachable" ) 409 #define EIDRM __einfo_error ( EINFO_EIDRM ) 410 #define EINFO_EIDRM __einfo ( PLATFORM_EIDRM, 0x18, 0, \ 411 "Identifier removed" ) 414 #define EILSEQ __einfo_error ( EINFO_EILSEQ ) 415 #define EINFO_EILSEQ __einfo ( PLATFORM_EILSEQ, 0x19, 0, \ 416 "Illegal byte sequence" ) 419 #define EINPROGRESS __einfo_error ( EINFO_EINPROGRESS ) 420 #define EINFO_EINPROGRESS __einfo ( PLATFORM_EINPROGRESS, 0x1a, 0, \ 421 "Operation in progress" ) 424 #define EINTR __einfo_error ( EINFO_EINTR ) 425 #define EINFO_EINTR __einfo ( PLATFORM_EINTR, 0x1b, 0, \ 426 "Interrupted function call" ) 429 #define EINVAL __einfo_error ( EINFO_EINVAL ) 430 #define EINFO_EINVAL __einfo ( PLATFORM_EINVAL, 0x1c, 0, \ 434 #define EIO __einfo_error ( EINFO_EIO ) 435 #define EINFO_EIO __einfo ( PLATFORM_EIO, 0x1d, 0, \ 436 "Input/output error" ) 439 #define EISCONN __einfo_error ( EINFO_EISCONN ) 440 #define EINFO_EISCONN __einfo ( PLATFORM_EISCONN, 0x1e, 0, \ 441 "Socket is connected" ) 444 #define EISDIR __einfo_error ( EINFO_EISDIR ) 445 #define EINFO_EISDIR __einfo ( PLATFORM_EISDIR, 0x1f, 0, \ 449 #define ELOOP __einfo_error ( EINFO_ELOOP ) 450 #define EINFO_ELOOP __einfo ( PLATFORM_ELOOP, 0x20, 0, \ 451 "Too many levels of symbolic links" ) 454 #define EMFILE __einfo_error ( EINFO_EMFILE ) 455 #define EINFO_EMFILE __einfo ( PLATFORM_EMFILE, 0x21, 0, \ 456 "Too many open files" ) 459 #define EMLINK __einfo_error ( EINFO_EMLINK ) 460 #define EINFO_EMLINK __einfo ( PLATFORM_EMLINK, 0x22, 0, \ 464 #define EMSGSIZE __einfo_error ( EINFO_EMSGSIZE ) 465 #define EINFO_EMSGSIZE __einfo ( PLATFORM_EMSGSIZE, 0x23, 0, \ 469 #define EMULTIHOP __einfo_error ( EINFO_EMULTIHOP ) 470 #define EINFO_EMULTIHOP __einfo ( PLATFORM_EMULTIHOP, 0x24, 0, \ 471 "Multihop attempted" ) 474 #define ENAMETOOLONG __einfo_error ( EINFO_ENAMETOOLONG ) 475 #define EINFO_ENAMETOOLONG __einfo ( PLATFORM_ENAMETOOLONG, 0x25, 0, \ 476 "Filename too long" ) 479 #define ENETDOWN __einfo_error ( EINFO_ENETDOWN ) 480 #define EINFO_ENETDOWN __einfo ( PLATFORM_ENETDOWN, 0x26, 0, \ 484 #define ENETRESET __einfo_error ( EINFO_ENETRESET ) 485 #define EINFO_ENETRESET __einfo ( PLATFORM_ENETRESET, 0x27, 0, \ 486 "Connection aborted by network" ) 489 #define ENETUNREACH __einfo_error ( EINFO_ENETUNREACH ) 490 #define EINFO_ENETUNREACH __einfo ( PLATFORM_ENETUNREACH, 0x28, 0, \ 491 "Network unreachable" ) 494 #define ENFILE __einfo_error ( EINFO_ENFILE ) 495 #define EINFO_ENFILE __einfo ( PLATFORM_ENFILE, 0x29, 0, \ 496 "Too many open files in system" ) 499 #define ENOBUFS __einfo_error ( EINFO_ENOBUFS ) 500 #define EINFO_ENOBUFS __einfo ( PLATFORM_ENOBUFS, 0x2a, 0, \ 501 "No buffer space available" ) 504 #define ENODATA __einfo_error ( EINFO_ENODATA ) 505 #define EINFO_ENODATA __einfo ( PLATFORM_ENODATA, 0x2b, 0, \ 506 "No message is available on the STREAM " \ 510 #define ENODEV __einfo_error ( EINFO_ENODEV ) 511 #define EINFO_ENODEV __einfo ( PLATFORM_ENODEV, 0x2c, 0, \ 515 #define ENOENT __einfo_error ( EINFO_ENOENT ) 516 #define EINFO_ENOENT __einfo ( PLATFORM_ENOENT, 0x2d, 0, \ 517 "No such file or directory" ) 520 #define ENOEXEC __einfo_error ( EINFO_ENOEXEC ) 521 #define EINFO_ENOEXEC __einfo ( PLATFORM_ENOEXEC, 0x2e, 0, \ 522 "Exec format error" ) 525 #define ENOLCK __einfo_error ( EINFO_ENOLCK ) 526 #define EINFO_ENOLCK __einfo ( PLATFORM_ENOLCK, 0x2f, 0, \ 527 "No locks available" ) 530 #define ENOLINK __einfo_error ( EINFO_ENOLINK ) 531 #define EINFO_ENOLINK __einfo ( PLATFORM_ENOLINK, 0x30, 0, \ 532 "Link has been severed" ) 535 #define ENOMEM __einfo_error ( EINFO_ENOMEM ) 536 #define EINFO_ENOMEM __einfo ( PLATFORM_ENOMEM, 0x31, 0, \ 540 #define ENOMSG __einfo_error ( EINFO_ENOMSG ) 541 #define EINFO_ENOMSG __einfo ( PLATFORM_ENOMSG, 0x32, 0, \ 542 "No message of the desired type" ) 545 #define ENOPROTOOPT __einfo_error ( EINFO_ENOPROTOOPT ) 546 #define EINFO_ENOPROTOOPT __einfo ( PLATFORM_ENOPROTOOPT, 0x33, 0, \ 547 "Protocol not available" ) 550 #define ENOSPC __einfo_error ( EINFO_ENOSPC ) 551 #define EINFO_ENOSPC __einfo ( PLATFORM_ENOSPC, 0x34, 0, \ 552 "No space left on device" ) 555 #define ENOSR __einfo_error ( EINFO_ENOSR ) 556 #define EINFO_ENOSR __einfo ( PLATFORM_ENOSR, 0x35, 0, \ 557 "No STREAM resources" ) 560 #define ENOSTR __einfo_error ( EINFO_ENOSTR ) 561 #define EINFO_ENOSTR __einfo ( PLATFORM_ENOSTR, 0x36, 0, \ 565 #define ENOSYS __einfo_error ( EINFO_ENOSYS ) 566 #define EINFO_ENOSYS __einfo ( PLATFORM_ENOSYS, 0x37, 0, \ 567 "Function not implemented" ) 570 #define ENOTCONN __einfo_error ( EINFO_ENOTCONN ) 571 #define EINFO_ENOTCONN __einfo ( PLATFORM_ENOTCONN, 0x38, 0, \ 572 "The socket is not connected" ) 575 #define ENOTDIR __einfo_error ( EINFO_ENOTDIR ) 576 #define EINFO_ENOTDIR __einfo ( PLATFORM_ENOTDIR, 0x39, 0, \ 580 #define ENOTEMPTY __einfo_error ( EINFO_ENOTEMPTY ) 581 #define EINFO_ENOTEMPTY __einfo ( PLATFORM_ENOTEMPTY, 0x3a, 0, \ 582 "Directory not empty" ) 585 #define ENOTSOCK __einfo_error ( EINFO_ENOTSOCK ) 586 #define EINFO_ENOTSOCK __einfo ( PLATFORM_ENOTSOCK, 0x3b, 0, \ 590 #define ENOTSUP __einfo_error ( EINFO_ENOTSUP ) 591 #define EINFO_ENOTSUP __einfo ( PLATFORM_ENOTSUP, 0x3c, 0, \ 592 "Operation not supported" ) 595 #define ENOTTY __einfo_error ( EINFO_ENOTTY ) 596 #define EINFO_ENOTTY __einfo ( PLATFORM_ENOTTY, 0x3d, 0, \ 597 "Inappropriate I/O control operation" ) 600 #define ENXIO __einfo_error ( EINFO_ENXIO ) 601 #define EINFO_ENXIO __einfo ( PLATFORM_ENXIO, 0x3e, 0, \ 602 "No such device or address" ) 605 #define EOPNOTSUPP __einfo_error ( EINFO_EOPNOTSUPP ) 606 #define EINFO_EOPNOTSUPP __einfo ( PLATFORM_EOPNOTSUPP, 0x3f, 0, \ 607 "Operation not supported on socket" ) 610 #define EOVERFLOW __einfo_error ( EINFO_EOVERFLOW ) 611 #define EINFO_EOVERFLOW __einfo ( PLATFORM_EOVERFLOW, 0x40, 0, \ 612 "Value too large to be stored in data type" ) 615 #define EPERM __einfo_error ( EINFO_EPERM ) 616 #define EINFO_EPERM __einfo ( PLATFORM_EPERM, 0x41, 0, \ 617 "Operation not permitted" ) 620 #define EPIPE __einfo_error ( EINFO_EPIPE ) 621 #define EINFO_EPIPE __einfo ( PLATFORM_EPIPE, 0x42, 0, \ 625 #define EPROTO __einfo_error ( EINFO_EPROTO ) 626 #define EINFO_EPROTO __einfo ( PLATFORM_EPROTO, 0x43, 0, \ 630 #define EPROTONOSUPPORT __einfo_error ( EINFO_EPROTONOSUPPORT ) 631 #define EINFO_EPROTONOSUPPORT __einfo ( PLATFORM_EPROTONOSUPPORT, 0x44, 0, \ 632 "Protocol not supported" ) 635 #define EPROTOTYPE __einfo_error ( EINFO_EPROTOTYPE ) 636 #define EINFO_EPROTOTYPE __einfo ( PLATFORM_EPROTOTYPE, 0x45, 0, \ 637 "Protocol wrong type for socket" ) 640 #define ERANGE __einfo_error ( EINFO_ERANGE ) 641 #define EINFO_ERANGE __einfo ( PLATFORM_ERANGE, 0x46, 0, \ 645 #define EROFS __einfo_error ( EINFO_EROFS ) 646 #define EINFO_EROFS __einfo ( PLATFORM_EROFS, 0x47, 0, \ 647 "Read-only file system" ) 650 #define ESPIPE __einfo_error ( EINFO_ESPIPE ) 651 #define EINFO_ESPIPE __einfo ( PLATFORM_ESPIPE, 0x48, 0, \ 655 #define ESRCH __einfo_error ( EINFO_ESRCH ) 656 #define EINFO_ESRCH __einfo ( PLATFORM_ESRCH, 0x49, 0, \ 660 #define ESTALE __einfo_error ( EINFO_ESTALE ) 661 #define EINFO_ESTALE __einfo ( PLATFORM_ESTALE, 0x4a, 0, \ 662 "Stale file handle" ) 665 #define ETIME __einfo_error ( EINFO_ETIME ) 666 #define EINFO_ETIME __einfo ( PLATFORM_ETIME, 0x4b, 0, \ 670 #define ETIMEDOUT __einfo_error ( EINFO_ETIMEDOUT ) 671 #define EINFO_ETIMEDOUT __einfo ( PLATFORM_ETIMEDOUT, 0x4c, 0, \ 672 "Connection timed out" ) 675 #define ETXTBSY __einfo_error ( EINFO_ETXTBSY ) 676 #define EINFO_ETXTBSY __einfo ( PLATFORM_ETXTBSY, 0x4d, 0, \ 680 #define EWOULDBLOCK __einfo_error ( EINFO_EWOULDBLOCK ) 681 #define EINFO_EWOULDBLOCK __einfo ( PLATFORM_EWOULDBLOCK, 0x4e, 0, \ 682 "Operation would block" ) 685 #define EXDEV __einfo_error ( EINFO_EXDEV ) 686 #define EINFO_EXDEV __einfo ( PLATFORM_EXDEV, 0x4f, 0, \ 692 #define EINFO_EPLATFORM __einfo ( 0, 0x7f, 0, "Platform-generated error" ) int errno
Global "last error" number.
#define __unused
Declare a variable or data structure as unused.
char missing_errfile_declaration [] __attribute__((deprecated))
FILE_LICENCE(GPL2_OR_LATER_OR_UBDL)
static void eplatform_discard(int dummy __unused,...)
static void euniq_discard(int dummy __unused,...)