]> git.saurik.com Git - apple/xnu.git/blobdiff - bsd/sys/errno.h
xnu-1504.9.37.tar.gz
[apple/xnu.git] / bsd / sys / errno.h
index 86abc959c77fe0b35edfd6564a1584d57c4e5634..54d5d037189b69dd1b1b9cd26cb1a6e4f0b1fbbc 100644 (file)
@@ -1,23 +1,29 @@
 /*
- * Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
+ * Copyright (c) 2000-2002 Apple Computer, Inc. All rights reserved.
  *
- * @APPLE_LICENSE_HEADER_START@
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
  * 
- * The contents of this file constitute Original Code as defined in and
- * are subject to the Apple Public Source License Version 1.1 (the
- * "License").  You may not use this file except in compliance with the
- * License.  Please obtain a copy of the License at
- * http://www.apple.com/publicsource and read it before using this file.
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
  * 
- * This Original Code and all software distributed under the License are
- * distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ * 
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
  * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
  * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT.  Please see the
- * License for the specific language governing rights and limitations
- * under the License.
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
  * 
- * @APPLE_LICENSE_HEADER_END@
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
  */
 /* Copyright (c) 1995 NeXT Computer, Inc. All Rights Reserved */
 /*
@@ -66,7 +72,7 @@
 #if !defined(KERNEL) && !defined(KERNEL_PRIVATE)
 #include <sys/cdefs.h>
 __BEGIN_DECLS
-extern int * __error __P((void));
+extern int * __error(void);
 #define errno (*__error())
 __END_DECLS
 #endif
@@ -90,10 +96,10 @@ __END_DECLS
 #define        ENOMEM          12              /* Cannot allocate memory */
 #define        EACCES          13              /* Permission denied */
 #define        EFAULT          14              /* Bad address */
-#ifndef _POSIX_SOURCE
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
 #define        ENOTBLK         15              /* Block device required */
 #endif
-#define        EBUSY           16              /* Device busy */
+#define        EBUSY           16              /* Device / Resource busy */
 #define        EEXIST          17              /* File exists */
 #define        EXDEV           18              /* Cross-device link */
 #define        ENODEV          19              /* Operation not supported by device */
@@ -103,9 +109,7 @@ __END_DECLS
 #define        ENFILE          23              /* Too many open files in system */
 #define        EMFILE          24              /* Too many open files */
 #define        ENOTTY          25              /* Inappropriate ioctl for device */
-#ifndef _POSIX_SOURCE
 #define        ETXTBSY         26              /* Text file busy */
-#endif
 #define        EFBIG           27              /* File too large */
 #define        ENOSPC          28              /* No space left on device */
 #define        ESPIPE          29              /* Illegal seek */
@@ -119,7 +123,6 @@ __END_DECLS
 
 /* non-blocking and interrupt i/o */
 #define        EAGAIN          35              /* Resource temporarily unavailable */
-#ifndef _POSIX_SOURCE
 #define        EWOULDBLOCK     EAGAIN          /* Operation would block */
 #define        EINPROGRESS     36              /* Operation now in progress */
 #define        EALREADY        37              /* Operation already in progress */
@@ -131,12 +134,25 @@ __END_DECLS
 #define        EPROTOTYPE      41              /* Protocol wrong type for socket */
 #define        ENOPROTOOPT     42              /* Protocol not available */
 #define        EPROTONOSUPPORT 43              /* Protocol not supported */
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
 #define        ESOCKTNOSUPPORT 44              /* Socket type not supported */
-#endif /* ! _POSIX_SOURCE */
-#define ENOTSUP        45              /* Operation not supported */
-#ifndef _POSIX_SOURCE
-#define        EOPNOTSUPP       ENOTSUP                /* Operation not supported */
+#endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */
+#define ENOTSUP                45              /* Operation not supported */
+#if !__DARWIN_UNIX03 && !defined(KERNEL)
+/*
+ * This is the same for binary and source copmpatability, unless compiling
+ * the kernel itself, or compiling __DARWIN_UNIX03; if compiling for the
+ * kernel, the correct value will be returned.  If compiling non-POSIX
+ * source, the kernel return value will be converted by a stub in libc, and
+ * if compiling source with __DARWIN_UNIX03, the conversion in libc is not
+ * done, and the caller gets the expected (discrete) value.
+ */
+#define        EOPNOTSUPP       ENOTSUP        /* Operation not supported on socket */
+#endif /* !__DARWIN_UNIX03 && !KERNEL */
+
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
 #define        EPFNOSUPPORT    46              /* Protocol family not supported */
+#endif /* (_POSIX_C_SOURCE && !_DARWIN_C_SOURCE) */
 #define        EAFNOSUPPORT    47              /* Address family not supported by protocol family */
 #define        EADDRINUSE      48              /* Address already in use */
 #define        EADDRNOTAVAIL   49              /* Can't assign requested address */
@@ -150,66 +166,104 @@ __END_DECLS
 #define        ENOBUFS         55              /* No buffer space available */
 #define        EISCONN         56              /* Socket is already connected */
 #define        ENOTCONN        57              /* Socket is not connected */
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
 #define        ESHUTDOWN       58              /* Can't send after socket shutdown */
 #define        ETOOMANYREFS    59              /* Too many references: can't splice */
+#endif /* (_POSIX_C_SOURCE && !_DARWIN_C_SOURCE) */
 #define        ETIMEDOUT       60              /* Operation timed out */
 #define        ECONNREFUSED    61              /* Connection refused */
 
 #define        ELOOP           62              /* Too many levels of symbolic links */
-#endif /* _POSIX_SOURCE */
 #define        ENAMETOOLONG    63              /* File name too long */
 
 /* should be rearranged */
-#ifndef _POSIX_SOURCE
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
 #define        EHOSTDOWN       64              /* Host is down */
+#endif /* (_POSIX_C_SOURCE && !_DARWIN_C_SOURCE) */
 #define        EHOSTUNREACH    65              /* No route to host */
-#endif /* _POSIX_SOURCE */
 #define        ENOTEMPTY       66              /* Directory not empty */
 
 /* quotas & mush */
-#ifndef _POSIX_SOURCE
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
 #define        EPROCLIM        67              /* Too many processes */
 #define        EUSERS          68              /* Too many users */
+#endif /* (_POSIX_C_SOURCE && !_DARWIN_C_SOURCE) */
 #define        EDQUOT          69              /* Disc quota exceeded */
 
 /* Network File System */
 #define        ESTALE          70              /* Stale NFS file handle */
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
 #define        EREMOTE         71              /* Too many levels of remote in path */
 #define        EBADRPC         72              /* RPC struct is bad */
 #define        ERPCMISMATCH    73              /* RPC version wrong */
 #define        EPROGUNAVAIL    74              /* RPC prog. not avail */
 #define        EPROGMISMATCH   75              /* Program version wrong */
 #define        EPROCUNAVAIL    76              /* Bad procedure for program */
-#endif /* _POSIX_SOURCE */
+#endif /* (_POSIX_C_SOURCE && !_DARWIN_C_SOURCE) */
 
 #define        ENOLCK          77              /* No locks available */
 #define        ENOSYS          78              /* Function not implemented */
 
-#ifndef _POSIX_SOURCE
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
 #define        EFTYPE          79              /* Inappropriate file type or format */
 #define        EAUTH           80              /* Authentication error */
 #define        ENEEDAUTH       81              /* Need authenticator */
-#endif /* _POSIX_SOURCE */
 
 /* Intelligent device errors */
 #define        EPWROFF         82      /* Device power is off */
 #define        EDEVERR         83      /* Device error, e.g. paper out */
+#endif /* (_POSIX_C_SOURCE && !_DARWIN_C_SOURCE) */
 
-#ifndef _POSIX_SOURCE
 #define        EOVERFLOW       84              /* Value too large to be stored in data type */
 
 /* Program loading errors */
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
 #define EBADEXEC       85      /* Bad executable */
 #define EBADARCH       86      /* Bad CPU type in executable */
 #define ESHLIBVERS     87      /* Shared library version mismatch */
 #define EBADMACHO      88      /* Malformed Macho file */
+#endif /* (_POSIX_C_SOURCE && !_DARWIN_C_SOURCE) */
+
+#define        ECANCELED       89              /* Operation canceled */
 
-#define        ELAST           88              /* Must be equal largest errno */
-#endif /* _POSIX_SOURCE */
+#define EIDRM          90              /* Identifier removed */
+#define ENOMSG         91              /* No message of desired type */   
+#define EILSEQ         92              /* Illegal byte sequence */
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#define ENOATTR                93              /* Attribute not found */
+#endif /* (_POSIX_C_SOURCE && !_DARWIN_C_SOURCE) */
+
+#define EBADMSG                94              /* Bad message */
+#define EMULTIHOP      95              /* Reserved */
+#define        ENODATA         96              /* No message available on STREAM */
+#define ENOLINK                97              /* Reserved */
+#define ENOSR          98              /* No STREAM resources */
+#define ENOSTR         99              /* Not a STREAM */
+#define        EPROTO          100             /* Protocol error */
+#define ETIME          101             /* STREAM ioctl timeout */
+
+#if __DARWIN_UNIX03 || defined(KERNEL)
+/* This value is only discrete when compiling __DARWIN_UNIX03, or KERNEL */
+#define        EOPNOTSUPP      102             /* Operation not supported on socket */
+#endif /* __DARWIN_UNIX03 || KERNEL */
+
+#define ENOPOLICY      103             /* No such policy registered */
+
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#define        ELAST           103             /* Must be equal largest errno */
+#endif /* (_POSIX_C_SOURCE && !_DARWIN_C_SOURCE) */
 
 #ifdef KERNEL
 /* pseudo-errors returned inside kernel to modify return to process */
-#define        ERESTART        -1              /* restart syscall */
-#define        EJUSTRETURN     -2              /* don't modify regs, just return */
+#define        ERESTART        (-1)            /* restart syscall */
+#define        EJUSTRETURN     (-2)            /* don't modify regs, just return */
+
+#ifdef BSD_KERNEL_PRIVATE
+#define ERECYCLE    (-5)               /* restart lookup under heavy vnode pressure/recycling */
+#define EREDRIVEOPEN   (-6)
+#else /* BSD_KERNEL_PRIVATE */
+/* -5 and -6 are reserved for kernel internal use */
+#endif /* BSD_KERNEL_PRIVATE */
+
 #endif
 #endif /* _SYS_ERRNO_H_ */