minix/include/sys/errno.h
Ben Gras 2fe8fb192f Full switch to clang/ELF. Drop ack. Simplify.
There is important information about booting non-ack images in
docs/UPDATING. ack/aout-format images can't be built any more, and
booting clang/ELF-format ones is a little different. Updating to the
new boot monitor is recommended.

Changes in this commit:

	. drop boot monitor -> allowing dropping ack support
	. facility to copy ELF boot files to /boot so that old boot monitor
	  can still boot fairly easily, see UPDATING
	. no more ack-format libraries -> single-case libraries
	. some cleanup of OBJECT_FMT, COMPILER_TYPE, etc cases
	. drop several ack toolchain commands, but not all support
	  commands (e.g. aal is gone but acksize is not yet).
	. a few libc files moved to netbsd libc dir
	. new /bin/date as minix date used code in libc/
	. test compile fix
	. harmonize includes
	. /usr/lib is no longer special: without ack, /usr/lib plays no
	  kind of special bootstrapping role any more and bootstrapping
	  is done exclusively through packages, so releases depend even
	  less on the state of the machine making them now.
	. rename nbsd_lib* to lib*
	. reduce mtree
2012-02-14 14:52:02 +01:00

176 lines
9.1 KiB
C

/* The <errno.h> header defines the numbers of the various errors that can
* occur during program execution. They are visible to user programs and
* should be small positive integers. However, they are also used within
* MINIX, where they must be negative. For example, the READ system call is
* executed internally by calling do_read(). This function returns either a
* (negative) error number or a (positive) number of bytes actually read.
*
* To solve the problem of having the error numbers be negative inside the
* the system and positive outside, the following mechanism is used. All the
* definitions are are the form:
*
* <define> EPERM (_SIGN 1 )
*
* If the macro _SYSTEM is defined, then _SIGN is set to "-", otherwise it is
* set to "". Thus when compiling the operating system, the macro _SYSTEM
* will be defined, setting EPERM to (- 1), whereas when when this
* file is included in an ordinary user program, EPERM has the value ( 1).
*/
#ifndef _ERRNO_H /* check if <errno.h> is already included */
# define _ERRNO_H /* it is not included; note that fact */
/* Now define _SIGN as "" or "-" depending on _SYSTEM. */
#ifdef _SYSTEM
# define _SIGN -
# define OK 0
#else
# define _SIGN
#endif
#define EPERM (_SIGN 1 ) /* operation not permitted */
#define ENOENT (_SIGN 2 ) /* no such file or directory */
#define ESRCH (_SIGN 3 ) /* no such process */
#define EINTR (_SIGN 4 ) /* interrupted function call */
#define EIO (_SIGN 5 ) /* input/output error */
#define ENXIO (_SIGN 6 ) /* no such device or address */
#define E2BIG (_SIGN 7 ) /* arg list too long */
#define ENOEXEC (_SIGN 8 ) /* exec format error */
#define EBADF (_SIGN 9 ) /* bad file descriptor */
#define ECHILD (_SIGN 10 ) /* no child process */
#define EAGAIN (_SIGN 11 ) /* resource temporarily unavailable */
#define ENOMEM (_SIGN 12 ) /* not enough space */
#define EACCES (_SIGN 13 ) /* permission denied */
#define EFAULT (_SIGN 14 ) /* bad address */
#define ENOTBLK (_SIGN 15 ) /* Extension: not a block special file */
#define EBUSY (_SIGN 16 ) /* resource busy */
#define EEXIST (_SIGN 17 ) /* file exists */
#define EXDEV (_SIGN 18 ) /* improper link */
#define ENODEV (_SIGN 19 ) /* no such device */
#define ENOTDIR (_SIGN 20 ) /* not a directory */
#define EISDIR (_SIGN 21 ) /* is a directory */
#define EINVAL (_SIGN 22 ) /* invalid argument */
#define ENFILE (_SIGN 23 ) /* too many open files in system */
#define EMFILE (_SIGN 24 ) /* too many open files */
#define ENOTTY (_SIGN 25 ) /* inappropriate I/O control operation */
#define ETXTBSY (_SIGN 26 ) /* no longer used */
#define EFBIG (_SIGN 27 ) /* file too large */
#define ENOSPC (_SIGN 28 ) /* no space left on device */
#define ESPIPE (_SIGN 29 ) /* invalid seek */
#define EROFS (_SIGN 30 ) /* read-only file system */
#define EMLINK (_SIGN 31 ) /* too many links */
#define EPIPE (_SIGN 32 ) /* broken pipe */
#define EDOM (_SIGN 33 ) /* domain error (from ANSI C std ) */
#define ERANGE (_SIGN 34 ) /* result too large (from ANSI C std ) */
#define EDEADLK (_SIGN 35 ) /* resource deadlock avoided */
#define ENAMETOOLONG (_SIGN 36 ) /* file name too long */
#define ENOLCK (_SIGN 37 ) /* no locks available */
#define ENOSYS (_SIGN 38 ) /* function not implemented */
#define ENOTEMPTY (_SIGN 39 ) /* directory not empty */
#define ELOOP (_SIGN 40 ) /* too many levels of symlinks detected */
#define ERESTART (_SIGN 41 ) /* service restarted */
#define EIDRM (_SIGN 43 ) /* Identifier removed */
#define EILSEQ (_SIGN 44 ) /* illegal byte sequence */
#define ENOMSG (_SIGN 45 ) /* No message of desired type */
#define EOVERFLOW (_SIGN 46 ) /* Value too large to be stored in data type */
/* The following errors relate to networking. */
#define EPACKSIZE (_SIGN 50 ) /* invalid packet size for some protocol */
#define ENOBUFS (_SIGN 51 ) /* not enough buffers left */
#define EBADIOCTL (_SIGN 52 ) /* illegal ioctl for device */
#define EBADMODE (_SIGN 53 ) /* badmode in ioctl */
#define EWOULDBLOCK (_SIGN 54 ) /* call would block on nonblocking socket */
#define ENETUNREACH (_SIGN 55 ) /* network unreachable */
#define EHOSTUNREACH (_SIGN 56 ) /* host unreachable */
#define EISCONN (_SIGN 57 ) /* already connected */
#define EADDRINUSE (_SIGN 58 ) /* address in use */
#define ECONNREFUSED (_SIGN 59 ) /* connection refused */
#define ECONNRESET (_SIGN 60 ) /* connection reset */
#define ETIMEDOUT (_SIGN 61 ) /* connection timed out */
#define EURG (_SIGN 62 ) /* urgent data present */
#define ENOURG (_SIGN 63 ) /* no urgent data present */
#define ENOTCONN (_SIGN 64 ) /* no connection (yet or anymore ) */
#define ESHUTDOWN (_SIGN 65 ) /* a write call to a shutdown connection */
#define ENOCONN (_SIGN 66 ) /* no such connection */
#define EAFNOSUPPORT (_SIGN 67 ) /* address family not supported */
#define EPROTONOSUPPORT (_SIGN 68 ) /* protocol not supported by AF */
#define EPROTOTYPE (_SIGN 69 ) /* Protocol wrong type for socket */
#define EINPROGRESS (_SIGN 70 ) /* Operation now in progress */
#define EADDRNOTAVAIL (_SIGN 71 ) /* Can't assign requested address */
#define EALREADY (_SIGN 72 ) /* Connection already in progress */
#define EMSGSIZE (_SIGN 73 ) /* Message too long */
#define ENOTSOCK (_SIGN 74 ) /* Socket operation on non-socket */
#define ENOPROTOOPT (_SIGN 75 ) /* Protocol not available */
#define EOPNOTSUPP (_SIGN 76 ) /* Operation not supported */
#define ENOTSUP ( EOPNOTSUPP ) /* Not supported */
#define ENETDOWN (_SIGN 77 ) /* network is down */
#define EPFNOSUPPORT (_SIGN 78 ) /* Protocol family not supported */
#define EDESTADDRREQ (_SIGN 79 ) /* Destination address required */
#define EHOSTDOWN (_SIGN 80 ) /* Host is down */
#define ENETRESET (_SIGN 81 ) /* Network dropped connection on reset */
#define ESOCKTNOSUPPORT (_SIGN 82 ) /* Socket type not supported */
#define ECONNABORTED (_SIGN 83 ) /* Software caused connection abort */
#define ETOOMANYREFS (_SIGN 84 ) /* Too many references: can't splice */
#define EGENERIC (_SIGN 99 ) /* generic error */
/* The following are not POSIX errors, but they can still happen.
* All of these are generated by the kernel and relate to message passing.
*/
#define ELOCKED (_SIGN 101 ) /* can't send message due to deadlock */
#define EBADCALL (_SIGN 102 ) /* illegal system call number */
#define EBADSRCDST (_SIGN 103 ) /* bad source or destination process */
#define ECALLDENIED (_SIGN 104 ) /* no permission for system call */
#define EDEADSRCDST (_SIGN 105 ) /* source or destination is not alive */
#define ENOTREADY (_SIGN 106 ) /* source or destination is not ready */
#define EBADREQUEST (_SIGN 107 ) /* destination cannot handle request */
#define ETRAPDENIED (_SIGN 110 ) /* IPC trap not allowed */
/* The following errors are NetBSD errors. */
#define EFTYPE (_SIGN 150 ) /* Inappropriate file type or format */
#define EAUTH (_SIGN 151 ) /* Authentication error */
#define ENEEDAUTH (_SIGN 152 ) /* Need authenticator */
/* Realtime option errors */
#define ECANCELED (_SIGN 153 ) /* Operation canceled */
/* Network File System */
#define ESTALE (_SIGN 160 ) /* Stale NFS file handle */
#define EREMOTE (_SIGN 161 ) /* Too many levels of remote in path */
#define EBADRPC (_SIGN 162 ) /* RPC struct is bad */
#define ERPCMISMATCH (_SIGN 163 ) /* RPC version wrong */
#define EPROGUNAVAIL (_SIGN 164 ) /* RPC prog. not avail */
#define EPROGMISMATCH (_SIGN 165 ) /* Program version wrong */
#define EPROCUNAVAIL (_SIGN 166 ) /* Bad procedure for program */
/* Realtime, XSI STREAMS option errors */
#define EBADMSG (_SIGN 170 ) /* Bad or Corrupt message */
/* quotas & mush */
#define EPROCLIM (_SIGN 175 ) /* Too many processes */
#define EUSERS (_SIGN 176 ) /* Too many users */
#define EDQUOT (_SIGN 177 ) /* Disc quota exceeded */
/* Realtime, XSI STREAMS option errors */
#define EMULTIHOP (_SIGN 180 ) /* Multihop attempted */
#define ENOLINK (_SIGN 181 ) /* Link has been severed */
#define EPROTO (_SIGN 182 ) /* Protocol error */
/* File system extended attribute errors */
#define ENOATTR (_SIGN 185 ) /* Attribute not found */
/* XSI STREAMS option errors */
#define ENODATA (_SIGN 190 ) /* No message available */
#define ENOSR (_SIGN 191 ) /* No STREAM resources */
#define ENOSTR (_SIGN 192 ) /* Not a STREAM */
#define ETIME (_SIGN 193 ) /* STREAM ioctl timeout */
#define EDONTREPLY (_SIGN 201 ) /* pseudo-code: don't send a reply */
/* The following are non-POSIX server responses */
#define EBADEPT (_SIGN 301 ) /* specified endpoint is bad */
#define EDEADEPT (_SIGN 302 ) /* specified endpoint is not alive */
#define EBADCPU (_SIGN 303 ) /* requested CPU does not work */
#endif /* _ERRNO_H */