Commit 1f4dc5c2 authored by David Reid's avatar David Reid

Add early experimental support for Cosmopolitan.

Public issue https://github.com/mackron/miniaudio/issues/495
parent 4da843ba
...@@ -6288,7 +6288,7 @@ This section contains the APIs for device playback and capture. Here is where yo ...@@ -6288,7 +6288,7 @@ This section contains the APIs for device playback and capture. Here is where yo
#endif #endif
#if defined(MA_UNIX) && !defined(MA_ORBIS) && !defined(MA_PROSPERO) #if defined(MA_UNIX) && !defined(MA_ORBIS) && !defined(MA_PROSPERO)
#if defined(MA_LINUX) #if defined(MA_LINUX)
#if !defined(MA_ANDROID) /* ALSA is not supported on Android. */ #if !defined(MA_ANDROID) && !defined(__COSMOPOLITAN__) /* ALSA is not supported on Android. */
#define MA_SUPPORT_ALSA #define MA_SUPPORT_ALSA
#endif #endif
#endif #endif
...@@ -11378,7 +11378,7 @@ IMPLEMENTATION ...@@ -11378,7 +11378,7 @@ IMPLEMENTATION
#endif #endif
/* Intrinsics Support */ /* Intrinsics Support */
#if defined(MA_X64) || defined(MA_X86) #if (defined(MA_X64) || defined(MA_X86)) && !defined(__COSMOPOLITAN__)
#if defined(_MSC_VER) && !defined(__clang__) #if defined(_MSC_VER) && !defined(__clang__)
/* MSVC. */ /* MSVC. */
#if _MSC_VER >= 1400 && !defined(MA_NO_SSE2) /* 2005 */ #if _MSC_VER >= 1400 && !defined(MA_NO_SSE2) /* 2005 */
...@@ -11815,7 +11815,7 @@ static MA_INLINE unsigned int ma_disable_denormals() ...@@ -11815,7 +11815,7 @@ static MA_INLINE unsigned int ma_disable_denormals()
} }
#elif defined(MA_X86) || defined(MA_X64) #elif defined(MA_X86) || defined(MA_X64)
{ {
#if defined(__SSE2__) && !(defined(__TINYC__) || defined(__WATCOMC__)) /* <-- Add compilers that lack support for _mm_getcsr() and _mm_setcsr() to this list. */ #if defined(__SSE2__) && !(defined(__TINYC__) || defined(__WATCOMC__) || defined(__COSMOPOLITAN__)) /* <-- Add compilers that lack support for _mm_getcsr() and _mm_setcsr() to this list. */
{ {
prevState = _mm_getcsr(); prevState = _mm_getcsr();
_mm_setcsr(prevState | MA_MM_DENORMALS_ZERO_MASK | MA_MM_FLUSH_ZERO_MASK); _mm_setcsr(prevState | MA_MM_DENORMALS_ZERO_MASK | MA_MM_FLUSH_ZERO_MASK);
...@@ -11855,7 +11855,7 @@ static MA_INLINE void ma_restore_denormals(unsigned int prevState) ...@@ -11855,7 +11855,7 @@ static MA_INLINE void ma_restore_denormals(unsigned int prevState)
} }
#elif defined(MA_X86) || defined(MA_X64) #elif defined(MA_X86) || defined(MA_X64)
{ {
#if defined(__SSE2__) && !(defined(__TINYC__) || defined(__WATCOMC__)) /* <-- Add compilers that lack support for _mm_getcsr() and _mm_setcsr() to this list. */ #if defined(__SSE2__) && !(defined(__TINYC__) || defined(__WATCOMC__) || defined(__COSMOPOLITAN__)) /* <-- Add compilers that lack support for _mm_getcsr() and _mm_setcsr() to this list. */
{ {
_mm_setcsr(prevState); _mm_setcsr(prevState);
} }
...@@ -12573,403 +12573,404 @@ MA_API wchar_t* ma_copy_string_w(const wchar_t* src, const ma_allocation_callbac ...@@ -12573,403 +12573,404 @@ MA_API wchar_t* ma_copy_string_w(const wchar_t* src, const ma_allocation_callbac
#include <errno.h> #include <errno.h>
static ma_result ma_result_from_errno(int e) static ma_result ma_result_from_errno(int e)
{ {
switch (e) if (e == 0) {
{ return MA_SUCCESS;
case 0: return MA_SUCCESS; }
#ifdef EPERM #ifdef EPERM
case EPERM: return MA_INVALID_OPERATION; else if (e == EPERM) { return MA_INVALID_OPERATION; }
#endif #endif
#ifdef ENOENT #ifdef ENOENT
case ENOENT: return MA_DOES_NOT_EXIST; else if (e == ENOENT) { return MA_DOES_NOT_EXIST; }
#endif #endif
#ifdef ESRCH #ifdef ESRCH
case ESRCH: return MA_DOES_NOT_EXIST; else if (e == ESRCH) { return MA_DOES_NOT_EXIST; }
#endif #endif
#ifdef EINTR #ifdef EINTR
case EINTR: return MA_INTERRUPT; else if (e == EINTR) { return MA_INTERRUPT; }
#endif #endif
#ifdef EIO #ifdef EIO
case EIO: return MA_IO_ERROR; else if (e == EIO) { return MA_IO_ERROR; }
#endif #endif
#ifdef ENXIO #ifdef ENXIO
case ENXIO: return MA_DOES_NOT_EXIST; else if (e == ENXIO) { return MA_DOES_NOT_EXIST; }
#endif #endif
#ifdef E2BIG #ifdef E2BIG
case E2BIG: return MA_INVALID_ARGS; else if (e == E2BIG) { return MA_INVALID_ARGS; }
#endif #endif
#ifdef ENOEXEC #ifdef ENOEXEC
case ENOEXEC: return MA_INVALID_FILE; else if (e == ENOEXEC) { return MA_INVALID_FILE; }
#endif #endif
#ifdef EBADF #ifdef EBADF
case EBADF: return MA_INVALID_FILE; else if (e == EBADF) { return MA_INVALID_FILE; }
#endif #endif
#ifdef ECHILD #ifdef ECHILD
case ECHILD: return MA_ERROR; else if (e == ECHILD) { return MA_ERROR; }
#endif #endif
#ifdef EAGAIN #ifdef EAGAIN
case EAGAIN: return MA_UNAVAILABLE; else if (e == EAGAIN) { return MA_UNAVAILABLE; }
#endif #endif
#ifdef ENOMEM #ifdef ENOMEM
case ENOMEM: return MA_OUT_OF_MEMORY; else if (e == ENOMEM) { return MA_OUT_OF_MEMORY; }
#endif #endif
#ifdef EACCES #ifdef EACCES
case EACCES: return MA_ACCESS_DENIED; else if (e == EACCES) { return MA_ACCESS_DENIED; }
#endif #endif
#ifdef EFAULT #ifdef EFAULT
case EFAULT: return MA_BAD_ADDRESS; else if (e == EFAULT) { return MA_BAD_ADDRESS; }
#endif #endif
#ifdef ENOTBLK #ifdef ENOTBLK
case ENOTBLK: return MA_ERROR; else if (e == ENOTBLK) { return MA_ERROR; }
#endif #endif
#ifdef EBUSY #ifdef EBUSY
case EBUSY: return MA_BUSY; else if (e == EBUSY) { return MA_BUSY; }
#endif #endif
#ifdef EEXIST #ifdef EEXIST
case EEXIST: return MA_ALREADY_EXISTS; else if (e == EEXIST) { return MA_ALREADY_EXISTS; }
#endif #endif
#ifdef EXDEV #ifdef EXDEV
case EXDEV: return MA_ERROR; else if (e == EXDEV) { return MA_ERROR; }
#endif #endif
#ifdef ENODEV #ifdef ENODEV
case ENODEV: return MA_DOES_NOT_EXIST; else if (e == ENODEV) { return MA_DOES_NOT_EXIST; }
#endif #endif
#ifdef ENOTDIR #ifdef ENOTDIR
case ENOTDIR: return MA_NOT_DIRECTORY; else if (e == ENOTDIR) { return MA_NOT_DIRECTORY; }
#endif #endif
#ifdef EISDIR #ifdef EISDIR
case EISDIR: return MA_IS_DIRECTORY; else if (e == EISDIR) { return MA_IS_DIRECTORY; }
#endif #endif
#ifdef EINVAL #ifdef EINVAL
case EINVAL: return MA_INVALID_ARGS; else if (e == EINVAL) { return MA_INVALID_ARGS; }
#endif #endif
#ifdef ENFILE #ifdef ENFILE
case ENFILE: return MA_TOO_MANY_OPEN_FILES; else if (e == ENFILE) { return MA_TOO_MANY_OPEN_FILES; }
#endif #endif
#ifdef EMFILE #ifdef EMFILE
case EMFILE: return MA_TOO_MANY_OPEN_FILES; else if (e == EMFILE) { return MA_TOO_MANY_OPEN_FILES; }
#endif #endif
#ifdef ENOTTY #ifdef ENOTTY
case ENOTTY: return MA_INVALID_OPERATION; else if (e == ENOTTY) { return MA_INVALID_OPERATION; }
#endif #endif
#ifdef ETXTBSY #ifdef ETXTBSY
case ETXTBSY: return MA_BUSY; else if (e == ETXTBSY) { return MA_BUSY; }
#endif #endif
#ifdef EFBIG #ifdef EFBIG
case EFBIG: return MA_TOO_BIG; else if (e == EFBIG) { return MA_TOO_BIG; }
#endif #endif
#ifdef ENOSPC #ifdef ENOSPC
case ENOSPC: return MA_NO_SPACE; else if (e == ENOSPC) { return MA_NO_SPACE; }
#endif #endif
#ifdef ESPIPE #ifdef ESPIPE
case ESPIPE: return MA_BAD_SEEK; else if (e == ESPIPE) { return MA_BAD_SEEK; }
#endif #endif
#ifdef EROFS #ifdef EROFS
case EROFS: return MA_ACCESS_DENIED; else if (e == EROFS) { return MA_ACCESS_DENIED; }
#endif #endif
#ifdef EMLINK #ifdef EMLINK
case EMLINK: return MA_TOO_MANY_LINKS; else if (e == EMLINK) { return MA_TOO_MANY_LINKS; }
#endif #endif
#ifdef EPIPE #ifdef EPIPE
case EPIPE: return MA_BAD_PIPE; else if (e == EPIPE) { return MA_BAD_PIPE; }
#endif #endif
#ifdef EDOM #ifdef EDOM
case EDOM: return MA_OUT_OF_RANGE; else if (e == EDOM) { return MA_OUT_OF_RANGE; }
#endif #endif
#ifdef ERANGE #ifdef ERANGE
case ERANGE: return MA_OUT_OF_RANGE; else if (e == ERANGE) { return MA_OUT_OF_RANGE; }
#endif #endif
#ifdef EDEADLK #ifdef EDEADLK
case EDEADLK: return MA_DEADLOCK; else if (e == EDEADLK) { return MA_DEADLOCK; }
#endif #endif
#ifdef ENAMETOOLONG #ifdef ENAMETOOLONG
case ENAMETOOLONG: return MA_PATH_TOO_LONG; else if (e == ENAMETOOLONG) { return MA_PATH_TOO_LONG; }
#endif #endif
#ifdef ENOLCK #ifdef ENOLCK
case ENOLCK: return MA_ERROR; else if (e == ENOLCK) { return MA_ERROR; }
#endif #endif
#ifdef ENOSYS #ifdef ENOSYS
case ENOSYS: return MA_NOT_IMPLEMENTED; else if (e == ENOSYS) { return MA_NOT_IMPLEMENTED; }
#endif #endif
#ifdef ENOTEMPTY #ifdef ENOTEMPTY
case ENOTEMPTY: return MA_DIRECTORY_NOT_EMPTY; else if (e == ENOTEMPTY) { return MA_DIRECTORY_NOT_EMPTY; }
#endif #endif
#ifdef ELOOP #ifdef ELOOP
case ELOOP: return MA_TOO_MANY_LINKS; else if (e == ELOOP) { return MA_TOO_MANY_LINKS; }
#endif #endif
#ifdef ENOMSG #ifdef ENOMSG
case ENOMSG: return MA_NO_MESSAGE; else if (e == ENOMSG) { return MA_NO_MESSAGE; }
#endif #endif
#ifdef EIDRM #ifdef EIDRM
case EIDRM: return MA_ERROR; else if (e == EIDRM) { return MA_ERROR; }
#endif #endif
#ifdef ECHRNG #ifdef ECHRNG
case ECHRNG: return MA_ERROR; else if (e == ECHRNG) { return MA_ERROR; }
#endif #endif
#ifdef EL2NSYNC #ifdef EL2NSYNC
case EL2NSYNC: return MA_ERROR; else if (e == EL2NSYNC) { return MA_ERROR; }
#endif #endif
#ifdef EL3HLT #ifdef EL3HLT
case EL3HLT: return MA_ERROR; else if (e == EL3HLT) { return MA_ERROR; }
#endif #endif
#ifdef EL3RST #ifdef EL3RST
case EL3RST: return MA_ERROR; else if (e == EL3RST) { return MA_ERROR; }
#endif #endif
#ifdef ELNRNG #ifdef ELNRNG
case ELNRNG: return MA_OUT_OF_RANGE; else if (e == ELNRNG) { return MA_OUT_OF_RANGE; }
#endif #endif
#ifdef EUNATCH #ifdef EUNATCH
case EUNATCH: return MA_ERROR; else if (e == EUNATCH) { return MA_ERROR; }
#endif #endif
#ifdef ENOCSI #ifdef ENOCSI
case ENOCSI: return MA_ERROR; else if (e == ENOCSI) { return MA_ERROR; }
#endif #endif
#ifdef EL2HLT #ifdef EL2HLT
case EL2HLT: return MA_ERROR; else if (e == EL2HLT) { return MA_ERROR; }
#endif #endif
#ifdef EBADE #ifdef EBADE
case EBADE: return MA_ERROR; else if (e == EBADE) { return MA_ERROR; }
#endif #endif
#ifdef EBADR #ifdef EBADR
case EBADR: return MA_ERROR; else if (e == EBADR) { return MA_ERROR; }
#endif #endif
#ifdef EXFULL #ifdef EXFULL
case EXFULL: return MA_ERROR; else if (e == EXFULL) { return MA_ERROR; }
#endif #endif
#ifdef ENOANO #ifdef ENOANO
case ENOANO: return MA_ERROR; else if (e == ENOANO) { return MA_ERROR; }
#endif #endif
#ifdef EBADRQC #ifdef EBADRQC
case EBADRQC: return MA_ERROR; else if (e == EBADRQC) { return MA_ERROR; }
#endif #endif
#ifdef EBADSLT #ifdef EBADSLT
case EBADSLT: return MA_ERROR; else if (e == EBADSLT) { return MA_ERROR; }
#endif #endif
#ifdef EBFONT #ifdef EBFONT
case EBFONT: return MA_INVALID_FILE; else if (e == EBFONT) { return MA_INVALID_FILE; }
#endif #endif
#ifdef ENOSTR #ifdef ENOSTR
case ENOSTR: return MA_ERROR; else if (e == ENOSTR) { return MA_ERROR; }
#endif #endif
#ifdef ENODATA #ifdef ENODATA
case ENODATA: return MA_NO_DATA_AVAILABLE; else if (e == ENODATA) { return MA_NO_DATA_AVAILABLE; }
#endif #endif
#ifdef ETIME #ifdef ETIME
case ETIME: return MA_TIMEOUT; else if (e == ETIME) { return MA_TIMEOUT; }
#endif #endif
#ifdef ENOSR #ifdef ENOSR
case ENOSR: return MA_NO_DATA_AVAILABLE; else if (e == ENOSR) { return MA_NO_DATA_AVAILABLE; }
#endif #endif
#ifdef ENONET #ifdef ENONET
case ENONET: return MA_NO_NETWORK; else if (e == ENONET) { return MA_NO_NETWORK; }
#endif #endif
#ifdef ENOPKG #ifdef ENOPKG
case ENOPKG: return MA_ERROR; else if (e == ENOPKG) { return MA_ERROR; }
#endif #endif
#ifdef EREMOTE #ifdef EREMOTE
case EREMOTE: return MA_ERROR; else if (e == EREMOTE) { return MA_ERROR; }
#endif #endif
#ifdef ENOLINK #ifdef ENOLINK
case ENOLINK: return MA_ERROR; else if (e == ENOLINK) { return MA_ERROR; }
#endif #endif
#ifdef EADV #ifdef EADV
case EADV: return MA_ERROR; else if (e == EADV) { return MA_ERROR; }
#endif #endif
#ifdef ESRMNT #ifdef ESRMNT
case ESRMNT: return MA_ERROR; else if (e == ESRMNT) { return MA_ERROR; }
#endif #endif
#ifdef ECOMM #ifdef ECOMM
case ECOMM: return MA_ERROR; else if (e == ECOMM) { return MA_ERROR; }
#endif #endif
#ifdef EPROTO #ifdef EPROTO
case EPROTO: return MA_ERROR; else if (e == EPROTO) { return MA_ERROR; }
#endif #endif
#ifdef EMULTIHOP #ifdef EMULTIHOP
case EMULTIHOP: return MA_ERROR; else if (e == EMULTIHOP) { return MA_ERROR; }
#endif #endif
#ifdef EDOTDOT #ifdef EDOTDOT
case EDOTDOT: return MA_ERROR; else if (e == EDOTDOT) { return MA_ERROR; }
#endif #endif
#ifdef EBADMSG #ifdef EBADMSG
case EBADMSG: return MA_BAD_MESSAGE; else if (e == EBADMSG) { return MA_BAD_MESSAGE; }
#endif #endif
#ifdef EOVERFLOW #ifdef EOVERFLOW
case EOVERFLOW: return MA_TOO_BIG; else if (e == EOVERFLOW) { return MA_TOO_BIG; }
#endif #endif
#ifdef ENOTUNIQ #ifdef ENOTUNIQ
case ENOTUNIQ: return MA_NOT_UNIQUE; else if (e == ENOTUNIQ) { return MA_NOT_UNIQUE; }
#endif #endif
#ifdef EBADFD #ifdef EBADFD
case EBADFD: return MA_ERROR; else if (e == EBADFD) { return MA_ERROR; }
#endif #endif
#ifdef EREMCHG #ifdef EREMCHG
case EREMCHG: return MA_ERROR; else if (e == EREMCHG) { return MA_ERROR; }
#endif #endif
#ifdef ELIBACC #ifdef ELIBACC
case ELIBACC: return MA_ACCESS_DENIED; else if (e == ELIBACC) { return MA_ACCESS_DENIED; }
#endif #endif
#ifdef ELIBBAD #ifdef ELIBBAD
case ELIBBAD: return MA_INVALID_FILE; else if (e == ELIBBAD) { return MA_INVALID_FILE; }
#endif #endif
#ifdef ELIBSCN #ifdef ELIBSCN
case ELIBSCN: return MA_INVALID_FILE; else if (e == ELIBSCN) { return MA_INVALID_FILE; }
#endif #endif
#ifdef ELIBMAX #ifdef ELIBMAX
case ELIBMAX: return MA_ERROR; else if (e == ELIBMAX) { return MA_ERROR; }
#endif #endif
#ifdef ELIBEXEC #ifdef ELIBEXEC
case ELIBEXEC: return MA_ERROR; else if (e == ELIBEXEC) { return MA_ERROR; }
#endif #endif
#ifdef EILSEQ #ifdef EILSEQ
case EILSEQ: return MA_INVALID_DATA; else if (e == EILSEQ) { return MA_INVALID_DATA; }
#endif #endif
#ifdef ERESTART #ifdef ERESTART
case ERESTART: return MA_ERROR; else if (e == ERESTART) { return MA_ERROR; }
#endif #endif
#ifdef ESTRPIPE #ifdef ESTRPIPE
case ESTRPIPE: return MA_ERROR; else if (e == ESTRPIPE) { return MA_ERROR; }
#endif #endif
#ifdef EUSERS #ifdef EUSERS
case EUSERS: return MA_ERROR; else if (e == EUSERS) { return MA_ERROR; }
#endif #endif
#ifdef ENOTSOCK #ifdef ENOTSOCK
case ENOTSOCK: return MA_NOT_SOCKET; else if (e == ENOTSOCK) { return MA_NOT_SOCKET; }
#endif #endif
#ifdef EDESTADDRREQ #ifdef EDESTADDRREQ
case EDESTADDRREQ: return MA_NO_ADDRESS; else if (e == EDESTADDRREQ) { return MA_NO_ADDRESS; }
#endif #endif
#ifdef EMSGSIZE #ifdef EMSGSIZE
case EMSGSIZE: return MA_TOO_BIG; else if (e == EMSGSIZE) { return MA_TOO_BIG; }
#endif #endif
#ifdef EPROTOTYPE #ifdef EPROTOTYPE
case EPROTOTYPE: return MA_BAD_PROTOCOL; else if (e == EPROTOTYPE) { return MA_BAD_PROTOCOL; }
#endif #endif
#ifdef ENOPROTOOPT #ifdef ENOPROTOOPT
case ENOPROTOOPT: return MA_PROTOCOL_UNAVAILABLE; else if (e == ENOPROTOOPT) { return MA_PROTOCOL_UNAVAILABLE; }
#endif #endif
#ifdef EPROTONOSUPPORT #ifdef EPROTONOSUPPORT
case EPROTONOSUPPORT: return MA_PROTOCOL_NOT_SUPPORTED; else if (e == EPROTONOSUPPORT) { return MA_PROTOCOL_NOT_SUPPORTED; }
#endif #endif
#ifdef ESOCKTNOSUPPORT #ifdef ESOCKTNOSUPPORT
case ESOCKTNOSUPPORT: return MA_SOCKET_NOT_SUPPORTED; else if (e == ESOCKTNOSUPPORT) { return MA_SOCKET_NOT_SUPPORTED; }
#endif #endif
#ifdef EOPNOTSUPP #ifdef EOPNOTSUPP
case EOPNOTSUPP: return MA_INVALID_OPERATION; else if (e == EOPNOTSUPP) { return MA_INVALID_OPERATION; }
#endif #endif
#ifdef EPFNOSUPPORT #ifdef EPFNOSUPPORT
case EPFNOSUPPORT: return MA_PROTOCOL_FAMILY_NOT_SUPPORTED; else if (e == EPFNOSUPPORT) { return MA_PROTOCOL_FAMILY_NOT_SUPPORTED; }
#endif #endif
#ifdef EAFNOSUPPORT #ifdef EAFNOSUPPORT
case EAFNOSUPPORT: return MA_ADDRESS_FAMILY_NOT_SUPPORTED; else if (e == EAFNOSUPPORT) { return MA_ADDRESS_FAMILY_NOT_SUPPORTED; }
#endif #endif
#ifdef EADDRINUSE #ifdef EADDRINUSE
case EADDRINUSE: return MA_ALREADY_IN_USE; else if (e == EADDRINUSE) { return MA_ALREADY_IN_USE; }
#endif #endif
#ifdef EADDRNOTAVAIL #ifdef EADDRNOTAVAIL
case EADDRNOTAVAIL: return MA_ERROR; else if (e == EADDRNOTAVAIL) { return MA_ERROR; }
#endif #endif
#ifdef ENETDOWN #ifdef ENETDOWN
case ENETDOWN: return MA_NO_NETWORK; else if (e == ENETDOWN) { return MA_NO_NETWORK; }
#endif #endif
#ifdef ENETUNREACH #ifdef ENETUNREACH
case ENETUNREACH: return MA_NO_NETWORK; else if (e == ENETUNREACH) { return MA_NO_NETWORK; }
#endif #endif
#ifdef ENETRESET #ifdef ENETRESET
case ENETRESET: return MA_NO_NETWORK; else if (e == ENETRESET) { return MA_NO_NETWORK; }
#endif #endif
#ifdef ECONNABORTED #ifdef ECONNABORTED
case ECONNABORTED: return MA_NO_NETWORK; else if (e == ECONNABORTED) { return MA_NO_NETWORK; }
#endif #endif
#ifdef ECONNRESET #ifdef ECONNRESET
case ECONNRESET: return MA_CONNECTION_RESET; else if (e == ECONNRESET) { return MA_CONNECTION_RESET; }
#endif #endif
#ifdef ENOBUFS #ifdef ENOBUFS
case ENOBUFS: return MA_NO_SPACE; else if (e == ENOBUFS) { return MA_NO_SPACE; }
#endif #endif
#ifdef EISCONN #ifdef EISCONN
case EISCONN: return MA_ALREADY_CONNECTED; else if (e == EISCONN) { return MA_ALREADY_CONNECTED; }
#endif #endif
#ifdef ENOTCONN #ifdef ENOTCONN
case ENOTCONN: return MA_NOT_CONNECTED; else if (e == ENOTCONN) { return MA_NOT_CONNECTED; }
#endif #endif
#ifdef ESHUTDOWN #ifdef ESHUTDOWN
case ESHUTDOWN: return MA_ERROR; else if (e == ESHUTDOWN) { return MA_ERROR; }
#endif #endif
#ifdef ETOOMANYREFS #ifdef ETOOMANYREFS
case ETOOMANYREFS: return MA_ERROR; else if (e == ETOOMANYREFS) { return MA_ERROR; }
#endif #endif
#ifdef ETIMEDOUT #ifdef ETIMEDOUT
case ETIMEDOUT: return MA_TIMEOUT; else if (e == ETIMEDOUT) { return MA_TIMEOUT; }
#endif #endif
#ifdef ECONNREFUSED #ifdef ECONNREFUSED
case ECONNREFUSED: return MA_CONNECTION_REFUSED; else if (e == ECONNREFUSED) { return MA_CONNECTION_REFUSED; }
#endif #endif
#ifdef EHOSTDOWN #ifdef EHOSTDOWN
case EHOSTDOWN: return MA_NO_HOST; else if (e == EHOSTDOWN) { return MA_NO_HOST; }
#endif #endif
#ifdef EHOSTUNREACH #ifdef EHOSTUNREACH
case EHOSTUNREACH: return MA_NO_HOST; else if (e == EHOSTUNREACH) { return MA_NO_HOST; }
#endif #endif
#ifdef EALREADY #ifdef EALREADY
case EALREADY: return MA_IN_PROGRESS; else if (e == EALREADY) { return MA_IN_PROGRESS; }
#endif #endif
#ifdef EINPROGRESS #ifdef EINPROGRESS
case EINPROGRESS: return MA_IN_PROGRESS; else if (e == EINPROGRESS) { return MA_IN_PROGRESS; }
#endif #endif
#ifdef ESTALE #ifdef ESTALE
case ESTALE: return MA_INVALID_FILE; else if (e == ESTALE) { return MA_INVALID_FILE; }
#endif #endif
#ifdef EUCLEAN #ifdef EUCLEAN
case EUCLEAN: return MA_ERROR; else if (e == EUCLEAN) { return MA_ERROR; }
#endif #endif
#ifdef ENOTNAM #ifdef ENOTNAM
case ENOTNAM: return MA_ERROR; else if (e == ENOTNAM) { return MA_ERROR; }
#endif #endif
#ifdef ENAVAIL #ifdef ENAVAIL
case ENAVAIL: return MA_ERROR; else if (e == ENAVAIL) { return MA_ERROR; }
#endif #endif
#ifdef EISNAM #ifdef EISNAM
case EISNAM: return MA_ERROR; else if (e == EISNAM) { return MA_ERROR; }
#endif #endif
#ifdef EREMOTEIO #ifdef EREMOTEIO
case EREMOTEIO: return MA_IO_ERROR; else if (e == EREMOTEIO) { return MA_IO_ERROR; }
#endif #endif
#ifdef EDQUOT #ifdef EDQUOT
case EDQUOT: return MA_NO_SPACE; else if (e == EDQUOT) { return MA_NO_SPACE; }
#endif #endif
#ifdef ENOMEDIUM #ifdef ENOMEDIUM
case ENOMEDIUM: return MA_DOES_NOT_EXIST; else if (e == ENOMEDIUM) { return MA_DOES_NOT_EXIST; }
#endif #endif
#ifdef EMEDIUMTYPE #ifdef EMEDIUMTYPE
case EMEDIUMTYPE: return MA_ERROR; else if (e == EMEDIUMTYPE) { return MA_ERROR; }
#endif #endif
#ifdef ECANCELED #ifdef ECANCELED
case ECANCELED: return MA_CANCELLED; else if (e == ECANCELED) { return MA_CANCELLED; }
#endif #endif
#ifdef ENOKEY #ifdef ENOKEY
case ENOKEY: return MA_ERROR; else if (e == ENOKEY) { return MA_ERROR; }
#endif #endif
#ifdef EKEYEXPIRED #ifdef EKEYEXPIRED
case EKEYEXPIRED: return MA_ERROR; else if (e == EKEYEXPIRED) { return MA_ERROR; }
#endif #endif
#ifdef EKEYREVOKED #ifdef EKEYREVOKED
case EKEYREVOKED: return MA_ERROR; else if (e == EKEYREVOKED) { return MA_ERROR; }
#endif #endif
#ifdef EKEYREJECTED #ifdef EKEYREJECTED
case EKEYREJECTED: return MA_ERROR; else if (e == EKEYREJECTED) { return MA_ERROR; }
#endif #endif
#ifdef EOWNERDEAD #ifdef EOWNERDEAD
case EOWNERDEAD: return MA_ERROR; else if (e == EOWNERDEAD) { return MA_ERROR; }
#endif #endif
#ifdef ENOTRECOVERABLE #ifdef ENOTRECOVERABLE
case ENOTRECOVERABLE: return MA_ERROR; else if (e == ENOTRECOVERABLE) { return MA_ERROR; }
#endif #endif
#ifdef ERFKILL #ifdef ERFKILL
case ERFKILL: return MA_ERROR; else if (e == ERFKILL) { return MA_ERROR; }
#endif #endif
#ifdef EHWPOISON #ifdef EHWPOISON
case EHWPOISON: return MA_ERROR; else if (e == EHWPOISON) { return MA_ERROR; }
#endif #endif
default: return MA_ERROR; else {
return MA_ERROR;
} }
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment