]> git.proxmox.com Git - ceph.git/blob - ceph/src/common/darwin_errno.cc
update sources to v12.1.0
[ceph.git] / ceph / src / common / darwin_errno.cc
1 // -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*-
2 // vim: ts=8 sw=2 smarttab
3 /*
4 * Ceph - scalable distributed file system
5 *
6 * Copyright (C) 2011 New Dream Network
7 *
8 * This is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU Lesser General Public
10 * License version 2.1, as published by the Free Software
11 * Foundation. See file COPYING.
12 *
13 */
14
15 #include <errno.h>
16 #include "include/types.h"
17 #include "include/compat.h"
18
19
20 // converts from linux errno values to host values
21 __s32 ceph_to_hostos_errno(__s32 r)
22 {
23 if (r < -34) {
24 switch (r) {
25 case -35:
26 return -EDEADLK;
27 case -36:
28 return -ENAMETOOLONG;
29 case -37:
30 return -ENOLCK;
31 case -38:
32 return -ENOSYS;
33 case -39:
34 return -ENOTEMPTY;
35 case -40:
36 return -ELOOP;
37 case -42:
38 return -ENOMSG;
39 case -43:
40 return -EIDRM;
41 case -44:
42 return -EPERM; //TODO ECHRNG
43 case -45:
44 return -EPERM; //TODO EL2NSYNC
45 case -46:
46 return -EPERM; //TODO EL3HLT
47 case -47:
48 return -EPERM; //TODO EL3RST
49 case -48:
50 return -EPERM; //TODO ELNRNG
51 case -49:
52 return -EPERM; //TODO EUNATCH
53 case -51:
54 return -EPERM; //TODO EL2HLT;
55 case -52:
56 return -EPERM; //TODO EBADE
57 case -53:
58 return -EPERM; //TODO EBADR
59 case -54:
60 return -EPERM; //TODO EXFULL
61 case -55:
62 return -EPERM; //TODO ENOANO
63 case -56:
64 return -EPERM; //TODO EBADRQC
65 case -57:
66 return -EPERM; //TODO EBADSLT
67 case -59:
68 return -EPERM; //TODO EBFONT
69 case -60:
70 return -ENOSTR;
71 case -61:
72 return -ENODATA;
73 case -62:
74 return -ETIME;
75 case -63:
76 return -ENOSR;
77 case -64:
78 return -EPERM; //TODO ENONET
79 case -65:
80 return -EPERM; //TODO ENOPKG
81 case -66:
82 return -EREMOTE;
83 case -67:
84 return -ENOLINK;
85 case -68:
86 return -EPERM; //TODO EADV
87 case -69:
88 return -EPERM; //TODO ESRMNT
89 case -70:
90 return -EPERM; //TODO ECOMM
91 case -71:
92 return -EPROTO;
93 case -72:
94 return -EMULTIHOP;
95 case -73:
96 return -EPERM; //TODO EDOTDOT
97 case -74:
98 return -EBADMSG;
99 case -75:
100 return -EOVERFLOW;
101 case -76:
102 return -EPERM; //TODO ENOTUNIQ
103 case -77:
104 return -EPERM; //TODO EBADFD
105 case -78:
106 return -EPERM; //TODO EREMCHG
107 case -79:
108 return -EPERM; //TODO ELIBACC
109 case -80:
110 return -EPERM; //TODO ELIBBAD
111 case -81:
112 return -EPERM; //TODO ELIBSCN
113 case -82:
114 return -EPERM; //TODO ELIBMAX
115 case -83:
116 return -EPERM; // TODO ELIBEXEC
117 case -84:
118 return -EILSEQ;
119 case -85:
120 return -EINTR;
121 case -86:
122 return -EPERM; //ESTRPIPE;
123 case -87:
124 return -EUSERS;
125 case -88:
126 return -ENOTSOCK;
127 case -89:
128 return -EDESTADDRREQ;
129 case -90:
130 return -EMSGSIZE;
131 case -91:
132 return -EPROTOTYPE;
133 case -92:
134 return -ENOPROTOOPT;
135 case -93:
136 return -EPROTONOSUPPORT;
137 case -94:
138 return -ESOCKTNOSUPPORT;
139 case -95:
140 return -EOPNOTSUPP;
141 case -96:
142 return -EPFNOSUPPORT;
143 case -97:
144 return -EAFNOSUPPORT;
145 case -98:
146 return -EADDRINUSE;
147 case -99:
148 return -EADDRNOTAVAIL;
149 case -100:
150 return -ENETDOWN;
151 case -101:
152 return -ENETUNREACH;
153 case -102:
154 return -ENETRESET;
155 case -103:
156 return -ECONNABORTED;
157 case -104:
158 return -ECONNRESET;
159 case -105:
160 return -ENOBUFS;
161 case -106:
162 return -EISCONN;
163 case -107:
164 return -ENOTCONN;
165 case -108:
166 return -ESHUTDOWN;
167 case -109:
168 return -ETOOMANYREFS;
169 case -110:
170 return -ETIMEDOUT;
171 case -111:
172 return -ECONNREFUSED;
173 case -112:
174 return -EHOSTDOWN;
175 case -113:
176 return -EHOSTUNREACH;
177 case -114:
178 return -EALREADY;
179 case -115:
180 return -EINPROGRESS;
181 case -116:
182 return -ESTALE;
183 case -117:
184 return -EPERM; //TODO EUCLEAN
185 case -118:
186 return -EPERM; //TODO ENOTNAM
187 case -119:
188 return -EPERM; //TODO ENAVAIL
189 case -120:
190 return -EPERM; //TODO EISNAM
191 case -121:
192 return -EREMOTEIO;
193 case -122:
194 return -EDQUOT;
195 case -123:
196 return -EPERM; //TODO ENOMEDIUM
197 case -124:
198 return -EPERM; //TODO EMEDIUMTYPE - not used
199 case -125:
200 return -ECANCELED;
201 case -126:
202 return -EPERM; //TODO ENOKEY
203 case -127:
204 return -EPERM; //TODO EKEYEXPIRED
205 case -128:
206 return -EPERM; //TODO EKEYREVOKED
207 case -129:
208 return -EPERM; //TODO EKEYREJECTED
209 case -130:
210 return -EOWNERDEAD;
211 case -131:
212 return -ENOTRECOVERABLE;
213 case -132:
214 return -EPERM; //TODO ERFKILL
215 case -133:
216 return -EPERM; //TODO EHWPOISON
217
218 default: {
219 break;
220 }
221 }
222 }
223 return r; // otherwise return original value
224 }
225
226 // converts Host OS errno values to linux/Ceph values
227 // XXX Currently not worked out
228 __s32 hostos_to_ceph_errno(__s32 r)
229 {
230 return r;
231 }
232
233