summaryrefslogtreecommitdiff
path: root/lib/librumpuser/rumpuser_errtrans.c
blob: 9120803e0e92c5721f3d459dd725047f14d32150 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
/*	$NetBSD: rumpuser_errtrans.c,v 1.1 2013/04/30 12:39:20 pooka Exp $	*/

/*
 * pseudo-automatically generated.  PLEASE DO EDIT (e.g. in case there
 * are errnos which are defined to be the same value)
 *
 *   awk '/^#define/{printf "#ifdef %s\n\tcase %-15s: return %s;\n#endif\n", \
 *        $2, $2, $3}' < errno.h
 *
 */

#include <errno.h>

/*
 * Translate host errno to rump kernel errno
 */
int rumpuser__errtrans(int); /* a naughty decouple */
int
rumpuser__errtrans(int hosterr)
{

	/* just in case the vompiler is being silly */
	if (hosterr == 0)
		return 0;

	switch (hosterr) {
#ifdef EPERM
	case EPERM          : return 1;
#endif
#ifdef ENOENT
	case ENOENT         : return 2;
#endif
#ifdef ESRCH
	case ESRCH          : return 3;
#endif
#ifdef EINTR
	case EINTR          : return 4;
#endif
#ifdef EIO
	case EIO            : return 5;
#endif
#ifdef ENXIO
	case ENXIO          : return 6;
#endif
#ifdef E2BIG
	case E2BIG          : return 7;
#endif
#ifdef ENOEXEC
	case ENOEXEC        : return 8;
#endif
#ifdef EBADF
	case EBADF          : return 9;
#endif
#ifdef ECHILD
	case ECHILD         : return 10;
#endif
#ifdef EDEADLK
	case EDEADLK        : return 11;
#endif
#ifdef ENOMEM
	case ENOMEM         : return 12;
#endif
#ifdef EACCES
	case EACCES         : return 13;
#endif
#ifdef EFAULT
	case EFAULT         : return 14;
#endif
#ifdef ENOTBLK
	case ENOTBLK        : return 15;
#endif
#ifdef EBUSY
	case EBUSY          : return 16;
#endif
#ifdef EEXIST
	case EEXIST         : return 17;
#endif
#ifdef EXDEV
	case EXDEV          : return 18;
#endif
#ifdef ENODEV
	case ENODEV         : return 19;
#endif
#ifdef ENOTDIR
	case ENOTDIR        : return 20;
#endif
#ifdef EISDIR
	case EISDIR         : return 21;
#endif
#ifdef EINVAL
	case EINVAL         : return 22;
#endif
#ifdef ENFILE
	case ENFILE         : return 23;
#endif
#ifdef EMFILE
	case EMFILE         : return 24;
#endif
#ifdef ENOTTY
	case ENOTTY         : return 25;
#endif
#ifdef ETXTBSY
	case ETXTBSY        : return 26;
#endif
#ifdef EFBIG
	case EFBIG          : return 27;
#endif
#ifdef ENOSPC
	case ENOSPC         : return 28;
#endif
#ifdef ESPIPE
	case ESPIPE         : return 29;
#endif
#ifdef EROFS
	case EROFS          : return 30;
#endif
#ifdef EMLINK
	case EMLINK         : return 31;
#endif
#ifdef EPIPE
	case EPIPE          : return 32;
#endif
#ifdef EDOM
	case EDOM           : return 33;
#endif
#ifdef ERANGE
	case ERANGE         : return 34;
#endif
#ifdef EAGAIN
	case EAGAIN         : return 35;
#endif
#if defined(EWOULDBLOCK) && EWOULDBLOCK != EAGAIN
	case EWOULDBLOCK    : return 35;
#endif
#ifdef EINPROGRESS
	case EINPROGRESS    : return 36;
#endif
#ifdef EALREADY
	case EALREADY       : return 37;
#endif
#ifdef ENOTSOCK
	case ENOTSOCK       : return 38;
#endif
#ifdef EDESTADDRREQ
	case EDESTADDRREQ   : return 39;
#endif
#ifdef EMSGSIZE
	case EMSGSIZE       : return 40;
#endif
#ifdef EPROTOTYPE
	case EPROTOTYPE     : return 41;
#endif
#ifdef ENOPROTOOPT
	case ENOPROTOOPT    : return 42;
#endif
#ifdef EPROTONOSUPPORT
	case EPROTONOSUPPORT: return 43;
#endif
#ifdef ESOCKTNOSUPPORT
	case ESOCKTNOSUPPORT: return 44;
#endif
#ifdef EOPNOTSUPP
	case EOPNOTSUPP     : return 45;
#endif
#ifdef EPFNOSUPPORT
	case EPFNOSUPPORT   : return 46;
#endif
#ifdef EAFNOSUPPORT
	case EAFNOSUPPORT   : return 47;
#endif
#ifdef EADDRINUSE
	case EADDRINUSE     : return 48;
#endif
#ifdef EADDRNOTAVAIL
	case EADDRNOTAVAIL  : return 49;
#endif
#ifdef ENETDOWN
	case ENETDOWN       : return 50;
#endif
#ifdef ENETUNREACH
	case ENETUNREACH    : return 51;
#endif
#ifdef ENETRESET
	case ENETRESET      : return 52;
#endif
#ifdef ECONNABORTED
	case ECONNABORTED   : return 53;
#endif
#ifdef ECONNRESET
	case ECONNRESET     : return 54;
#endif
#ifdef ENOBUFS
	case ENOBUFS        : return 55;
#endif
#ifdef EISCONN
	case EISCONN        : return 56;
#endif
#ifdef ENOTCONN
	case ENOTCONN       : return 57;
#endif
#ifdef ESHUTDOWN
	case ESHUTDOWN      : return 58;
#endif
#ifdef ETOOMANYREFS
	case ETOOMANYREFS   : return 59;
#endif
#ifdef ETIMEDOUT
	case ETIMEDOUT      : return 60;
#endif
#ifdef ECONNREFUSED
	case ECONNREFUSED   : return 61;
#endif
#ifdef ELOOP
	case ELOOP          : return 62;
#endif
#ifdef ENAMETOOLONG
	case ENAMETOOLONG   : return 63;
#endif
#ifdef EHOSTDOWN
	case EHOSTDOWN      : return 64;
#endif
#ifdef EHOSTUNREACH
	case EHOSTUNREACH   : return 65;
#endif
#ifdef ENOTEMPTY
	case ENOTEMPTY      : return 66;
#endif
#ifdef EPROCLIM
	case EPROCLIM       : return 67;
#endif
#ifdef EUSERS
	case EUSERS         : return 68;
#endif
#ifdef EDQUOT
	case EDQUOT         : return 69;
#endif
#ifdef ESTALE
	case ESTALE         : return 70;
#endif
#ifdef EREMOTE
	case EREMOTE        : return 71;
#endif
#ifdef EBADRPC
	case EBADRPC        : return 72;
#endif
#ifdef ERPCMISMATCH
	case ERPCMISMATCH   : return 73;
#endif
#ifdef EPROGUNAVAIL
	case EPROGUNAVAIL   : return 74;
#endif
#ifdef EPROGMISMATCH
	case EPROGMISMATCH  : return 75;
#endif
#ifdef EPROCUNAVAIL
	case EPROCUNAVAIL   : return 76;
#endif
#ifdef ENOLCK
	case ENOLCK         : return 77;
#endif
#ifdef ENOSYS
	case ENOSYS         : return 78;
#endif
#ifdef EFTYPE
	case EFTYPE         : return 79;
#endif
#ifdef EAUTH
	case EAUTH          : return 80;
#endif
#ifdef ENEEDAUTH
	case ENEEDAUTH      : return 81;
#endif
#ifdef EIDRM
	case EIDRM          : return 82;
#endif
#ifdef ENOMSG
	case ENOMSG         : return 83;
#endif
#ifdef EOVERFLOW
	case EOVERFLOW      : return 84;
#endif
#ifdef EILSEQ
	case EILSEQ         : return 85;
#endif
#if defined(ENOTSUP) && (!defined(EOPNOTSUPP) || ENOTSUP != EOPNOTSUPP)
	case ENOTSUP        : return 86;
#endif
#ifdef ECANCELED
	case ECANCELED      : return 87;
#endif
#ifdef EBADMSG
	case EBADMSG        : return 88;
#endif
#ifdef ENODATA
	case ENODATA        : return 89;
#endif
#ifdef ENOSR
	case ENOSR          : return 90;
#endif
#ifdef ENOSTR
	case ENOSTR         : return 91;
#endif
#ifdef ETIME
	case ETIME          : return 92;
#endif
#ifdef ENOATTR
	case ENOATTR        : return 93;
#endif
#ifdef EMULTIHOP
	case EMULTIHOP      : return 94;
#endif
#ifdef ENOLINK
	case ENOLINK        : return 95;
#endif
#ifdef EPROTO
	case EPROTO         : return 96;
#endif

	default             : return 22; /* EINVAL */
	}
}