The header <errno.h> defines several macros, all relating to the reporting of\r
error conditions.\r
\r
- The macros expand to integral constant expressions\r
- with distinct nonzero values, suitable for use in #if preprocessing\r
- directives.\r
-\r
The ISO/IEC 9899 specification requires that these be macros.\r
\r
The macros expand to integral constant expressions\r
\r
#define ERESTART -1 /* restart syscall */\r
\r
-#define EMINERRORVAL __EMINERRORVAL /* The lowest valid error value */\r
-\r
-#define EPERM __EPERM /* Operation not permitted */\r
-#define ENOENT __ENOENT /* No such file or directory */\r
-#define ESRCH __ESRCH /* No such process */\r
-#define EINTR __EINTR /* Interrupted system call */\r
-#define EIO __EIO /* Input/output error */\r
-#define ENXIO __ENXIO /* Device not configured */\r
-#define E2BIG __E2BIG /* Argument list too long */\r
-#define ENOEXEC __ENOEXEC /* Exec format error */\r
-#define EBADF __EBADF /* Bad file descriptor */\r
-#define ECHILD __ECHILD /* No child processes */\r
-#define EDEADLK __EDEADLK /* Resource deadlock avoided */\r
-#define ENOMEM __ENOMEM /* Cannot allocate memory */\r
-#define EACCES __EACCES /* Permission denied */\r
-#define EFAULT __EFAULT /* Bad address */\r
-#define ENOTBLK __ENOTBLK /* Block device required */\r
-#define EBUSY __EBUSY /* Device busy */\r
-#define EEXIST __EEXIST /* File exists */\r
-#define EXDEV __EXDEV /* Cross-device link */\r
-#define ENODEV __ENODEV /* Operation not supported by device */\r
-#define ENOTDIR __ENOTDIR /* Not a directory */\r
-#define EISDIR __EISDIR /* Is a directory */\r
-#define EINVAL __EINVAL /* Invalid argument */\r
-#define ENFILE __ENFILE /* Too many open files in system */\r
-#define EMFILE __EMFILE /* Too many open file descriptors */\r
-#define ENOTTY __ENOTTY /* Inappropriate ioctl for device */\r
-#define ETXTBSY __ETXTBSY /* Text file busy */\r
-#define EFBIG __EFBIG /* File too large */\r
-#define ENOSPC __ENOSPC /* No space left on device */\r
-#define ESPIPE __ESPIPE /* Illegal seek */\r
-#define EROFS __EROFS /* Read-only filesystem */\r
-#define EMLINK __EMLINK /* Too many links */\r
-#define EPIPE __EPIPE /* Broken pipe */\r
+#define EMINERRORVAL __EMINERRORVAL /* 1 The lowest valid error value */\r
+\r
+#define EPERM __EPERM /* 1 Operation not permitted */\r
+#define ENOENT __ENOENT /* 2 No such file or directory */\r
+#define ESRCH __ESRCH /* 3 No such process */\r
+#define EINTR __EINTR /* 4 Interrupted system call */\r
+#define EIO __EIO /* 5 Input/output error */\r
+#define ENXIO __ENXIO /* 6 Device not configured */\r
+#define E2BIG __E2BIG /* 7 Argument list too long */\r
+#define ENOEXEC __ENOEXEC /* 8 Exec format error */\r
+#define EBADF __EBADF /* 9 Bad file descriptor */\r
+#define ECHILD __ECHILD /* 10 No child processes */\r
+#define EDEADLK __EDEADLK /* 11 Resource deadlock avoided */\r
+#define ENOMEM __ENOMEM /* 12 Cannot allocate memory */\r
+#define EACCES __EACCES /* 13 Permission denied */\r
+#define EFAULT __EFAULT /* 14 Bad address */\r
+#define ENOTBLK __ENOTBLK /* 15 Block device required */\r
+#define EBUSY __EBUSY /* 16 Device busy */\r
+#define EEXIST __EEXIST /* 17 File exists */\r
+#define EXDEV __EXDEV /* 18 Cross-device link */\r
+#define ENODEV __ENODEV /* 19 Operation not supported by device */\r
+#define ENOTDIR __ENOTDIR /* 20 Not a directory */\r
+#define EISDIR __EISDIR /* 21 Is a directory */\r
+#define EINVAL __EINVAL /* 22 Invalid argument */\r
+#define ENFILE __ENFILE /* 23 Too many open files in system */\r
+#define EMFILE __EMFILE /* 24 Too many open file descriptors */\r
+#define ENOTTY __ENOTTY /* 25 Inappropriate ioctl for device */\r
+#define ETXTBSY __ETXTBSY /* 26 Text file busy */\r
+#define EFBIG __EFBIG /* 27 File too large */\r
+#define ENOSPC __ENOSPC /* 28 No space left on device */\r
+#define ESPIPE __ESPIPE /* 29 Illegal seek */\r
+#define EROFS __EROFS /* 30 Read-only filesystem */\r
+#define EMLINK __EMLINK /* 31 Too many links */\r
+#define EPIPE __EPIPE /* 32 Broken pipe */\r
\r
/* math software -- these are the only two values required by the C Standard */\r
-#define EDOM __EDOM /* 3umerical argument out of domain */\r
-#define ERANGE __ERANGE /* 3esult too large */\r
+#define EDOM __EDOM /* 33 Numerical argument out of domain */\r
+#define ERANGE __ERANGE /* 34 Result too large */\r
\r
/* non-blocking and interrupt i/o */\r
#define EAGAIN __EAGAIN /* 35 Resource temporarily unavailable */\r
*\r
* @(#)ioccom.h 8.3 (Berkeley) 1/9/95\r
*/\r
-\r
#ifndef _SYS_IOCCOM_H_\r
#define _SYS_IOCCOM_H_\r
\r
* upper word are used to encode the in/out status of the parameter.\r
*/\r
#define IOCPARM_MASK 0x1fff /* parameter length, at most 13 bits */\r
+\r
#define IOCPARM_LEN(x) (((x) >> 16) & IOCPARM_MASK)\r
#define IOCBASECMD(x) ((x) & ~(IOCPARM_MASK << 16))\r
#define IOCGROUP(x) (((x) >> 8) & 0xff)\r
/* mask for IN/OUT/VOID */\r
#define IOC_DIRMASK (unsigned long)0xe0000000\r
\r
-#define _IOC(inout,group,num,len) \\r
- (inout | ((len & IOCPARM_MASK) << 16) | ((group) << 8) | (num))\r
+#define _IOC(inout,group,num,len) (inout | ((len & IOCPARM_MASK) << 16) | ((group) << 8) | (num))\r
+\r
#define _IO(g,n) _IOC(IOC_VOID, (g), (n), 0)\r
#define _IOR(g,n,t) _IOC(IOC_OUT, (g), (n), sizeof(t))\r
#define _IOW(g,n,t) _IOC(IOC_IN, (g), (n), sizeof(t))\r
+\r
/* this should be _IORW, but stdio got there first */\r
#define _IOWR(g,n,t) _IOC(IOC_INOUT, (g), (n), sizeof(t))\r
\r