--- /dev/null
+/*-
+ * Copyright (c) 2008 Apple Inc.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of Apple Inc. ("Apple") nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR
+ * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+ * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
+ * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * $P4: //depot/projects/trustedbsd/openbsm/sys/bsm/audit_errno.h#5 $
+ */
+
+#ifndef _BSM_AUDIT_ERRNO_H_
+#define _BSM_AUDIT_ERRNO_H_
+
+/*
+ * For the purposes of portable encoding, we convert between local error
+ * numbers and Solaris error numbers (as well as some extensions for error
+ * numbers that don't exist in Solaris). Although the first 35 or so
+ * constants are the same across all OS's, we don't handle that in any
+ * special way.
+ *
+ * When adding constants here, also add them to bsm_errno.c.
+ */
+#define BSM_ERRNO_ESUCCESS 0
+#define BSM_ERRNO_EPERM 1
+#define BSM_ERRNO_ENOENT 2
+#define BSM_ERRNO_ESRCH 3
+#define BSM_ERRNO_EINTR 4
+#define BSM_ERRNO_EIO 5
+#define BSM_ERRNO_ENXIO 6
+#define BSM_ERRNO_E2BIG 7
+#define BSM_ERRNO_ENOEXEC 8
+#define BSM_ERRNO_EBADF 9
+#define BSM_ERRNO_ECHILD 10
+#define BSM_ERRNO_EAGAIN 11
+#define BSM_ERRNO_ENOMEM 12
+#define BSM_ERRNO_EACCES 13
+#define BSM_ERRNO_EFAULT 14
+#define BSM_ERRNO_ENOTBLK 15
+#define BSM_ERRNO_EBUSY 16
+#define BSM_ERRNO_EEXIST 17
+#define BSM_ERRNO_EXDEV 18
+#define BSM_ERRNO_ENODEV 19
+#define BSM_ERRNO_ENOTDIR 20
+#define BSM_ERRNO_EISDIR 21
+#define BSM_ERRNO_EINVAL 22
+#define BSM_ERRNO_ENFILE 23
+#define BSM_ERRNO_EMFILE 24
+#define BSM_ERRNO_ENOTTY 25
+#define BSM_ERRNO_ETXTBSY 26
+#define BSM_ERRNO_EFBIG 27
+#define BSM_ERRNO_ENOSPC 28
+#define BSM_ERRNO_ESPIPE 29
+#define BSM_ERRNO_EROFS 30
+#define BSM_ERRNO_EMLINK 31
+#define BSM_ERRNO_EPIPE 32
+#define BSM_ERRNO_EDOM 33
+#define BSM_ERRNO_ERANGE 34
+#define BSM_ERRNO_ENOMSG 35
+#define BSM_ERRNO_EIDRM 36
+#define BSM_ERRNO_ECHRNG 37 /* Solaris/Linux-specific. */
+#define BSM_ERRNO_EL2NSYNC 38 /* Solaris/Linux-specific. */
+#define BSM_ERRNO_EL3HLT 39 /* Solaris/Linux-specific. */
+#define BSM_ERRNO_EL3RST 40 /* Solaris/Linux-specific. */
+#define BSM_ERRNO_ELNRNG 41 /* Solaris/Linux-specific. */
+#define BSM_ERRNO_EUNATCH 42 /* Solaris/Linux-specific. */
+#define BSM_ERRNO_ENOCSI 43 /* Solaris/Linux-specific. */
+#define BSM_ERRNO_EL2HLT 44 /* Solaris/Linux-specific. */
+#define BSM_ERRNO_EDEADLK 45
+#define BSM_ERRNO_ENOLCK 46
+#define BSM_ERRNO_ECANCELED 47
+#define BSM_ERRNO_ENOTSUP 48
+#define BSM_ERRNO_EDQUOT 49
+#define BSM_ERRNO_EBADE 50 /* Solaris/Linux-specific. */
+#define BSM_ERRNO_EBADR 51 /* Solaris/Linux-specific. */
+#define BSM_ERRNO_EXFULL 52 /* Solaris/Linux-specific. */
+#define BSM_ERRNO_ENOANO 53 /* Solaris/Linux-specific. */
+#define BSM_ERRNO_EBADRQC 54 /* Solaris/Linux-specific. */
+#define BSM_ERRNO_EBADSLT 55 /* Solaris/Linux-specific. */
+#define BSM_ERRNO_EDEADLOCK 56 /* Solaris-specific. */
+#define BSM_ERRNO_EBFONT 57 /* Solaris/Linux-specific. */
+#define BSM_ERRNO_EOWNERDEAD 58 /* Solaris/Linux-specific. */
+#define BSM_ERRNO_ENOTRECOVERABLE 59 /* Solaris/Linux-specific. */
+#define BSM_ERRNO_ENOSTR 60 /* Solaris/Darwin/Linux-specific. */
+#define BSM_ERRNO_ENODATA 61 /* Solaris/Darwin/Linux-specific. */
+#define BSM_ERRNO_ETIME 62 /* Solaris/Darwin/Linux-specific. */
+#define BSM_ERRNO_ENOSR 63 /* Solaris/Darwin/Linux-specific. */
+#define BSM_ERRNO_ENONET 64 /* Solaris/Linux-specific. */
+#define BSM_ERRNO_ENOPKG 65 /* Solaris/Linux-specific. */
+#define BSM_ERRNO_EREMOTE 66
+#define BSM_ERRNO_ENOLINK 67
+#define BSM_ERRNO_EADV 68 /* Solaris/Linux-specific. */
+#define BSM_ERRNO_ESRMNT 69 /* Solaris/Linux-specific. */
+#define BSM_ERRNO_ECOMM 70 /* Solaris/Linux-specific. */
+#define BSM_ERRNO_EPROTO 71
+#define BSM_ERRNO_ELOCKUNMAPPED 72 /* Solaris-specific. */
+#define BSM_ERRNO_ENOTACTIVE 73 /* Solaris-specific. */
+#define BSM_ERRNO_EMULTIHOP 74
+#define BSM_ERRNO_EBADMSG 77
+#define BSM_ERRNO_ENAMETOOLONG 78
+#define BSM_ERRNO_EOVERFLOW 79
+#define BSM_ERRNO_ENOTUNIQ 80 /* Solaris/Linux-specific. */
+#define BSM_ERRNO_EBADFD 81 /* Solaris/Linux-specific. */
+#define BSM_ERRNO_EREMCHG 82 /* Solaris/Linux-specific. */
+#define BSM_ERRNO_ELIBACC 83 /* Solaris/Linux-specific. */
+#define BSM_ERRNO_ELIBBAD 84 /* Solaris/Linux-specific. */
+#define BSM_ERRNO_ELIBSCN 85 /* Solaris/Linux-specific. */
+#define BSM_ERRNO_ELIBMAX 86 /* Solaris/Linux-specific. */
+#define BSM_ERRNO_ELIBEXEC 87 /* Solaris/Linux-specific. */
+#define BSM_ERRNO_EILSEQ 88
+#define BSM_ERRNO_ENOSYS 89
+#define BSM_ERRNO_ELOOP 90
+#define BSM_ERRNO_ERESTART 91
+#define BSM_ERRNO_ESTRPIPE 92 /* Solaris/Linux-specific. */
+#define BSM_ERRNO_ENOTEMPTY 93
+#define BSM_ERRNO_EUSERS 94
+#define BSM_ERRNO_ENOTSOCK 95
+#define BSM_ERRNO_EDESTADDRREQ 96
+#define BSM_ERRNO_EMSGSIZE 97
+#define BSM_ERRNO_EPROTOTYPE 98
+#define BSM_ERRNO_ENOPROTOOPT 99
+#define BSM_ERRNO_EPROTONOSUPPORT 120
+#define BSM_ERRNO_ESOCKTNOSUPPORT 121
+#define BSM_ERRNO_EOPNOTSUPP 122
+#define BSM_ERRNO_EPFNOSUPPORT 123
+#define BSM_ERRNO_EAFNOSUPPORT 124
+#define BSM_ERRNO_EADDRINUSE 125
+#define BSM_ERRNO_EADDRNOTAVAIL 126
+#define BSM_ERRNO_ENETDOWN 127
+#define BSM_ERRNO_ENETUNREACH 128
+#define BSM_ERRNO_ENETRESET 129
+#define BSM_ERRNO_ECONNABORTED 130
+#define BSM_ERRNO_ECONNRESET 131
+#define BSM_ERRNO_ENOBUFS 132
+#define BSM_ERRNO_EISCONN 133
+#define BSM_ERRNO_ENOTCONN 134
+#define BSM_ERRNO_ESHUTDOWN 143
+#define BSM_ERRNO_ETOOMANYREFS 144
+#define BSM_ERRNO_ETIMEDOUT 145
+#define BSM_ERRNO_ECONNREFUSED 146
+#define BSM_ERRNO_EHOSTDOWN 147
+#define BSM_ERRNO_EHOSTUNREACH 148
+#define BSM_ERRNO_EALREADY 149
+#define BSM_ERRNO_EINPROGRESS 150
+#define BSM_ERRNO_ESTALE 151
+
+/*
+ * OpenBSM constants for error numbers not defined in Solaris. In the event
+ * that these errors are added to Solaris, we will deprecate the OpenBSM
+ * numbers in the same way we do for audit event constants.
+ *
+ * ELAST doesn't get a constant in the BSM space.
+ */
+#define BSM_ERRNO_EPROCLIM 190 /* FreeBSD/Darwin-specific. */
+#define BSM_ERRNO_EBADRPC 191 /* FreeBSD/Darwin-specific. */
+#define BSM_ERRNO_ERPCMISMATCH 192 /* FreeBSD/Darwin-specific. */
+#define BSM_ERRNO_EPROGUNAVAIL 193 /* FreeBSD/Darwin-specific. */
+#define BSM_ERRNO_EPROGMISMATCH 194 /* FreeBSD/Darwin-specific. */
+#define BSM_ERRNO_EPROCUNAVAIL 195 /* FreeBSD/Darwin-specific. */
+#define BSM_ERRNO_EFTYPE 196 /* FreeBSD/Darwin-specific. */
+#define BSM_ERRNO_EAUTH 197 /* FreeBSD/Darwin-specific. */
+#define BSM_ERRNO_ENEEDAUTH 198 /* FreeBSD/Darwin-specific. */
+#define BSM_ERRNO_ENOATTR 199 /* FreeBSD/Darwin-specific. */
+#define BSM_ERRNO_EDOOFUS 200 /* FreeBSD-specific. */
+#define BSM_ERRNO_EJUSTRETURN 201 /* FreeBSD-specific. */
+#define BSM_ERRNO_ENOIOCTL 202 /* FreeBSD-specific. */
+#define BSM_ERRNO_EDIRIOCTL 203 /* FreeBSD-specific. */
+#define BSM_ERRNO_EPWROFF 204 /* Darwin-specific. */
+#define BSM_ERRNO_EDEVERR 205 /* Darwin-specific. */
+#define BSM_ERRNO_EBADEXEC 206 /* Darwin-specific. */
+#define BSM_ERRNO_EBADARCH 207 /* Darwin-specific. */
+#define BSM_ERRNO_ESHLIBVERS 208 /* Darwin-specific. */
+#define BSM_ERRNO_EBADMACHO 209 /* Darwin-specific. */
+#define BSM_ERRNO_EPOLICY 210 /* Darwin-specific. */
+#define BSM_ERRNO_EDOTDOT 211 /* Linux-specific. */
+#define BSM_ERRNO_EUCLEAN 212 /* Linux-specific. */
+#define BSM_ERRNO_ENOTNAM 213 /* Linux(Xenix?)-specific. */
+#define BSM_ERRNO_ENAVAIL 214 /* Linux(Xenix?)-specific. */
+#define BSM_ERRNO_EISNAM 215 /* Linux(Xenix?)-specific. */
+#define BSM_ERRNO_EREMOTEIO 216 /* Linux-specific. */
+#define BSM_ERRNO_ENOMEDIUM 217 /* Linux-specific. */
+#define BSM_ERRNO_EMEDIUMTYPE 218 /* Linux-specific. */
+#define BSM_ERRNO_ENOKEY 219 /* Linux-specific. */
+#define BSM_ERRNO_EKEYEXPIRED 220 /* Linux-specific. */
+#define BSM_ERRNO_EKEYREVOKED 221 /* Linux-specific. */
+#define BSM_ERRNO_EKEYREJECTED 222 /* Linux-specific. */
+
+/*
+ * In the event that OpenBSM doesn't have a file representation of a local
+ * error number, use this.
+ */
+#define BSM_ERRNO_UNKNOWN 250 /* OpenBSM-specific. */
+
+#endif /* !_BSM_AUDIT_ERRNO_H_ */