Cider Isn't Darwin Emulation, Really
Something went wrong. Try again.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111#include "errno.h"#include "base.h"#include "duct_errno.h"#include <stddef.h>
static const int linux_to_darwin[512] = {
[LINUX_EPERM] = EPERM, [LINUX_ENOENT] = ENOENT, [LINUX_ESRCH] = ESRCH, [LINUX_EINTR] = EINTR, [LINUX_EIO] = EIO, [LINUX_ENXIO] = ENXIO, [LINUX_ENOEXEC] = ENOEXEC, [LINUX_EBADF] = EBADF, [LINUX_ECHILD] = ECHILD, [LINUX_EDEADLK] = EDEADLK, [LINUX_ENOMEM] = ENOMEM, [LINUX_EACCES] = EACCES, [LINUX_EFAULT] = EFAULT, [LINUX_ENOTBLK] = ENOTBLK, [LINUX_EBUSY] = EBUSY, [LINUX_EEXIST] = EEXIST, [LINUX_EXDEV] = EXDEV, [LINUX_ENODEV] = ENODEV, [LINUX_ENOTDIR] = ENOTDIR, [LINUX_EISDIR] = EISDIR, [LINUX_EINVAL] = EINVAL, [LINUX_ENFILE] = ENFILE, [LINUX_EMFILE] = EMFILE, [LINUX_ENOTTY] = ENOTTY, [LINUX_ETXTBSY] = ETXTBSY, [LINUX_EFBIG] = EFBIG, [LINUX_ENOSPC] = ENOSPC, [LINUX_ESPIPE] = ESPIPE, [LINUX_EROFS] = EROFS, [LINUX_EMLINK] = EMLINK, [LINUX_EPIPE] = EPIPE, [LINUX_EDOM] = EDOM, [LINUX_ERANGE] = ERANGE, [LINUX_EAGAIN] = EAGAIN, [LINUX_EINPROGRESS] = EINPROGRESS, [LINUX_EALREADY] = EALREADY, [LINUX_ENOTSOCK] = ENOTSOCK, [LINUX_EDESTADDRREQ] = EDESTADDRREQ, [LINUX_EMSGSIZE] = EMSGSIZE, [LINUX_EPROTOTYPE] = EPROTOTYPE, [LINUX_ENOPROTOOPT] = ENOPROTOOPT, [LINUX_EPROTONOSUPPORT] = EPROTONOSUPPORT, [LINUX_ESOCKTNOSUPPORT] = ESOCKTNOSUPPORT, [LINUX_ENOTSUP] = ENOTSUP, [LINUX_EPFNOSUPPORT] = EPFNOSUPPORT, [LINUX_EAFNOSUPPORT] = EAFNOSUPPORT, [LINUX_EADDRINUSE] = EADDRINUSE, [LINUX_EADDRNOTAVAIL] = EADDRNOTAVAIL, [LINUX_ENETDOWN] = ENETDOWN, [LINUX_ENETUNREACH] = ENETUNREACH, [LINUX_ENETRESET] = ENETRESET, [LINUX_ECONNABORTED] = ECONNABORTED, [LINUX_ECONNRESET] = ECONNRESET, [LINUX_ENOBUFS] = ENOBUFS, [LINUX_EISCONN] = EISCONN, [LINUX_ENOTCONN] = ENOTCONN, [LINUX_ESHUTDOWN] = ESHUTDOWN, [LINUX_ETOOMANYREFS] = ETOOMANYREFS, [LINUX_ETIMEDOUT] = ETIMEDOUT, [LINUX_ECONNREFUSED] = ECONNREFUSED, [LINUX_ELOOP] = ELOOP, [LINUX_ENAMETOOLONG] = ENAMETOOLONG, [LINUX_EHOSTDOWN] = EHOSTDOWN, [LINUX_EHOSTUNREACH] = EHOSTUNREACH, [LINUX_ENOTEMPTY] = ENOTEMPTY, [LINUX_EUSERS] = EUSERS, [LINUX_EDQUOT] = EDQUOT, [LINUX_ESTALE] = ESTALE, [LINUX_EREMOTE] = EREMOTE, [LINUX_ENOLCK] = ENOLCK, [LINUX_ENOSYS] = ENOSYS, [LINUX_EOVERFLOW] = EOVERFLOW, [LINUX_ECANCELED] = ECANCELED, [LINUX_EIDRM] = EIDRM, [LINUX_ENOMSG] = ENOMSG, [LINUX_EILSEQ] = EILSEQ, [LINUX_EBADMSG] = EBADMSG, [LINUX_EMULTIHOP] = EMULTIHOP, [LINUX_ENODATA] = ENODATA, [LINUX_ENOLINK] = ENOLINK, [LINUX_ENOSR] = ENOSR, [LINUX_ENOSTR] = ENOSTR, [LINUX_EPROTO] = EPROTO, [LINUX_ETIME] = ETIME, [LINUX_EOPNOTSUPP] = EOPNOTSUPP,};const size_t length_of_translation_array = sizeof(linux_to_darwin)/sizeof(const int);
int errno_linux_to_bsd(int err){ int v = err; if (v < 0) v = -v;
if ((v < length_of_translation_array) && (linux_to_darwin[v])) { v = linux_to_darwin[v]; return (err < 0) ? -v : v; }
return err;}