1*c83a76b0SSuyog Pawar /******************************************************************************
2*c83a76b0SSuyog Pawar *
3*c83a76b0SSuyog Pawar * Copyright (C) 2018 The Android Open Source Project
4*c83a76b0SSuyog Pawar *
5*c83a76b0SSuyog Pawar * Licensed under the Apache License, Version 2.0 (the "License");
6*c83a76b0SSuyog Pawar * you may not use this file except in compliance with the License.
7*c83a76b0SSuyog Pawar * You may obtain a copy of the License at:
8*c83a76b0SSuyog Pawar *
9*c83a76b0SSuyog Pawar * http://www.apache.org/licenses/LICENSE-2.0
10*c83a76b0SSuyog Pawar *
11*c83a76b0SSuyog Pawar * Unless required by applicable law or agreed to in writing, software
12*c83a76b0SSuyog Pawar * distributed under the License is distributed on an "AS IS" BASIS,
13*c83a76b0SSuyog Pawar * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14*c83a76b0SSuyog Pawar * See the License for the specific language governing permissions and
15*c83a76b0SSuyog Pawar * limitations under the License.
16*c83a76b0SSuyog Pawar *
17*c83a76b0SSuyog Pawar *****************************************************************************
18*c83a76b0SSuyog Pawar * Originally developed and contributed by Ittiam Systems Pvt. Ltd, Bangalore
19*c83a76b0SSuyog Pawar */
20*c83a76b0SSuyog Pawar
21*c83a76b0SSuyog Pawar /*****************************************************************************/
22*c83a76b0SSuyog Pawar /* */
23*c83a76b0SSuyog Pawar /* File Name : osal_error.c */
24*c83a76b0SSuyog Pawar /* */
25*c83a76b0SSuyog Pawar /* Description : This file contains all the error code mappings across*/
26*c83a76b0SSuyog Pawar /* platforms. */
27*c83a76b0SSuyog Pawar /* */
28*c83a76b0SSuyog Pawar /* List of Functions : get_windows_error */
29*c83a76b0SSuyog Pawar /* get_linux_error */
30*c83a76b0SSuyog Pawar /* get_ti_bios_error */
31*c83a76b0SSuyog Pawar /* */
32*c83a76b0SSuyog Pawar /* Issues / Problems : None */
33*c83a76b0SSuyog Pawar /* */
34*c83a76b0SSuyog Pawar /* Revision History : */
35*c83a76b0SSuyog Pawar /* */
36*c83a76b0SSuyog Pawar /* DD MM YYYY Author(s) Changes (Describe the changes made) */
37*c83a76b0SSuyog Pawar /* 30 03 2006 Ittiam Draft */
38*c83a76b0SSuyog Pawar /* */
39*c83a76b0SSuyog Pawar /*****************************************************************************/
40*c83a76b0SSuyog Pawar
41*c83a76b0SSuyog Pawar /*****************************************************************************/
42*c83a76b0SSuyog Pawar /* File Includes */
43*c83a76b0SSuyog Pawar /*****************************************************************************/
44*c83a76b0SSuyog Pawar
45*c83a76b0SSuyog Pawar /* System includes files */
46*c83a76b0SSuyog Pawar
47*c83a76b0SSuyog Pawar #include <errno.h>
48*c83a76b0SSuyog Pawar
49*c83a76b0SSuyog Pawar /* User include files */
50*c83a76b0SSuyog Pawar #include "cast_types.h"
51*c83a76b0SSuyog Pawar #include "osal_errno.h"
52*c83a76b0SSuyog Pawar
53*c83a76b0SSuyog Pawar /*****************************************************************************/
54*c83a76b0SSuyog Pawar /* Global Variable Definitions */
55*c83a76b0SSuyog Pawar /*****************************************************************************/
56*c83a76b0SSuyog Pawar
57*c83a76b0SSuyog Pawar WORD32 osal_errno[] = {
58*c83a76b0SSuyog Pawar OSAL_NOERROR,
59*c83a76b0SSuyog Pawar OSAL_PERM, /* EPERM */
60*c83a76b0SSuyog Pawar OSAL_NOENT, /* ENOENT */
61*c83a76b0SSuyog Pawar OSAL_SRCH, /* ESRCH */
62*c83a76b0SSuyog Pawar OSAL_INTR, /* EINTR */
63*c83a76b0SSuyog Pawar OSAL_IO, /* EIO */
64*c83a76b0SSuyog Pawar OSAL_NXIO, /* ENXIO */
65*c83a76b0SSuyog Pawar OSAL_2BIG, /* E2BIG */
66*c83a76b0SSuyog Pawar OSAL_NOEXEC, /* ENOEXEC */
67*c83a76b0SSuyog Pawar OSAL_BADF, /* EBADF */
68*c83a76b0SSuyog Pawar OSAL_CHILD, /* ECHILD */
69*c83a76b0SSuyog Pawar OSAL_AGAIN, /* EAGAIN, EDEADLOCK */
70*c83a76b0SSuyog Pawar OSAL_NOMEM, /* ENOMEM */
71*c83a76b0SSuyog Pawar OSAL_ACCES, /* EACCES */
72*c83a76b0SSuyog Pawar OSAL_FAULT, /* EFAULT */
73*c83a76b0SSuyog Pawar OSAL_NOTBLK, /* ENOTBLK */
74*c83a76b0SSuyog Pawar OSAL_BUSY, /* EBUSY */
75*c83a76b0SSuyog Pawar OSAL_EXIST, /* EEXIST */
76*c83a76b0SSuyog Pawar OSAL_XDEV, /* EXDEV */
77*c83a76b0SSuyog Pawar OSAL_NODEV, /* ENODEV */
78*c83a76b0SSuyog Pawar OSAL_NOTDIR, /* ENOTDIR */
79*c83a76b0SSuyog Pawar OSAL_ISDIR, /* EISDIR */
80*c83a76b0SSuyog Pawar OSAL_INVAL, /* EINVAL */
81*c83a76b0SSuyog Pawar OSAL_NFILE, /* ENFILE */
82*c83a76b0SSuyog Pawar OSAL_MFILE, /* EMFILE */
83*c83a76b0SSuyog Pawar OSAL_NOTTY, /* ENOTTY */
84*c83a76b0SSuyog Pawar OSAL_TXTBSY, /* ETXTBSY */
85*c83a76b0SSuyog Pawar OSAL_FBIG, /* EFBIG */
86*c83a76b0SSuyog Pawar OSAL_NOSPC, /* ENOSPC */
87*c83a76b0SSuyog Pawar OSAL_SPIPE, /* ESPIPE */
88*c83a76b0SSuyog Pawar OSAL_ROFS, /* EROFS */
89*c83a76b0SSuyog Pawar OSAL_MLINK, /* EMLINK */
90*c83a76b0SSuyog Pawar OSAL_PIPE, /* EPIPE */
91*c83a76b0SSuyog Pawar OSAL_DOM, /* EDOM */
92*c83a76b0SSuyog Pawar OSAL_RANGE, /* ERANGE */
93*c83a76b0SSuyog Pawar OSAL_DEADLK, /* EDEADLK, EDEADLOCK */
94*c83a76b0SSuyog Pawar OSAL_NAMETOOLONG, /* ENAMETOOLONG */
95*c83a76b0SSuyog Pawar OSAL_NOLCK, /* ENOLCK */
96*c83a76b0SSuyog Pawar OSAL_NOSYS, /* ENOSYS */
97*c83a76b0SSuyog Pawar OSAL_NOTEMPTY, /* ENOTEMPTY */
98*c83a76b0SSuyog Pawar OSAL_LOOP, /* ELOOP */
99*c83a76b0SSuyog Pawar OSAL_NOERROR,
100*c83a76b0SSuyog Pawar OSAL_NOMSG, /* ENOMSG */
101*c83a76b0SSuyog Pawar OSAL_IDRM, /* EIDRM */
102*c83a76b0SSuyog Pawar OSAL_CHRNG, /* ECHRNG */
103*c83a76b0SSuyog Pawar OSAL_L2NSYNC, /* EL2NSYNC */
104*c83a76b0SSuyog Pawar OSAL_L3HLT, /* EL3HLT */
105*c83a76b0SSuyog Pawar OSAL_L3RST, /* EL3RST */
106*c83a76b0SSuyog Pawar OSAL_LNRNG, /* ELNRNG */
107*c83a76b0SSuyog Pawar OSAL_UNATCH, /* EUNATCH */
108*c83a76b0SSuyog Pawar OSAL_NOCSI, /* ENOCSI */
109*c83a76b0SSuyog Pawar OSAL_L2HLT, /* EL2HLT */
110*c83a76b0SSuyog Pawar OSAL_BADE, /* EBADE */
111*c83a76b0SSuyog Pawar OSAL_BADR, /* EBADR */
112*c83a76b0SSuyog Pawar OSAL_XFULL, /* EXFULL */
113*c83a76b0SSuyog Pawar OSAL_NOANO, /* ENOANO */
114*c83a76b0SSuyog Pawar OSAL_BADRQC, /* EBADRQC */
115*c83a76b0SSuyog Pawar OSAL_BADSLT, /* EBADSLT */
116*c83a76b0SSuyog Pawar OSAL_NOERROR,
117*c83a76b0SSuyog Pawar OSAL_BFONT, /* EBFONT */
118*c83a76b0SSuyog Pawar OSAL_NOSTR, /* ENOSTR */
119*c83a76b0SSuyog Pawar OSAL_NODATA, /* ENODATA */
120*c83a76b0SSuyog Pawar OSAL_TIME, /* ETIME */
121*c83a76b0SSuyog Pawar OSAL_NOSR, /* ENOSR */
122*c83a76b0SSuyog Pawar OSAL_NONET, /* ENONET */
123*c83a76b0SSuyog Pawar OSAL_NOPKG, /* ENOPKG */
124*c83a76b0SSuyog Pawar OSAL_REMOTE, /* EREMOTE */
125*c83a76b0SSuyog Pawar OSAL_NOLINK, /* ENOLINK */
126*c83a76b0SSuyog Pawar OSAL_ADV, /* EADV */
127*c83a76b0SSuyog Pawar OSAL_SRMNT, /* ESRMNT */
128*c83a76b0SSuyog Pawar OSAL_COMM, /* ECOMM */
129*c83a76b0SSuyog Pawar OSAL_PROTO, /* EPROTO */
130*c83a76b0SSuyog Pawar OSAL_MULTIHOP, /* EMULTIHOP */
131*c83a76b0SSuyog Pawar OSAL_DOTDOT, /* EDOTDOT */
132*c83a76b0SSuyog Pawar OSAL_BADMSG, /* EBADMSG */
133*c83a76b0SSuyog Pawar OSAL_OVERFLOW, /* EOVERFLOW */
134*c83a76b0SSuyog Pawar OSAL_NOTUNIQ, /* ENOTUNIQ */
135*c83a76b0SSuyog Pawar OSAL_BADFD, /* EBADFD */
136*c83a76b0SSuyog Pawar OSAL_REMCHG, /* EREMCHG */
137*c83a76b0SSuyog Pawar OSAL_LIBACC, /* ELIBACC */
138*c83a76b0SSuyog Pawar OSAL_LIBBAD, /* ELIBBAD */
139*c83a76b0SSuyog Pawar OSAL_LIBSCN, /* ELIBSCN */
140*c83a76b0SSuyog Pawar OSAL_LIBMAX, /* ELIBMAX */
141*c83a76b0SSuyog Pawar OSAL_LIBEXEC, /* ELIBEXEC */
142*c83a76b0SSuyog Pawar OSAL_ILSEQ, /* EILSEQ */
143*c83a76b0SSuyog Pawar OSAL_RESTART, /* ERESTART */
144*c83a76b0SSuyog Pawar OSAL_STRPIPE, /* ESTRPIPE */
145*c83a76b0SSuyog Pawar OSAL_USERS, /* EUSERS */
146*c83a76b0SSuyog Pawar OSAL_NOTSOCK, /* ENOTSOCK */
147*c83a76b0SSuyog Pawar OSAL_DESTADDRREQ, /* EDESTADDRREQ */
148*c83a76b0SSuyog Pawar OSAL_MSGSIZE, /* EMSGSIZE */
149*c83a76b0SSuyog Pawar OSAL_PROTOTYPE, /* EPROTOTYPE */
150*c83a76b0SSuyog Pawar OSAL_NOPROTOOPT, /* ENOPROTOOPT */
151*c83a76b0SSuyog Pawar OSAL_PROTONOSUPPORT, /* EPROTONOSUPPORT */
152*c83a76b0SSuyog Pawar OSAL_SOCKTNOSUPPORT, /* ESOCKTNOSUPPORT */
153*c83a76b0SSuyog Pawar OSAL_OPNOTSUPP, /* EOPNOTSUPP */
154*c83a76b0SSuyog Pawar OSAL_PFNOSUPPORT, /* EPFNOSUPPORT */
155*c83a76b0SSuyog Pawar OSAL_AFNOSUPPORT, /* EAFNOSUPPORT */
156*c83a76b0SSuyog Pawar OSAL_ADDRINUSE, /* EADDRINUSE */
157*c83a76b0SSuyog Pawar OSAL_ADDRNOTAVAIL, /* EADDRNOTAVAIL */
158*c83a76b0SSuyog Pawar OSAL_NETDOWN, /* ENETDOWN */
159*c83a76b0SSuyog Pawar OSAL_NETUNREACH, /* ENETUNREACH */
160*c83a76b0SSuyog Pawar OSAL_NETRESET, /* ENETRESET */
161*c83a76b0SSuyog Pawar OSAL_CONNABORTED, /* ECONNABORTED */
162*c83a76b0SSuyog Pawar OSAL_CONNRESET, /* ECONNRESET */
163*c83a76b0SSuyog Pawar OSAL_NOBUFS, /* ENOBUFS */
164*c83a76b0SSuyog Pawar OSAL_ISCONN, /* EISCONN */
165*c83a76b0SSuyog Pawar OSAL_NOTCONN, /* ENOTCONN */
166*c83a76b0SSuyog Pawar OSAL_SHUTDOWN, /* ESHUTDOWN */
167*c83a76b0SSuyog Pawar OSAL_TOOMANYREFS, /* ETOOMANYREFS */
168*c83a76b0SSuyog Pawar OSAL_TIMEDOUT, /* ETIMEDOUT */
169*c83a76b0SSuyog Pawar OSAL_CONNREFUSED, /* ECONNREFUSED */
170*c83a76b0SSuyog Pawar OSAL_HOSTDOWN, /* EHOSTDOWN */
171*c83a76b0SSuyog Pawar OSAL_HOSTUNREACH, /* EHOSTUNREACH */
172*c83a76b0SSuyog Pawar OSAL_ALREADY, /* EALREADY */
173*c83a76b0SSuyog Pawar OSAL_INPROGRESS, /* EINPROGRESS */
174*c83a76b0SSuyog Pawar OSAL_STALE, /* ESTALE */
175*c83a76b0SSuyog Pawar OSAL_UCLEAN, /* EUCLEAN */
176*c83a76b0SSuyog Pawar OSAL_NOTNAM, /* ENOTNAM */
177*c83a76b0SSuyog Pawar OSAL_NAVAIL, /* ENAVAIL */
178*c83a76b0SSuyog Pawar OSAL_ISNAM, /* EISNAM */
179*c83a76b0SSuyog Pawar OSAL_REMOTEIO, /* EREMOTEIO */
180*c83a76b0SSuyog Pawar OSAL_DQUOT, /* EDQUOT */
181*c83a76b0SSuyog Pawar OSAL_NOMEDIUM, /* ENOMEDIUM */
182*c83a76b0SSuyog Pawar OSAL_MEDIUMTYPE, /* EMEDIUMTYPE */
183*c83a76b0SSuyog Pawar OSAL_CANCELED, /* ECANCELED */
184*c83a76b0SSuyog Pawar OSAL_NOKEY, /* ENOKEY */
185*c83a76b0SSuyog Pawar OSAL_KEYEXPIRED, /* EKEYEXPIRED */
186*c83a76b0SSuyog Pawar OSAL_KEYREVOKED, /* EKEYREVOKED */
187*c83a76b0SSuyog Pawar OSAL_KEYREJECTED, /* EKEYREJECTED */
188*c83a76b0SSuyog Pawar };
189*c83a76b0SSuyog Pawar
190*c83a76b0SSuyog Pawar /*****************************************************************************/
191*c83a76b0SSuyog Pawar /* */
192*c83a76b0SSuyog Pawar /* Function Name : get_linux_error */
193*c83a76b0SSuyog Pawar /* */
194*c83a76b0SSuyog Pawar /* Description : This function returns the error code for Redhat Linux */
195*c83a76b0SSuyog Pawar /* platform. */
196*c83a76b0SSuyog Pawar /* */
197*c83a76b0SSuyog Pawar /* Inputs : None */
198*c83a76b0SSuyog Pawar /* Globals : None */
199*c83a76b0SSuyog Pawar /* */
200*c83a76b0SSuyog Pawar /* Processing : Returns OSAL error code if error is a listed OSAL error */
201*c83a76b0SSuyog Pawar /* code. Or else returns platform depedent error code. */
202*c83a76b0SSuyog Pawar /* */
203*c83a76b0SSuyog Pawar /* Outputs : Error code */
204*c83a76b0SSuyog Pawar /* */
205*c83a76b0SSuyog Pawar /* Returns : If error is one of OSAL listed error code - OSAL_<ERROR> */
206*c83a76b0SSuyog Pawar /* Else system error code. */
207*c83a76b0SSuyog Pawar /* */
208*c83a76b0SSuyog Pawar /* Issues : None */
209*c83a76b0SSuyog Pawar /* */
210*c83a76b0SSuyog Pawar /* Revision History: */
211*c83a76b0SSuyog Pawar /* */
212*c83a76b0SSuyog Pawar /* DD MM YYYY Author(s) Changes (Describe the changes made) */
213*c83a76b0SSuyog Pawar /* 30 03 2006 Ittiam Draft */
214*c83a76b0SSuyog Pawar /* */
215*c83a76b0SSuyog Pawar /*****************************************************************************/
216*c83a76b0SSuyog Pawar
get_linux_error(void)217*c83a76b0SSuyog Pawar UWORD32 get_linux_error(void)
218*c83a76b0SSuyog Pawar {
219*c83a76b0SSuyog Pawar /* Under Linux platform, error codes 0 - 130 are supported */
220*c83a76b0SSuyog Pawar if(130 > errno)
221*c83a76b0SSuyog Pawar return osal_errno[errno];
222*c83a76b0SSuyog Pawar
223*c83a76b0SSuyog Pawar return errno;
224*c83a76b0SSuyog Pawar }
225