\section{\module{errno} ---
         Standard errno system symbols}

\declaremodule{standard}{errno}
\modulesynopsis{Standard errno system symbols.}


This module makes available standard \code{errno} system symbols.
The value of each symbol is the corresponding integer value.
The names and descriptions are borrowed from \file{linux/include/errno.h},
which should be pretty all-inclusive.

\begin{datadesc}{errorcode}
  Dictionary providing a mapping from the errno value to the string
  name in the underlying system.  For instance,
  \code{errno.errorcode[errno.EPERM]} maps to \code{'EPERM'}.
\end{datadesc}

To translate a numeric error code to an error message, use
\function{os.strerror()}.

Of the following list, symbols that are not used on the current
platform are not defined by the module.  The specific list of defined
symbols is available as \code{errno.errorcode.keys()}.  Symbols
available can include:

\begin{datadesc}{EPERM} Operation not permitted \end{datadesc}
\begin{datadesc}{ENOENT} No such file or directory \end{datadesc}
\begin{datadesc}{ESRCH} No such process \end{datadesc}
\begin{datadesc}{EINTR} Interrupted system call \end{datadesc}
\begin{datadesc}{EIO} I/O error \end{datadesc}
\begin{datadesc}{ENXIO} No such device or address \end{datadesc}
\begin{datadesc}{E2BIG} Arg list too long \end{datadesc}
\begin{datadesc}{ENOEXEC} Exec format error \end{datadesc}
\begin{datadesc}{EBADF} Bad file number \end{datadesc}
\begin{datadesc}{ECHILD} No child processes \end{datadesc}
\begin{datadesc}{EAGAIN} Try again \end{datadesc}
\begin{datadesc}{ENOMEM} Out of memory \end{datadesc}
\begin{datadesc}{EACCES} Permission denied \end{datadesc}
\begin{datadesc}{EFAULT} Bad address \end{datadesc}
\begin{datadesc}{ENOTBLK} Block device required \end{datadesc}
\begin{datadesc}{EBUSY} Device or resource busy \end{datadesc}
\begin{datadesc}{EEXIST} File exists \end{datadesc}
\begin{datadesc}{EXDEV} Cross-device link \end{datadesc}
\begin{datadesc}{ENODEV} No such device \end{datadesc}
\begin{datadesc}{ENOTDIR} Not a directory \end{datadesc}
\begin{datadesc}{EISDIR} Is a directory \end{datadesc}
\begin{datadesc}{EINVAL} Invalid argument \end{datadesc}
\begin{datadesc}{ENFILE} File table overflow \end{datadesc}
\begin{datadesc}{EMFILE} Too many open files \end{datadesc}
\begin{datadesc}{ENOTTY} Not a typewriter \end{datadesc}
\begin{datadesc}{ETXTBSY} Text file busy \end{datadesc}
\begin{datadesc}{EFBIG} File too large \end{datadesc}
\begin{datadesc}{ENOSPC} No space left on device \end{datadesc}
\begin{datadesc}{ESPIPE} Illegal seek \end{datadesc}
\begin{datadesc}{EROFS} Read-only file system \end{datadesc}
\begin{datadesc}{EMLINK} Too many links \end{datadesc}
\begin{datadesc}{EPIPE} Broken pipe \end{datadesc}
\begin{datadesc}{EDOM} Math argument out of domain of func \end{datadesc}
\begin{datadesc}{ERANGE} Math result not representable \end{datadesc}
\begin{datadesc}{EDEADLK} Resource deadlock would occur \end{datadesc}
\begin{datadesc}{ENAMETOOLONG} File name too long \end{datadesc}
\begin{datadesc}{ENOLCK} No record locks available \end{datadesc}
\begin{datadesc}{ENOSYS} Function not implemented \end{datadesc}
\begin{datadesc}{ENOTEMPTY} Directory not empty \end{datadesc}
\begin{datadesc}{ELOOP} Too many symbolic links encountered \end{datadesc}
\begin{datadesc}{EWOULDBLOCK} Operation would block \end{datadesc}
\begin{datadesc}{ENOMSG} No message of desired type \end{datadesc}
\begin{datadesc}{EIDRM} Identifier removed \end{datadesc}
\begin{datadesc}{ECHRNG} Channel number out of range \end{datadesc}
\begin{datadesc}{EL2NSYNC} Level 2 not synchronized \end{datadesc}
\begin{datadesc}{EL3HLT} Level 3 halted \end{datadesc}
\begin{datadesc}{EL3RST} Level 3 reset \end{datadesc}
\begin{datadesc}{ELNRNG} Link number out of range \end{datadesc}
\begin{datadesc}{EUNATCH} Protocol driver not attached \end{datadesc}
\begin{datadesc}{ENOCSI} No CSI structure available \end{datadesc}
\begin{datadesc}{EL2HLT} Level 2 halted \end{datadesc}
\begin{datadesc}{EBADE} Invalid exchange \end{datadesc}
\begin{datadesc}{EBADR} Invalid request descriptor \end{datadesc}
\begin{datadesc}{EXFULL} Exchange full \end{datadesc}
\begin{datadesc}{ENOANO} No anode \end{datadesc}
\begin{datadesc}{EBADRQC} Invalid request code \end{datadesc}
\begin{datadesc}{EBADSLT} Invalid slot \end{datadesc}
\begin{datadesc}{EDEADLOCK} File locking deadlock error \end{datadesc}
\begin{datadesc}{EBFONT} Bad font file format \end{datadesc}
\begin{datadesc}{ENOSTR} Device not a stream \end{datadesc}
\begin{datadesc}{ENODATA} No data available \end{datadesc}
\begin{datadesc}{ETIME} Timer expired \end{datadesc}
\begin{datadesc}{ENOSR} Out of streams resources \end{datadesc}
\begin{datadesc}{ENONET} Machine is not on the network \end{datadesc}
\begin{datadesc}{ENOPKG} Package not installed \end{datadesc}
\begin{datadesc}{EREMOTE} Object is remote \end{datadesc}
\begin{datadesc}{ENOLINK} Link has been severed \end{datadesc}
\begin{datadesc}{EADV} Advertise error \end{datadesc}
\begin{datadesc}{ESRMNT} Srmount error \end{datadesc}
\begin{datadesc}{ECOMM} Communication error on send \end{datadesc}
\begin{datadesc}{EPROTO} Protocol error \end{datadesc}
\begin{datadesc}{EMULTIHOP} Multihop attempted \end{datadesc}
\begin{datadesc}{EDOTDOT} RFS specific error \end{datadesc}
\begin{datadesc}{EBADMSG} Not a data message \end{datadesc}
\begin{datadesc}{EOVERFLOW} Value too large for defined data type \end{datadesc}
\begin{datadesc}{ENOTUNIQ} Name not unique on network \end{datadesc}
\begin{datadesc}{EBADFD} File descriptor in bad state \end{datadesc}
\begin{datadesc}{EREMCHG} Remote address changed \end{datadesc}
\begin{datadesc}{ELIBACC} Can not access a needed shared library \end{datadesc}
\begin{datadesc}{ELIBBAD} Accessing a corrupted shared library \end{datadesc}
\begin{datadesc}{ELIBSCN} .lib section in a.out corrupted \end{datadesc}
\begin{datadesc}{ELIBMAX} Attempting to link in too many shared libraries \end{datadesc}
\begin{datadesc}{ELIBEXEC} Cannot exec a shared library directly \end{datadesc}
\begin{datadesc}{EILSEQ} Illegal byte sequence \end{datadesc}
\begin{datadesc}{ERESTART} Interrupted system call should be restarted \end{datadesc}
\begin{datadesc}{ESTRPIPE} Streams pipe error \end{datadesc}
\begin{datadesc}{EUSERS} Too many users \end{datadesc}
\begin{datadesc}{ENOTSOCK} Socket operation on non-socket \end{datadesc}
\begin{datadesc}{EDESTADDRREQ} Destination address required \end{datadesc}
\begin{datadesc}{EMSGSIZE} Message too long \end{datadesc}
\begin{datadesc}{EPROTOTYPE} Protocol wrong type for socket \end{datadesc}
\begin{datadesc}{ENOPROTOOPT} Protocol not available \end{datadesc}
\begin{datadesc}{EPROTONOSUPPORT} Protocol not supported \end{datadesc}
\begin{datadesc}{ESOCKTNOSUPPORT} Socket type not supported \end{datadesc}
\begin{datadesc}{EOPNOTSUPP} Operation not supported on transport endpoint \end{datadesc}
\begin{datadesc}{EPFNOSUPPORT} Protocol family not supported \end{datadesc}
\begin{datadesc}{EAFNOSUPPORT} Address family not supported by protocol \end{datadesc}
\begin{datadesc}{EADDRINUSE} Address already in use \end{datadesc}
\begin{datadesc}{EADDRNOTAVAIL} Cannot assign requested address \end{datadesc}
\begin{datadesc}{ENETDOWN} Network is down \end{datadesc}
\begin{datadesc}{ENETUNREACH} Network is unreachable \end{datadesc}
\begin{datadesc}{ENETRESET} Network dropped connection because of reset \end{datadesc}
\begin{datadesc}{ECONNABORTED} Software caused connection abort \end{datadesc}
\begin{datadesc}{ECONNRESET} Connection reset by peer \end{datadesc}
\begin{datadesc}{ENOBUFS} No buffer space available \end{datadesc}
\begin{datadesc}{EISCONN} Transport endpoint is already connected \end{datadesc}
\begin{datadesc}{ENOTCONN} Transport endpoint is not connected \end{datadesc}
\begin{datadesc}{ESHUTDOWN} Cannot send after transport endpoint shutdown \end{datadesc}
\begin{datadesc}{ETOOMANYREFS} Too many references: cannot splice \end{datadesc}
\begin{datadesc}{ETIMEDOUT} Connection timed out \end{datadesc}
\begin{datadesc}{ECONNREFUSED} Connection refused \end{datadesc}
\begin{datadesc}{EHOSTDOWN} Host is down \end{datadesc}
\begin{datadesc}{EHOSTUNREACH} No route to host \end{datadesc}
\begin{datadesc}{EALREADY} Operation already in progress \end{datadesc}
\begin{datadesc}{EINPROGRESS} Operation now in progress \end{datadesc}
\begin{datadesc}{ESTALE} Stale NFS file handle \end{datadesc}
\begin{datadesc}{EUCLEAN} Structure needs cleaning \end{datadesc}
\begin{datadesc}{ENOTNAM} Not a XENIX named type file \end{datadesc}
\begin{datadesc}{ENAVAIL} No XENIX semaphores available \end{datadesc}
\begin{datadesc}{EISNAM} Is a named type file \end{datadesc}
\begin{datadesc}{EREMOTEIO} Remote I/O error \end{datadesc}
\begin{datadesc}{EDQUOT} Quota exceeded \end{datadesc}

