libexplain
1.4.D001
|
00001 /* 00002 * libexplain - Explain errno values returned by libc functions 00003 * Copyright (C) 2008-2010, 2013 Peter Miller 00004 * Written by Peter Miller <pmiller@opensource.org.au> 00005 * 00006 * This program is free software; you can redistribute it and/or modify 00007 * it under the terms of the GNU Lesser General Public License as published by 00008 * the Free Software Foundation; either version 3 of the License, or (at 00009 * your option) any later version. 00010 * 00011 * This program is distributed in the hope that it will be useful, 00012 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00013 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00014 * Lesser General Public License for more details. 00015 * 00016 * You should have received a copy of the GNU Lesser General Public License 00017 * along with this program. If not, see <http://www.gnu.org/licenses/>. 00018 */ 00019 00020 #include <libexplain/ac/errno.h> 00021 00022 #include <libexplain/errno_info/table.h> 00023 #include <libexplain/sizeof.h> 00024 00025 00026 const explain_errno_info_t explain_errno_info[] = 00027 { 00028 #ifdef EPERM 00029 { 00030 EPERM, 00031 "EPERM", 00032 "Operation not permitted" 00033 }, 00034 #endif 00035 #ifdef ENOENT 00036 { 00037 ENOENT, 00038 "ENOENT", 00039 "No such file or directory" 00040 }, 00041 #endif 00042 #ifdef ESRCH 00043 { 00044 ESRCH, 00045 "ESRCH", 00046 "No such process" 00047 }, 00048 #endif 00049 #ifdef EINTR 00050 { 00051 EINTR, 00052 "EINTR", 00053 "Interrupted system call" 00054 }, 00055 #endif 00056 #ifdef EIO 00057 { 00058 EIO, 00059 "EIO", 00060 "Input/output error" 00061 }, 00062 #endif 00063 #ifdef ENXIO 00064 { 00065 ENXIO, 00066 "ENXIO", 00067 "No such device or address" 00068 }, 00069 #endif 00070 #ifdef E2BIG 00071 { 00072 E2BIG, 00073 "E2BIG", 00074 "Argument list too long" 00075 }, 00076 #endif 00077 #ifdef ENOEXEC 00078 { 00079 ENOEXEC, 00080 "ENOEXEC", 00081 "Exec format error" 00082 }, 00083 #endif 00084 #ifdef EBADF 00085 { 00086 EBADF, 00087 "EBADF", 00088 "Bad file descriptor" 00089 }, 00090 #endif 00091 #ifdef ECHILD 00092 { 00093 ECHILD, 00094 "ECHILD", 00095 "No child processes" 00096 }, 00097 #endif 00098 #ifdef EAGAIN 00099 { 00100 EAGAIN, 00101 "EAGAIN", 00102 "Resource temporarily unavailable" 00103 }, 00104 #endif 00105 #ifdef ENOMEM 00106 { 00107 ENOMEM, 00108 "ENOMEM", 00109 "Cannot allocate memory" 00110 }, 00111 #endif 00112 #ifdef EACCES 00113 { 00114 EACCES, 00115 "EACCES", 00116 "Permission denied" 00117 }, 00118 #endif 00119 #ifdef EFAULT 00120 { 00121 EFAULT, 00122 "EFAULT", 00123 "Bad address" 00124 }, 00125 #endif 00126 #ifdef ENOTBLK 00127 { 00128 ENOTBLK, 00129 "ENOTBLK", 00130 "Block device required" 00131 }, 00132 #endif 00133 #ifdef EBUSY 00134 { 00135 EBUSY, 00136 "EBUSY", 00137 "Device or resource busy" 00138 }, 00139 #endif 00140 #ifdef EEXIST 00141 { 00142 EEXIST, 00143 "EEXIST", 00144 "File exists" 00145 }, 00146 #endif 00147 #ifdef EXDEV 00148 { 00149 EXDEV, 00150 "EXDEV", 00151 "Invalid cross-device link" 00152 }, 00153 #endif 00154 #ifdef ENODEV 00155 { 00156 ENODEV, 00157 "ENODEV", 00158 "No such device" 00159 }, 00160 #endif 00161 #ifdef ENOTDIR 00162 { 00163 ENOTDIR, 00164 "ENOTDIR", 00165 "Not a directory" 00166 }, 00167 #endif 00168 #ifdef EISDIR 00169 { 00170 EISDIR, 00171 "EISDIR", 00172 "Is a directory" 00173 }, 00174 #endif 00175 #ifdef EINVAL 00176 { 00177 EINVAL, 00178 "EINVAL", 00179 "Invalid argument" 00180 }, 00181 #endif 00182 #ifdef ENFILE 00183 { 00184 ENFILE, 00185 "ENFILE", 00186 "Too many open files in system" 00187 }, 00188 #endif 00189 #ifdef EMFILE 00190 { 00191 EMFILE, 00192 "EMFILE", 00193 "Too many open files" 00194 }, 00195 #endif 00196 #ifdef ENOTTY 00197 { 00198 ENOTTY, 00199 "ENOTTY", 00200 "Inappropriate ioctl for device" 00201 }, 00202 #endif 00203 #ifdef ETXTBSY 00204 { 00205 ETXTBSY, 00206 "ETXTBSY", 00207 "Text file busy" 00208 }, 00209 #endif 00210 #ifdef EFBIG 00211 { 00212 EFBIG, 00213 "EFBIG", 00214 "File too large" 00215 }, 00216 #endif 00217 #ifdef ENOSPC 00218 { 00219 ENOSPC, 00220 "ENOSPC", 00221 "No space left on device" 00222 }, 00223 #endif 00224 #ifdef ESPIPE 00225 { 00226 ESPIPE, 00227 "ESPIPE", 00228 "Illegal seek" 00229 }, 00230 #endif 00231 #ifdef EROFS 00232 { 00233 EROFS, 00234 "EROFS", 00235 "Read-only file system" 00236 }, 00237 #endif 00238 #ifdef EMLINK 00239 { 00240 EMLINK, 00241 "EMLINK", 00242 "Too many links" 00243 }, 00244 #endif 00245 #ifdef EPIPE 00246 { 00247 EPIPE, 00248 "EPIPE", 00249 "Broken pipe" 00250 }, 00251 #endif 00252 #ifdef EDOM 00253 { 00254 EDOM, 00255 "EDOM", 00256 "Numerical argument out of domain" 00257 }, 00258 #endif 00259 #ifdef ERANGE 00260 { 00261 ERANGE, 00262 "ERANGE", 00263 "Numerical result out of range" 00264 }, 00265 #endif 00266 #ifdef EDEADLK 00267 { 00268 EDEADLK, 00269 "EDEADLK", 00270 "Resource deadlock avoided" 00271 }, 00272 #endif 00273 #ifdef EDEADLOCK 00274 { 00275 EDEADLOCK, 00276 "EDEADLOCK", 00277 "Resource deadlock avoided" 00278 }, 00279 #endif 00280 #ifdef ENAMETOOLONG 00281 { 00282 ENAMETOOLONG, 00283 "ENAMETOOLONG", 00284 "File name too long" 00285 }, 00286 #endif 00287 #ifdef ENOLCK 00288 { 00289 ENOLCK, 00290 "ENOLCK", 00291 "No locks available" 00292 }, 00293 #endif 00294 #ifdef ENOSYS 00295 { 00296 ENOSYS, 00297 "ENOSYS", 00298 "Function not implemented" 00299 }, 00300 #endif 00301 #ifdef ENOTEMPTY 00302 { 00303 ENOTEMPTY, 00304 "ENOTEMPTY", 00305 "Directory not empty" 00306 }, 00307 #endif 00308 #ifdef ELOOP 00309 { 00310 ELOOP, 00311 "ELOOP", 00312 "Too many levels of symbolic links" 00313 }, 00314 #endif 00315 #ifdef EWOULDBLOCK 00316 { 00317 EWOULDBLOCK, 00318 "EWOULDBLOCK", 00319 "Resource temporarily unavailable" 00320 }, 00321 #endif 00322 #ifdef ENOMSG 00323 { 00324 ENOMSG, 00325 "ENOMSG", 00326 "No message of desired type" 00327 }, 00328 #endif 00329 #ifdef EIDRM 00330 { 00331 EIDRM, 00332 "EIDRM", 00333 "Identifier removed" 00334 }, 00335 #endif 00336 #ifdef ECHRNG 00337 { 00338 ECHRNG, 00339 "ECHRNG", 00340 "Channel number out of range" 00341 }, 00342 #endif 00343 #ifdef EL2NSYNC 00344 { 00345 EL2NSYNC, 00346 "EL2NSYNC", 00347 "Level 2 not synchronized" 00348 }, 00349 #endif 00350 #ifdef EL3HLT 00351 { 00352 EL3HLT, 00353 "EL3HLT", 00354 "Level 3 halted" 00355 }, 00356 #endif 00357 #ifdef EL3RST 00358 { 00359 EL3RST, 00360 "EL3RST", 00361 "Level 3 reset" 00362 }, 00363 #endif 00364 #ifdef ELNRNG 00365 { 00366 ELNRNG, 00367 "ELNRNG", 00368 "Link number out of range" 00369 }, 00370 #endif 00371 #ifdef EUNATCH 00372 { 00373 EUNATCH, 00374 "EUNATCH", 00375 "Protocol driver not attached" 00376 }, 00377 #endif 00378 #ifdef ENOCSI 00379 { 00380 ENOCSI, 00381 "ENOCSI", 00382 "No CSI structure available" 00383 }, 00384 #endif 00385 #ifdef EL2HLT 00386 { 00387 EL2HLT, 00388 "EL2HLT", 00389 "Level 2 halted" 00390 }, 00391 #endif 00392 #ifdef EBADE 00393 { 00394 EBADE, 00395 "EBADE", 00396 "Invalid exchange" 00397 }, 00398 #endif 00399 #ifdef EBADR 00400 { 00401 EBADR, 00402 "EBADR", 00403 "Invalid request descriptor" 00404 }, 00405 #endif 00406 #ifdef EXFULL 00407 { 00408 EXFULL, 00409 "EXFULL", 00410 "Exchange full" 00411 }, 00412 #endif 00413 #ifdef ENOANO 00414 { 00415 ENOANO, 00416 "ENOANO", 00417 "No anode" 00418 }, 00419 #endif 00420 #ifdef EBADRQC 00421 { 00422 EBADRQC, 00423 "EBADRQC", 00424 "Invalid request code" 00425 }, 00426 #endif 00427 #ifdef EBADSLT 00428 { 00429 EBADSLT, 00430 "EBADSLT", 00431 "Invalid slot" 00432 }, 00433 #endif 00434 #ifdef EBFONT 00435 { 00436 EBFONT, 00437 "EBFONT", 00438 "Bad font file format" 00439 }, 00440 #endif 00441 #ifdef ENOSTR 00442 { 00443 ENOSTR, 00444 "ENOSTR", 00445 "Device not a stream" 00446 }, 00447 #endif 00448 #ifdef ENODATA 00449 { 00450 ENODATA, 00451 "ENODATA", 00452 "No data available" 00453 }, 00454 #endif 00455 #ifdef ETIME 00456 { 00457 ETIME, 00458 "ETIME", 00459 "Timer expired" 00460 }, 00461 #endif 00462 #ifdef ENOSR 00463 { 00464 ENOSR, 00465 "ENOSR", 00466 "Out of streams resources" 00467 }, 00468 #endif 00469 #ifdef ENONET 00470 { 00471 ENONET, 00472 "ENONET", 00473 "Machine is not on the network" 00474 }, 00475 #endif 00476 #ifdef ENOPKG 00477 { 00478 ENOPKG, 00479 "ENOPKG", 00480 "Package not installed" 00481 }, 00482 #endif 00483 #ifdef EREMOTE 00484 { 00485 EREMOTE, 00486 "EREMOTE", 00487 "Object is remote" 00488 }, 00489 #endif 00490 #ifdef ENOLINK 00491 { 00492 ENOLINK, 00493 "ENOLINK", 00494 "Link has been severed" 00495 }, 00496 #endif 00497 #ifdef EADV 00498 { 00499 EADV, 00500 "EADV", 00501 "Advertise error" 00502 }, 00503 #endif 00504 #ifdef ESRMNT 00505 { 00506 ESRMNT, 00507 "ESRMNT", 00508 "Srmount error" 00509 }, 00510 #endif 00511 #ifdef ECOMM 00512 { 00513 ECOMM, 00514 "ECOMM", 00515 "Communication error on send" 00516 }, 00517 #endif 00518 #ifdef EPROTO 00519 { 00520 EPROTO, 00521 "EPROTO", 00522 "Protocol error" 00523 }, 00524 #endif 00525 #ifdef EMULTIHOP 00526 { 00527 EMULTIHOP, 00528 "EMULTIHOP", 00529 "Multihop attempted" 00530 }, 00531 #endif 00532 #ifdef EDOTDOT 00533 { 00534 EDOTDOT, 00535 "EDOTDOT", 00536 "RFS specific error" 00537 }, 00538 #endif 00539 #ifdef EBADMSG 00540 { 00541 EBADMSG, 00542 "EBADMSG", 00543 "Bad message" 00544 }, 00545 #endif 00546 #ifdef EOVERFLOW 00547 { 00548 EOVERFLOW, 00549 "EOVERFLOW", 00550 "Value too large for defined data type" 00551 }, 00552 #endif 00553 #ifdef ENOTUNIQ 00554 { 00555 ENOTUNIQ, 00556 "ENOTUNIQ", 00557 "Name not unique on network" 00558 }, 00559 #endif 00560 #ifdef EBADFD 00561 { 00562 EBADFD, 00563 "EBADFD", 00564 "File descriptor in bad state" 00565 }, 00566 #endif 00567 #ifdef EREMCHG 00568 { 00569 EREMCHG, 00570 "EREMCHG", 00571 "Remote address changed" 00572 }, 00573 #endif 00574 #ifdef ELIBACC 00575 { 00576 ELIBACC, 00577 "ELIBACC", 00578 "Can not access a needed shared library" 00579 }, 00580 #endif 00581 #ifdef ELIBBAD 00582 { 00583 ELIBBAD, 00584 "ELIBBAD", 00585 "Accessing a corrupted shared library" 00586 }, 00587 #endif 00588 #ifdef ELIBSCN 00589 { 00590 ELIBSCN, 00591 "ELIBSCN", 00592 ".lib section in a.out corrupted" 00593 }, 00594 #endif 00595 #ifdef ELIBMAX 00596 { 00597 ELIBMAX, 00598 "ELIBMAX", 00599 "Attempting to link in too many shared libraries" 00600 }, 00601 #endif 00602 #ifdef ELIBEXEC 00603 { 00604 ELIBEXEC, 00605 "ELIBEXEC", 00606 "Cannot exec a shared library directly" 00607 }, 00608 #endif 00609 #ifdef EILSEQ 00610 { 00611 EILSEQ, 00612 "EILSEQ", 00613 "Invalid or incomplete multibyte or wide character" 00614 }, 00615 #endif 00616 #ifdef ERESTART 00617 { 00618 ERESTART, 00619 "ERESTART", 00620 "Interrupted system call should be restarted" 00621 }, 00622 #endif 00623 #ifdef ESTRPIPE 00624 { 00625 ESTRPIPE, 00626 "ESTRPIPE", 00627 "Streams pipe error" 00628 }, 00629 #endif 00630 #ifdef EUSERS 00631 { 00632 EUSERS, 00633 "EUSERS", 00634 "Too many users" 00635 }, 00636 #endif 00637 #ifdef ENOTSOCK 00638 { 00639 ENOTSOCK, 00640 "ENOTSOCK", 00641 "Socket operation on non-socket" 00642 }, 00643 #endif 00644 #ifdef EDESTADDRREQ 00645 { 00646 EDESTADDRREQ, 00647 "EDESTADDRREQ", 00648 "Destination address required" 00649 }, 00650 #endif 00651 #ifdef EMSGSIZE 00652 { 00653 EMSGSIZE, 00654 "EMSGSIZE", 00655 "Message too long" 00656 }, 00657 #endif 00658 #ifdef EPROTOTYPE 00659 { 00660 EPROTOTYPE, 00661 "EPROTOTYPE", 00662 "Protocol wrong type for socket" 00663 }, 00664 #endif 00665 #ifdef ENOPROTOOPT 00666 { 00667 ENOPROTOOPT, 00668 "ENOPROTOOPT", 00669 "Protocol not available" 00670 }, 00671 #endif 00672 #ifdef EPROTONOSUPPORT 00673 { 00674 EPROTONOSUPPORT, 00675 "EPROTONOSUPPORT", 00676 "Protocol not supported" 00677 }, 00678 #endif 00679 #ifdef ESOCKTNOSUPPORT 00680 { 00681 ESOCKTNOSUPPORT, 00682 "ESOCKTNOSUPPORT", 00683 "Socket type not supported" 00684 }, 00685 #endif 00686 #ifdef EOPNOTSUPP 00687 { 00688 EOPNOTSUPP, 00689 "EOPNOTSUPP", 00690 "Operation not supported" 00691 }, 00692 #endif 00693 #ifdef EPFNOSUPPORT 00694 { 00695 EPFNOSUPPORT, 00696 "EPFNOSUPPORT", 00697 "Protocol family not supported" 00698 }, 00699 #endif 00700 #ifdef EAFNOSUPPORT 00701 { 00702 EAFNOSUPPORT, 00703 "EAFNOSUPPORT", 00704 "Address family not supported by protocol" 00705 }, 00706 #endif 00707 #ifdef EADDRINUSE 00708 { 00709 EADDRINUSE, 00710 "EADDRINUSE", 00711 "Address already in use" 00712 }, 00713 #endif 00714 #ifdef EADDRNOTAVAIL 00715 { 00716 EADDRNOTAVAIL, 00717 "EADDRNOTAVAIL", 00718 "Cannot assign requested address" 00719 }, 00720 #endif 00721 #ifdef ENETDOWN 00722 { 00723 ENETDOWN, 00724 "ENETDOWN", 00725 "Network is down" 00726 }, 00727 #endif 00728 #ifdef ENETUNREACH 00729 { 00730 ENETUNREACH, 00731 "ENETUNREACH", 00732 "Network is unreachable" 00733 }, 00734 #endif 00735 #ifdef ENETRESET 00736 { 00737 ENETRESET, 00738 "ENETRESET", 00739 "Network dropped connection on reset" 00740 }, 00741 #endif 00742 #ifdef ECONNABORTED 00743 { 00744 ECONNABORTED, 00745 "ECONNABORTED", 00746 "Software caused connection abort" 00747 }, 00748 #endif 00749 #ifdef ECONNRESET 00750 { 00751 ECONNRESET, 00752 "ECONNRESET", 00753 "Connection reset by peer" 00754 }, 00755 #endif 00756 #ifdef ENOBUFS 00757 { 00758 ENOBUFS, 00759 "ENOBUFS", 00760 "No buffer space available" 00761 }, 00762 #endif 00763 #ifdef EISCONN 00764 { 00765 EISCONN, 00766 "EISCONN", 00767 "Transport endpoint is already connected" 00768 }, 00769 #endif 00770 #ifdef ENOTCONN 00771 { 00772 ENOTCONN, 00773 "ENOTCONN", 00774 "Transport endpoint is not connected" 00775 }, 00776 #endif 00777 #ifdef ESHUTDOWN 00778 { 00779 ESHUTDOWN, 00780 "ESHUTDOWN", 00781 "Cannot send after transport endpoint shutdown" 00782 }, 00783 #endif 00784 #ifdef ETOOMANYREFS 00785 { 00786 ETOOMANYREFS, 00787 "ETOOMANYREFS", 00788 "Too many references: cannot splice" 00789 }, 00790 #endif 00791 #ifdef ETIMEDOUT 00792 { 00793 ETIMEDOUT, 00794 "ETIMEDOUT", 00795 "Connection timed out" 00796 }, 00797 #endif 00798 #ifdef ECONNREFUSED 00799 { 00800 ECONNREFUSED, 00801 "ECONNREFUSED", 00802 "Connection refused" 00803 }, 00804 #endif 00805 #ifdef EHOSTDOWN 00806 { 00807 EHOSTDOWN, 00808 "EHOSTDOWN", 00809 "Host is down" 00810 }, 00811 #endif 00812 #ifdef EHOSTUNREACH 00813 { 00814 EHOSTUNREACH, 00815 "EHOSTUNREACH", 00816 "No route to host" 00817 }, 00818 #endif 00819 #ifdef EALREADY 00820 { 00821 EALREADY, 00822 "EALREADY", 00823 "Operation already in progress" 00824 }, 00825 #endif 00826 #ifdef EINPROGRESS 00827 { 00828 EINPROGRESS, 00829 "EINPROGRESS", 00830 "Operation now in progress" 00831 }, 00832 #endif 00833 #ifdef ESTALE 00834 { 00835 ESTALE, 00836 "ESTALE", 00837 "Stale NFS file handle" 00838 }, 00839 #endif 00840 #ifdef EUCLEAN 00841 { 00842 EUCLEAN, 00843 "EUCLEAN", 00844 "Structure needs cleaning" 00845 }, 00846 #endif 00847 #ifdef ENOTNAM 00848 { 00849 ENOTNAM, 00850 "ENOTNAM", 00851 "Not a XENIX named type file" 00852 }, 00853 #endif 00854 #ifdef ENAVAIL 00855 { 00856 ENAVAIL, 00857 "ENAVAIL", 00858 "No XENIX semaphores available" 00859 }, 00860 #endif 00861 #ifdef EISNAM 00862 { 00863 EISNAM, 00864 "EISNAM", 00865 "Is a named type file" 00866 }, 00867 #endif 00868 #ifdef EREMOTEIO 00869 { 00870 EREMOTEIO, 00871 "EREMOTEIO", 00872 "Remote I/O error" 00873 }, 00874 #endif 00875 #ifdef EDQUOT 00876 { 00877 EDQUOT, 00878 "EDQUOT", 00879 "Disk quota exceeded" 00880 }, 00881 #endif 00882 #ifdef ENOMEDIUM 00883 { 00884 ENOMEDIUM, 00885 "ENOMEDIUM", 00886 "No medium found" 00887 }, 00888 #endif 00889 #ifdef EMEDIUMTYPE 00890 { 00891 EMEDIUMTYPE, 00892 "EMEDIUMTYPE", 00893 "Wrong medium type" 00894 }, 00895 #endif 00896 #ifdef ECANCELED 00897 { 00898 ECANCELED, 00899 "ECANCELED", 00900 "Operation canceled" 00901 }, 00902 #endif 00903 #ifdef ENOKEY 00904 { 00905 ENOKEY, 00906 "ENOKEY", 00907 "Required key not available" 00908 }, 00909 #endif 00910 #ifdef EKEYEXPIRED 00911 { 00912 EKEYEXPIRED, 00913 "EKEYEXPIRED", 00914 "Key has expired" 00915 }, 00916 #endif 00917 #ifdef EKEYREVOKED 00918 { 00919 EKEYREVOKED, 00920 "EKEYREVOKED", 00921 "Key has been revoked" 00922 }, 00923 #endif 00924 #ifdef EKEYREJECTED 00925 { 00926 EKEYREJECTED, 00927 "EKEYREJECTED", 00928 "Key was rejected by service" 00929 }, 00930 #endif 00931 #ifdef EOWNERDEAD 00932 { 00933 EOWNERDEAD, 00934 "EOWNERDEAD", 00935 "Owner died" 00936 }, 00937 #endif 00938 #ifdef ENOTRECOVERABLE 00939 { 00940 ENOTRECOVERABLE, 00941 "ENOTRECOVERABLE", 00942 "State not recoverable" 00943 }, 00944 #endif 00945 #ifdef ELIBAD 00946 { ELIBAD, "ELIBAD", 0 }, /* FreeBSD */ 00947 #endif 00948 #ifdef EAUTH 00949 { EAUTH, "EAUTH", 0 }, /* FreeBSD */ 00950 #endif 00951 #ifdef EBADRPC 00952 { EBADRPC, "EBADRPC", 0 }, /* FreeBSD */ 00953 #endif 00954 #ifdef EDIRIOCTL 00955 { EDIRIOCTL, "EDIRIOCTL", 0 }, /* pseudo, FreeBSD */ 00956 #endif 00957 #ifdef EDOOFUS 00958 { EDOOFUS, "EDOOFUS", 0 }, /* FreeBSD */ 00959 #endif 00960 #ifdef EFTYPE 00961 { EFTYPE, "EFTYPE", 0 }, /* FreeBSD */ 00962 #endif 00963 #ifdef EJUSTRETURN 00964 { EJUSTRETURN, "EJUSTRETURN", 0 }, /* pseudo, FreeBSD */ 00965 #endif 00966 #ifdef ENEEDAUTH 00967 { ENEEDAUTH, "ENEEDAUTH", 0 }, /* FreeBSD */ 00968 #endif 00969 #ifdef ENOATTR 00970 { ENOATTR, "ENOATTR", 0 }, /* FreeBSD */ 00971 #endif 00972 #ifdef ENOIOCTL 00973 { ENOIOCTL, "ENOIOCTL", 0 }, /* pseudo, FreeBSD */ 00974 #endif 00975 #ifdef EPROCLIM 00976 { EPROCLIM, "EPROCLIM", 0 }, /* FreeBSD */ 00977 #endif 00978 #ifdef EPROCUNAVAIL 00979 { EPROCUNAVAIL, "EPROCUNAVAIL", 0 }, /* FreeBSD */ 00980 #endif 00981 #ifdef EPROGMISMATCH 00982 { EPROGMISMATCH, "EPROGMISMATCH", 0 }, /* FreeBSD */ 00983 #endif 00984 #ifdef EPROGUNAVAIL 00985 { EPROGUNAVAIL, "EPROGUNAVAIL", 0 }, /* FreeBSD */ 00986 #endif 00987 #ifdef ERPCMISMATCH 00988 { ERPCMISMATCH, "ERPCMISMATCH", 0 }, /* FreeBSD */ 00989 #endif 00990 #ifdef ENOTSUP 00991 { 00992 ENOTSUP, 00993 "ENOTSUP", 00994 "Operation not supported" 00995 }, 00996 #endif 00997 #ifdef ELAST 00998 { ELAST, "ELAST", 0 }, /* FreeBSD: "must be equal to largest errno" */ 00999 #endif 01000 }; 01001 01002 const size_t explain_errno_info_size = SIZEOF(explain_errno_info); 01003 01004 01005 /* vim: set ts=8 sw=4 et : */