147 lines
3.2 KiB
C
147 lines
3.2 KiB
C
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
|
|
|
#include "cpr_errno.h"
|
|
#include <errno.h>
|
|
|
|
/**
|
|
* @addtogroup OSAPIs The CPR OS Abstractions
|
|
* @brief Misc OS API Abstractions in CPR
|
|
*
|
|
* @{
|
|
*/
|
|
int8_t errno_table[] =
|
|
{
|
|
CPR_EPERM,
|
|
CPR_ENOENT,
|
|
CPR_ESRCH,
|
|
CPR_EINTR,
|
|
CPR_EIO,
|
|
CPR_ENXIO,
|
|
CPR_E2BIG,
|
|
CPR_ENOEXEC,
|
|
CPR_EBADF,
|
|
CPR_ECHILD,
|
|
CPR_EDEADLK, /*10*/
|
|
CPR_ENOMEM,
|
|
CPR_EACCES,
|
|
CPR_EFAULT,
|
|
CPR_ENOTBLK,
|
|
CPR_EBUSY,
|
|
CPR_EEXIST,
|
|
CPR_EXDEV,
|
|
CPR_ENODEV,
|
|
CPR_ENOTDIR,
|
|
CPR_EISDIR,/*20*/
|
|
CPR_EINVAL,
|
|
CPR_ENFILE,
|
|
CPR_EMFILE,
|
|
CPR_ENOTTY,
|
|
CPR_ETXTBSY,
|
|
CPR_EFBIG,
|
|
CPR_ENOSPC,
|
|
CPR_ESPIPE,
|
|
CPR_EROFS,
|
|
CPR_EMLINK,/*30*/
|
|
CPR_EPIPE,
|
|
CPR_EDOM,
|
|
CPR_ERANGE,
|
|
CPR_EAGAIN,
|
|
CPR_EINPROGRESS,
|
|
CPR_EALREADY,
|
|
CPR_ENOTSOCK,
|
|
CPR_EDESTADDRREQ,
|
|
CPR_EMSGSIZE,
|
|
CPR_EPROTOTYPE,/*40*/
|
|
CPR_ENOPROTOOPT,
|
|
CPR_EPROTONOSUPPORT,
|
|
CPR_ESOCKTNOSUPPORT,
|
|
CPR_ENOTSUP,
|
|
CPR_EPFNOSUPPORT,
|
|
CPR_EAFNOSUPPORT,
|
|
CPR_EADDRINUSE,
|
|
CPR_EADDRNOTAVAIL,
|
|
CPR_ENETDOWN,
|
|
CPR_ENETUNREACH,/*50*/
|
|
CPR_ENETRESET,
|
|
CPR_ECONNABORTED,
|
|
CPR_ECONNRESET,
|
|
CPR_ENOBUFS,
|
|
CPR_EISCONN,
|
|
CPR_ENOTCONN,
|
|
CPR_ESHUTDOWN,
|
|
CPR_ETOOMANYREFS,
|
|
CPR_ETIMEDOUT,
|
|
CPR_ECONNREFUSED,/*60*/
|
|
CPR_ELOOP,
|
|
CPR_ENAMETOOLONG,
|
|
CPR_EHOSTDOWN,
|
|
CPR_EHOSTUNREACH,
|
|
CPR_ENOTEMPTY,
|
|
CPR_UNKNOWN_ERR, /* empty 66 */
|
|
CPR_EUSERS,
|
|
CPR_EDQUOT,
|
|
CPR_ESTALE,
|
|
CPR_EREMOTE,/*70*/
|
|
CPR_UNKNOWN_ERR, /* empty 71 */
|
|
CPR_UNKNOWN_ERR, /* empty 72 */
|
|
CPR_UNKNOWN_ERR, /* empty 73 */
|
|
CPR_UNKNOWN_ERR, /* empty 74 */
|
|
CPR_UNKNOWN_ERR, /* empty 75 */
|
|
CPR_ENOLCK,
|
|
CPR_ENOSYS,
|
|
CPR_UNKNOWN_ERR, /* empty 78 */
|
|
CPR_UNKNOWN_ERR, /* empty 79 */
|
|
CPR_UNKNOWN_ERR,/*80*/
|
|
CPR_UNKNOWN_ERR, /* empty 81 */
|
|
CPR_UNKNOWN_ERR, /* empty 82 */
|
|
CPR_EOVERFLOW,
|
|
CPR_UNKNOWN_ERR, /* empty 84 */
|
|
CPR_UNKNOWN_ERR, /* empty 85 */
|
|
CPR_UNKNOWN_ERR, /* empty 86 */
|
|
CPR_UNKNOWN_ERR, /* empty 87 */
|
|
CPR_ECANCELED,
|
|
CPR_EIDRM,
|
|
CPR_ENOMSG,/*90*/
|
|
CPR_EILSEQ,
|
|
CPR_UNKNOWN_ERR, /* empty 92 */
|
|
CPR_EBADMSG,
|
|
CPR_EMULTIHOP,
|
|
CPR_ENODATA,
|
|
CPR_ENOLINK,
|
|
CPR_ENOSR,
|
|
CPR_ENOSTR,
|
|
CPR_EPROTO,
|
|
CPR_ETIME,/*100*/
|
|
CPR_EOPNOTSUPP,
|
|
CPR_UNKNOWN_ERR
|
|
}; // Soya: the errno_table should be consistent with <errno.h>
|
|
|
|
/**
|
|
*
|
|
* @brief Translates to "cpr_errno" Macro
|
|
*
|
|
* pSIPCC uses the cpr_errno macro to print the errno
|
|
* for error conditions. This function is used to map the standard
|
|
* errno to standard CPR errors
|
|
*
|
|
* @return The CPR error number
|
|
*
|
|
*/
|
|
int16_t
|
|
cprTranslateErrno (void)
|
|
{
|
|
int16_t e = (int16_t) errno;
|
|
|
|
/*
|
|
* Verify against MIN and MAX errno numbers
|
|
*/
|
|
if ( e < 1 || e > (int16_t) (sizeof(errno_table)/sizeof(errno_table[0])) )
|
|
{
|
|
return CPR_UNKNOWN_ERR;
|
|
}
|
|
return (int16_t) errno_table[e - 1];
|
|
}
|
|
|