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