C++程序  |  225行  |  11.19 KB

/******************************************************************************
 *
 * Copyright (C) 2018 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at:
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 *
 *****************************************************************************
 * Originally developed and contributed by Ittiam Systems Pvt. Ltd, Bangalore
*/

/*****************************************************************************/
/*                                                                           */
/*  File Name         : osal_error.c                                         */
/*                                                                           */
/*  Description       : This file contains all the error code mappings across*/
/*                      platforms.                                           */
/*                                                                           */
/*  List of Functions : get_windows_error                                    */
/*                      get_linux_error                                      */
/*                      get_ti_bios_error                                    */
/*                                                                           */
/*  Issues / Problems : None                                                 */
/*                                                                           */
/*  Revision History  :                                                      */
/*                                                                           */
/*         DD MM YYYY   Author(s)       Changes (Describe the changes made)  */
/*         30 03 2006   Ittiam          Draft                                */
/*                                                                           */
/*****************************************************************************/

/*****************************************************************************/
/* File Includes                                                             */
/*****************************************************************************/

/* System includes files */

#include <errno.h>

/* User include files */
#include "cast_types.h"
#include "osal_errno.h"

/*****************************************************************************/
/* Global Variable Definitions                                               */
/*****************************************************************************/

WORD32 osal_errno[] = {
    OSAL_NOERROR,
    OSAL_PERM, /*  EPERM                   */
    OSAL_NOENT, /*  ENOENT                  */
    OSAL_SRCH, /*  ESRCH                   */
    OSAL_INTR, /*  EINTR                   */
    OSAL_IO, /*  EIO                     */
    OSAL_NXIO, /*  ENXIO                   */
    OSAL_2BIG, /*  E2BIG                   */
    OSAL_NOEXEC, /*  ENOEXEC                 */
    OSAL_BADF, /*  EBADF                   */
    OSAL_CHILD, /*  ECHILD                  */
    OSAL_AGAIN, /*  EAGAIN, EDEADLOCK       */
    OSAL_NOMEM, /*  ENOMEM                  */
    OSAL_ACCES, /*  EACCES                  */
    OSAL_FAULT, /*  EFAULT                  */
    OSAL_NOTBLK, /*  ENOTBLK                 */
    OSAL_BUSY, /*  EBUSY                   */
    OSAL_EXIST, /*  EEXIST                  */
    OSAL_XDEV, /*  EXDEV                   */
    OSAL_NODEV, /*  ENODEV                  */
    OSAL_NOTDIR, /*  ENOTDIR                 */
    OSAL_ISDIR, /*  EISDIR                  */
    OSAL_INVAL, /*  EINVAL                  */
    OSAL_NFILE, /*  ENFILE                  */
    OSAL_MFILE, /*  EMFILE                  */
    OSAL_NOTTY, /*  ENOTTY                  */
    OSAL_TXTBSY, /*  ETXTBSY                 */
    OSAL_FBIG, /*  EFBIG                   */
    OSAL_NOSPC, /*  ENOSPC                  */
    OSAL_SPIPE, /*  ESPIPE                  */
    OSAL_ROFS, /*  EROFS                   */
    OSAL_MLINK, /*  EMLINK                  */
    OSAL_PIPE, /*  EPIPE                   */
    OSAL_DOM, /*  EDOM                    */
    OSAL_RANGE, /*  ERANGE                  */
    OSAL_DEADLK, /*  EDEADLK, EDEADLOCK      */
    OSAL_NAMETOOLONG, /*  ENAMETOOLONG            */
    OSAL_NOLCK, /*  ENOLCK                  */
    OSAL_NOSYS, /*  ENOSYS                  */
    OSAL_NOTEMPTY, /*  ENOTEMPTY               */
    OSAL_LOOP, /*  ELOOP                   */
    OSAL_NOERROR,
    OSAL_NOMSG, /*  ENOMSG                  */
    OSAL_IDRM, /*  EIDRM                   */
    OSAL_CHRNG, /*  ECHRNG                  */
    OSAL_L2NSYNC, /*  EL2NSYNC                */
    OSAL_L3HLT, /*  EL3HLT                  */
    OSAL_L3RST, /*  EL3RST                  */
    OSAL_LNRNG, /*  ELNRNG                  */
    OSAL_UNATCH, /*  EUNATCH                 */
    OSAL_NOCSI, /*  ENOCSI                  */
    OSAL_L2HLT, /*  EL2HLT                  */
    OSAL_BADE, /*  EBADE                   */
    OSAL_BADR, /*  EBADR                   */
    OSAL_XFULL, /*  EXFULL                  */
    OSAL_NOANO, /*  ENOANO                  */
    OSAL_BADRQC, /*  EBADRQC                 */
    OSAL_BADSLT, /*  EBADSLT                 */
    OSAL_NOERROR,
    OSAL_BFONT, /*  EBFONT                  */
    OSAL_NOSTR, /*  ENOSTR                  */
    OSAL_NODATA, /*  ENODATA                 */
    OSAL_TIME, /*  ETIME                   */
    OSAL_NOSR, /*  ENOSR                   */
    OSAL_NONET, /*  ENONET                  */
    OSAL_NOPKG, /*  ENOPKG                  */
    OSAL_REMOTE, /*  EREMOTE                 */
    OSAL_NOLINK, /*  ENOLINK                 */
    OSAL_ADV, /*  EADV                    */
    OSAL_SRMNT, /*  ESRMNT                  */
    OSAL_COMM, /*  ECOMM                   */
    OSAL_PROTO, /*  EPROTO                  */
    OSAL_MULTIHOP, /*  EMULTIHOP               */
    OSAL_DOTDOT, /*  EDOTDOT                 */
    OSAL_BADMSG, /*  EBADMSG                 */
    OSAL_OVERFLOW, /*  EOVERFLOW               */
    OSAL_NOTUNIQ, /*  ENOTUNIQ                */
    OSAL_BADFD, /*  EBADFD                  */
    OSAL_REMCHG, /*  EREMCHG                 */
    OSAL_LIBACC, /*  ELIBACC                 */
    OSAL_LIBBAD, /*  ELIBBAD                 */
    OSAL_LIBSCN, /*  ELIBSCN                 */
    OSAL_LIBMAX, /*  ELIBMAX                 */
    OSAL_LIBEXEC, /*  ELIBEXEC                */
    OSAL_ILSEQ, /*  EILSEQ                  */
    OSAL_RESTART, /*  ERESTART                */
    OSAL_STRPIPE, /*  ESTRPIPE                */
    OSAL_USERS, /*  EUSERS                  */
    OSAL_NOTSOCK, /*  ENOTSOCK                */
    OSAL_DESTADDRREQ, /*  EDESTADDRREQ            */
    OSAL_MSGSIZE, /*  EMSGSIZE                */
    OSAL_PROTOTYPE, /*  EPROTOTYPE              */
    OSAL_NOPROTOOPT, /*  ENOPROTOOPT             */
    OSAL_PROTONOSUPPORT, /*  EPROTONOSUPPORT         */
    OSAL_SOCKTNOSUPPORT, /*  ESOCKTNOSUPPORT         */
    OSAL_OPNOTSUPP, /*  EOPNOTSUPP              */
    OSAL_PFNOSUPPORT, /*  EPFNOSUPPORT            */
    OSAL_AFNOSUPPORT, /*  EAFNOSUPPORT            */
    OSAL_ADDRINUSE, /*  EADDRINUSE              */
    OSAL_ADDRNOTAVAIL, /*  EADDRNOTAVAIL           */
    OSAL_NETDOWN, /*  ENETDOWN                */
    OSAL_NETUNREACH, /*  ENETUNREACH             */
    OSAL_NETRESET, /*  ENETRESET               */
    OSAL_CONNABORTED, /*  ECONNABORTED            */
    OSAL_CONNRESET, /*  ECONNRESET              */
    OSAL_NOBUFS, /*  ENOBUFS                 */
    OSAL_ISCONN, /*  EISCONN                 */
    OSAL_NOTCONN, /*  ENOTCONN                */
    OSAL_SHUTDOWN, /*  ESHUTDOWN               */
    OSAL_TOOMANYREFS, /*  ETOOMANYREFS            */
    OSAL_TIMEDOUT, /*  ETIMEDOUT               */
    OSAL_CONNREFUSED, /*  ECONNREFUSED            */
    OSAL_HOSTDOWN, /*  EHOSTDOWN               */
    OSAL_HOSTUNREACH, /*  EHOSTUNREACH            */
    OSAL_ALREADY, /*  EALREADY                */
    OSAL_INPROGRESS, /*  EINPROGRESS             */
    OSAL_STALE, /*  ESTALE                  */
    OSAL_UCLEAN, /*  EUCLEAN                 */
    OSAL_NOTNAM, /*  ENOTNAM                 */
    OSAL_NAVAIL, /*  ENAVAIL                 */
    OSAL_ISNAM, /*  EISNAM                  */
    OSAL_REMOTEIO, /*  EREMOTEIO               */
    OSAL_DQUOT, /*  EDQUOT                  */
    OSAL_NOMEDIUM, /*  ENOMEDIUM               */
    OSAL_MEDIUMTYPE, /*  EMEDIUMTYPE             */
    OSAL_CANCELED, /*  ECANCELED               */
    OSAL_NOKEY, /*  ENOKEY                  */
    OSAL_KEYEXPIRED, /*  EKEYEXPIRED             */
    OSAL_KEYREVOKED, /*  EKEYREVOKED             */
    OSAL_KEYREJECTED, /*  EKEYREJECTED            */
};

/*****************************************************************************/
/*                                                                           */
/*  Function Name : get_linux_error                                          */
/*                                                                           */
/*  Description   : This function returns the error code for Redhat Linux    */
/*                  platform.                                                */
/*                                                                           */
/*  Inputs        : None                                                     */
/*  Globals       : None                                                     */
/*                                                                           */
/*  Processing    : Returns OSAL error code if error is a listed OSAL error  */
/*                  code. Or else returns platform depedent error code.      */
/*                                                                           */
/*  Outputs       : Error code                                               */
/*                                                                           */
/*  Returns       : If error is one of OSAL listed error code - OSAL_<ERROR> */
/*                  Else system error code.                                  */
/*                                                                           */
/*  Issues        : None                                                     */
/*                                                                           */
/*  Revision History:                                                        */
/*                                                                           */
/*         DD MM YYYY   Author(s)       Changes (Describe the changes made)  */
/*         30 03 2006   Ittiam          Draft                                */
/*                                                                           */
/*****************************************************************************/

UWORD32 get_linux_error(void)
{
    /* Under Linux platform, error codes 0 - 130 are supported */
    if(130 > errno)
        return osal_errno[errno];

    return errno;
}