#include #include #include #define ERRNO_EQ(ERR) \ do { \ if (0 == strcmp(err, #ERR)) { \ return ERR; \ } \ } while (0) int assert_errno_eq(const char* err) { ERRNO_EQ(EPERM); ERRNO_EQ(ENOENT); ERRNO_EQ(ESRCH); ERRNO_EQ(EINTR); ERRNO_EQ(EIO); ERRNO_EQ(ENXIO); ERRNO_EQ(E2BIG); ERRNO_EQ(ENOEXEC); ERRNO_EQ(EBADF); ERRNO_EQ(ECHILD); ERRNO_EQ(EAGAIN); ERRNO_EQ(ENOMEM); ERRNO_EQ(EACCES); ERRNO_EQ(EFAULT); ERRNO_EQ(ENOTBLK); ERRNO_EQ(EBUSY); ERRNO_EQ(EEXIST); ERRNO_EQ(EXDEV); ERRNO_EQ(ENODEV); ERRNO_EQ(ENOTDIR); ERRNO_EQ(EISDIR); ERRNO_EQ(EINVAL); ERRNO_EQ(ENFILE); ERRNO_EQ(EMFILE); ERRNO_EQ(ENOTTY); ERRNO_EQ(ETXTBSY); ERRNO_EQ(EFBIG); ERRNO_EQ(ENOSPC); ERRNO_EQ(ESPIPE); ERRNO_EQ(EROFS); ERRNO_EQ(EMLINK); ERRNO_EQ(EPIPE); ERRNO_EQ(EDOM); ERRNO_EQ(ERANGE); ERRNO_EQ(EDEADLK); ERRNO_EQ(ENAMETOOLONG); ERRNO_EQ(ENOLCK); ERRNO_EQ(ENOSYS); ERRNO_EQ(ENOTEMPTY); ERRNO_EQ(ELOOP); ERRNO_EQ(ENOMSG); ERRNO_EQ(EIDRM); ERRNO_EQ(EINPROGRESS); ERRNO_EQ(EALREADY); ERRNO_EQ(ENOTSOCK); ERRNO_EQ(EDESTADDRREQ); ERRNO_EQ(EMSGSIZE); ERRNO_EQ(EPROTOTYPE); ERRNO_EQ(ENOPROTOOPT); ERRNO_EQ(EPROTONOSUPPORT); ERRNO_EQ(ESOCKTNOSUPPORT); ERRNO_EQ(EPFNOSUPPORT); ERRNO_EQ(EAFNOSUPPORT); ERRNO_EQ(EADDRINUSE); ERRNO_EQ(EADDRNOTAVAIL); ERRNO_EQ(ENETDOWN); ERRNO_EQ(ENETUNREACH); ERRNO_EQ(ENETRESET); ERRNO_EQ(ECONNABORTED); ERRNO_EQ(ECONNRESET); ERRNO_EQ(ENOBUFS); ERRNO_EQ(EISCONN); ERRNO_EQ(ENOTCONN); ERRNO_EQ(ESHUTDOWN); ERRNO_EQ(ETOOMANYREFS); ERRNO_EQ(ETIMEDOUT); ERRNO_EQ(ECONNREFUSED); ERRNO_EQ(EHOSTDOWN); ERRNO_EQ(EHOSTUNREACH); #ifdef LINUX ERRNO_EQ(ECHRNG); ERRNO_EQ(EL2NSYNC); ERRNO_EQ(EL3HLT); ERRNO_EQ(EL3RST); ERRNO_EQ(ELNRNG); ERRNO_EQ(EUNATCH); ERRNO_EQ(ENOCSI); ERRNO_EQ(EL2HLT); ERRNO_EQ(EBADE); ERRNO_EQ(EBADR); ERRNO_EQ(EXFULL); ERRNO_EQ(ENOANO); ERRNO_EQ(EBADRQC); ERRNO_EQ(EBADSLT); ERRNO_EQ(EBFONT); ERRNO_EQ(ENOSTR); ERRNO_EQ(ENODATA); ERRNO_EQ(ETIME); ERRNO_EQ(ENOSR); ERRNO_EQ(ENONET); ERRNO_EQ(ENOPKG); ERRNO_EQ(EREMOTE); ERRNO_EQ(ENOLINK); ERRNO_EQ(EADV); ERRNO_EQ(ESRMNT); ERRNO_EQ(ECOMM); ERRNO_EQ(EPROTO); ERRNO_EQ(EMULTIHOP); ERRNO_EQ(EDOTDOT); ERRNO_EQ(EBADMSG); ERRNO_EQ(EOVERFLOW); ERRNO_EQ(ENOTUNIQ); ERRNO_EQ(EBADFD); ERRNO_EQ(EREMCHG); ERRNO_EQ(ELIBACC); ERRNO_EQ(ELIBBAD); ERRNO_EQ(ELIBSCN); ERRNO_EQ(ELIBMAX); ERRNO_EQ(ELIBEXEC); ERRNO_EQ(EILSEQ); ERRNO_EQ(ERESTART); ERRNO_EQ(ESTRPIPE); ERRNO_EQ(EUSERS); ERRNO_EQ(EOPNOTSUPP); ERRNO_EQ(ESTALE); ERRNO_EQ(EUCLEAN); ERRNO_EQ(ENOTNAM); ERRNO_EQ(ENAVAIL); ERRNO_EQ(EISNAM); ERRNO_EQ(EREMOTEIO); ERRNO_EQ(EDQUOT); ERRNO_EQ(ENOMEDIUM); ERRNO_EQ(EMEDIUMTYPE); ERRNO_EQ(ECANCELED); ERRNO_EQ(ENOKEY); ERRNO_EQ(EKEYEXPIRED); ERRNO_EQ(EKEYREVOKED); ERRNO_EQ(EKEYREJECTED); ERRNO_EQ(EOWNERDEAD); ERRNO_EQ(ENOTRECOVERABLE); #ifndef __ANDROID__ ERRNO_EQ(ERFKILL); ERRNO_EQ(EHWPOISON); #endif #endif #ifdef DARWIN ERRNO_EQ(ENOTSUP); ERRNO_EQ(EPROCLIM); ERRNO_EQ(EUSERS); ERRNO_EQ(EDQUOT); ERRNO_EQ(ESTALE); ERRNO_EQ(EREMOTE); ERRNO_EQ(EBADRPC); ERRNO_EQ(ERPCMISMATCH); ERRNO_EQ(EPROGUNAVAIL); ERRNO_EQ(EPROGMISMATCH); ERRNO_EQ(EPROCUNAVAIL); ERRNO_EQ(EFTYPE); ERRNO_EQ(EAUTH); ERRNO_EQ(ENEEDAUTH); ERRNO_EQ(EPWROFF); ERRNO_EQ(EDEVERR); ERRNO_EQ(EOVERFLOW); ERRNO_EQ(EBADEXEC); ERRNO_EQ(EBADARCH); ERRNO_EQ(ESHLIBVERS); ERRNO_EQ(EBADMACHO); ERRNO_EQ(ECANCELED); ERRNO_EQ(EILSEQ); ERRNO_EQ(ENOATTR); ERRNO_EQ(EBADMSG); ERRNO_EQ(EMULTIHOP); ERRNO_EQ(ENODATA); ERRNO_EQ(ENOLINK); ERRNO_EQ(ENOSR); ERRNO_EQ(ENOSTR); ERRNO_EQ(EPROTO); ERRNO_EQ(ETIME); ERRNO_EQ(EOPNOTSUPP); ERRNO_EQ(ENOPOLICY); ERRNO_EQ(ENOTRECOVERABLE); ERRNO_EQ(EOWNERDEAD); ERRNO_EQ(EQFULL); #endif return 0; }