182 lines
9.1 KiB
C
182 lines
9.1 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/. */
|
|
|
|
#ifndef _CPR_ERRNO_H_
|
|
#define _CPR_ERRNO_H_
|
|
|
|
#include "cpr_types.h"
|
|
|
|
__BEGIN_DECLS
|
|
|
|
#if defined SIP_OS_LINUX
|
|
#include "../linux/cpr_linux_errno.h"
|
|
#elif defined SIP_OS_WINDOWS
|
|
#include "../win32/cpr_win_errno.h"
|
|
#elif defined SIP_OS_OSX
|
|
#include "../darwin/cpr_darwin_errno.h"
|
|
#endif
|
|
|
|
/** The enumerations for the various error types. pSIPCC uses these error values
|
|
* for checking of the various error conditions and these error type abstractions
|
|
* MUST be defined here.
|
|
*/
|
|
typedef enum
|
|
{
|
|
/* First 34 entries are well-known, keep it that way */
|
|
CPR_EPERM = 1, /* Not super-user 1 */
|
|
CPR_ENOENT, /* No such file or directory */
|
|
CPR_ESRCH, /* No such process */
|
|
CPR_EINTR, /* interrupted system call */
|
|
//WSAEINTR
|
|
CPR_EIO, /* I/O error */
|
|
//WSA_IO_INCOMPLETE
|
|
CPR_ENXIO, /* No such device or address */
|
|
CPR_E2BIG, /* Arg list too long */
|
|
CPR_ENOEXEC, /* Exec format error */
|
|
CPR_EBADF, /* Bad file number */
|
|
CPR_ECHILD, /* No children */
|
|
CPR_EAGAIN, /* Resource temporarily unavailable */
|
|
//WSATRY_AGAIN
|
|
CPR_EWOULDBLOCK = CPR_EAGAIN,
|
|
//WSAEWOULDBLOCK
|
|
CPR_ENOMEM, /* Not enough core */
|
|
//WSA_NOT_ENOUGH_MEMORY
|
|
CPR_EACCES, /* Permission denied */
|
|
//WSAEACCES
|
|
CPR_EFAULT, /* Bad address */
|
|
//WSAEFAULT
|
|
CPR_ENOTBLK, /* Block device required */
|
|
CPR_EBUSY, /* Mount device busy */
|
|
CPR_EEXIST, /* File exists */
|
|
CPR_EXDEV, /* Cross-device link */
|
|
CPR_ENODEV, /* No such device */
|
|
CPR_ENOTDIR, /* Not a directory */
|
|
CPR_EISDIR, /* Is a directory */
|
|
CPR_EINVAL, /* Invalid argument */
|
|
//WSAEINVAL
|
|
//WSA_INVALID_PARAMETER
|
|
CPR_ENFILE, /* File table overflow */
|
|
CPR_EMFILE, /* Too many open files */
|
|
//WSAEMFILE
|
|
CPR_ENOTTY, /* Inappropriate ioctl for device */
|
|
CPR_ETXTBSY, /* Text file busy */
|
|
CPR_EFBIG, /* File too large */
|
|
CPR_ENOSPC, /* No space left on device */
|
|
CPR_ESPIPE, /* Illegal seek */
|
|
CPR_EROFS, /* Read only file system */
|
|
CPR_EMLINK, /* Too many links */
|
|
CPR_EPIPE, /* Broken pipe */
|
|
CPR_EDOM, /* Math arg out of domain of func */
|
|
CPR_ERANGE, /* Math result not representable */
|
|
|
|
/* Socket error conditions */
|
|
CPR_ENOTSOCK, /* Socket operation on non-socket 35 */
|
|
CPR_EDESTADDRREQ, /* Destination address required */
|
|
CPR_EMSGSIZE, /* Message too long */
|
|
CPR_EPROTOTYPE, /* Protocol wrong type for socket */
|
|
CPR_ENOPROTOOPT, /* Protocol not available */
|
|
CPR_EPROTONOSUPPORT,/* Protocol not supported */
|
|
CPR_ESOCKTNOSUPPORT,/* Socket type not supported */
|
|
CPR_EOPNOTSUPP, /* Operation not supported on socket */
|
|
CPR_EPFNOSUPPORT, /* Protocol family not supported */
|
|
CPR_EAFNOSUPPORT, /* Address family not supp. by protocol*/
|
|
CPR_EADDRINUSE, /* Address already in use */
|
|
CPR_EADDRNOTAVAIL, /* Can not assign requested address */
|
|
CPR_ENETDOWN, /* Network is down */
|
|
CPR_ENETUNREACH, /* Network is unreachable */
|
|
CPR_ENETRESET, /* Netwk dropped conn. because of reset*/
|
|
CPR_ECONNABORTED, /* Software caused connection abort */
|
|
CPR_ECONNRESET, /* Connection reset by peer */
|
|
CPR_ENOBUFS, /* No buffer space available */
|
|
CPR_EISCONN, /* Socket is already connected */
|
|
CPR_ENOTCONN, /* Socket is not connected */
|
|
CPR_ESHUTDOWN, /* Can not send after socket shutdown */
|
|
CPR_ETOOMANYREFS, /* Too many references: can not splice */
|
|
CPR_ETIMEDOUT, /* Connection timed out */
|
|
CPR_ECONNREFUSED, /* Connection refused */
|
|
CPR_EHOSTDOWN, /* Host is down */
|
|
CPR_EHOSTUNREACH, /* No route to host */
|
|
CPR_EALREADY, /* Operation already in progress */
|
|
CPR_EINPROGRESS, /* Operation now in progress */
|
|
|
|
/* The following error conditions are common among */
|
|
/* CNU, Linux and Solaris environments */
|
|
|
|
CPR_ENOMSG, /* No message of desired type 63 */
|
|
CPR_EIDRM, /* Identifier removed */
|
|
CPR_ECHRNG, /* Channel number out of range */
|
|
CPR_EL2NSYNC, /* Level 2 not synchronized */
|
|
CPR_EL3HLT, /* Level 3 halted */
|
|
CPR_EL3RST, /* Level 3 reset */
|
|
CPR_ELNRNG, /* Link number out of range */
|
|
CPR_EUNATCH, /* Protocol driver not attached */
|
|
CPR_ENOCSI, /* No CSI structure available */
|
|
CPR_EL2HLT, /* Level 2 halted */
|
|
CPR_ENOLCK, /* No record locks available. */
|
|
CPR_EDEADLK, /* Deadlock condition */
|
|
CPR_ECANCELED, /* Operation canceled */
|
|
CPR_ENOTSUP, /* Operation not supported */
|
|
CPR_EDQUOT, /* Disc quota exceeded */
|
|
|
|
/* Convergent error conditions */
|
|
CPR_EBADE, /* invalid exchange 78 */
|
|
CPR_EBADR, /* invalid request descriptor */
|
|
CPR_EXFULL, /* exchange full */
|
|
CPR_ENOANO, /* no anode */
|
|
CPR_EBADRQC, /* invalid request code */
|
|
CPR_EBADSLT, /* invalid slot */
|
|
CPR_EDEADLOCK, /* file locking deadlock error */
|
|
CPR_EBFONT, /* bad font file fmt */
|
|
|
|
/* Stream error conditions */
|
|
CPR_ENOSTR, /* Device not a stream 86 */
|
|
CPR_ENODATA, /* no data (for no delay io) */
|
|
CPR_ETIME, /* timer expired */
|
|
CPR_ENOSR, /* out of streams resources */
|
|
CPR_ENONET, /* Machine is not on the network */
|
|
CPR_ENOPKG, /* Package not installed */
|
|
CPR_EREMOTE, /* The object is remote */
|
|
CPR_ENOLINK, /* the link has been severed */
|
|
CPR_EADV, /* advertise error */
|
|
CPR_ESRMNT, /* srmount error */
|
|
CPR_ECOMM, /* Communication error on send */
|
|
CPR_EPROTO, /* Protocol error */
|
|
CPR_EMULTIHOP, /* multihop attempted */
|
|
CPR_EBADMSG, /* trying to read unreadable message */
|
|
CPR_ENAMETOOLONG, /* path name is too long */
|
|
CPR_EOVERFLOW, /* value too large to be stored */
|
|
CPR_ENOTUNIQ, /* given log. name not unique */
|
|
CPR_EBADFD, /* f.d. invalid for this operation */
|
|
CPR_EREMCHG, /* Remote address changed */
|
|
|
|
/* Shared library error conditions */
|
|
CPR_ELIBACC, /* Can't access a needed shared library*/
|
|
CPR_ELIBBAD, /* Accessing a corrupted shared library*/
|
|
CPR_ELIBSCN, /* .lib section in a.out corrupted. */
|
|
CPR_ELIBMAX, /* Attempting to link in too many libs */
|
|
CPR_ELIBEXEC, /* Attempting to exec a shared library */
|
|
CPR_EILSEQ, /* Illegal byte sequence */
|
|
CPR_ENOSYS, /* Unsupported file system operation */
|
|
CPR_ELOOP, /* Symbolic link loop */
|
|
CPR_ERESTART, /* Restartable system call */
|
|
CPR_ESTRPIPE, /* If pipe, don't sleep in stream head */
|
|
CPR_ENOTEMPTY, /* directory not empty */
|
|
CPR_EUSERS, /* Too many users (for UFS) */
|
|
|
|
CPR_ESTALE, /* Stale NFS file handle */
|
|
|
|
/* The following error conditions not common among OSs */
|
|
CPR_ECLOSED, /* CNU specific, connection closed by host
|
|
(may need to re-map to something else,
|
|
still TBD) */
|
|
CPR_EINIT,
|
|
|
|
CPR_UNKNOWN_ERR, /* 120 */
|
|
CPR_ERRNO_MAX
|
|
} cpr_errno_e;
|
|
|
|
__END_DECLS
|
|
|
|
#endif
|