| /* |
| * Linux Error codes |
| * |
| * Copyright (C) 2023, Broadcom. |
| * |
| * Unless you and Broadcom execute a separate written software license |
| * agreement governing use of this software, this software is licensed to you |
| * under the terms of the GNU General Public License version 2 (the "GPL"), |
| * available at http://www.broadcom.com/licenses/GPLv2.php, with the |
| * following added to such license: |
| * |
| * As a special exception, the copyright holders of this software give you |
| * permission to link this software with independent modules, and to copy and |
| * distribute the resulting executable under terms of your choice, provided that |
| * you also meet, for each linked independent module, the terms and conditions of |
| * the license of that module. An independent module is a module which is not |
| * derived from this software. The special exception does not apply to any |
| * modifications of the software. |
| * |
| * |
| * <<Broadcom-WL-IPTag/Dual:>> |
| */ |
| #include <typedefs.h> |
| #include <osl.h> |
| #include <epivers.h> |
| #include <bcmutils.h> |
| |
| #include <linuxerrmap.h> |
| |
| static int16 linuxbcmerrormap[] = { |
| 0, /* 0 */ |
| -EINVAL, /* BCME_ERROR */ |
| -EINVAL, /* BCME_BADARG */ |
| -EINVAL, /* BCME_BADOPTION */ |
| -EINVAL, /* BCME_NOTUP */ |
| -EINVAL, /* BCME_NOTDOWN */ |
| -EINVAL, /* BCME_NOTAP */ |
| -EINVAL, /* BCME_NOTSTA */ |
| -EINVAL, /* BCME_BADKEYIDX */ |
| -EINVAL, /* BCME_RADIOOFF */ |
| -EINVAL, /* BCME_NOTBANDLOCKED */ |
| -EINVAL, /* BCME_NOCLK */ |
| -EINVAL, /* BCME_BADRATESET */ |
| -EINVAL, /* BCME_BADBAND */ |
| -E2BIG, /* BCME_BUFTOOSHORT */ |
| -E2BIG, /* BCME_BUFTOOLONG */ |
| -EBUSY, /* BCME_BUSY */ |
| -EINVAL, /* BCME_NOTASSOCIATED */ |
| -EINVAL, /* BCME_BADSSIDLEN */ |
| -EINVAL, /* BCME_OUTOFRANGECHAN */ |
| -EINVAL, /* BCME_BADCHAN */ |
| -EFAULT, /* BCME_BADADDR */ |
| -ENOMEM, /* BCME_NORESOURCE */ |
| -EOPNOTSUPP, /* BCME_UNSUPPORTED */ |
| -EMSGSIZE, /* BCME_BADLENGTH */ |
| -EINVAL, /* BCME_NOTREADY */ |
| -EPERM, /* BCME_EPERM */ |
| -ENOMEM, /* BCME_NOMEM */ |
| -EINVAL, /* BCME_ASSOCIATED */ |
| -ERANGE, /* BCME_RANGE */ |
| -EINVAL, /* BCME_NOTFOUND */ |
| -EINVAL, /* BCME_WME_NOT_ENABLED */ |
| -EINVAL, /* BCME_TSPEC_NOTFOUND */ |
| -EINVAL, /* BCME_ACM_NOTSUPPORTED */ |
| -EINVAL, /* BCME_NOT_WME_ASSOCIATION */ |
| -EIO, /* BCME_SDIO_ERROR */ |
| -ENODEV, /* BCME_DONGLE_DOWN */ |
| -EINVAL, /* BCME_VERSION */ |
| -EIO, /* BCME_TXFAIL */ |
| -EIO, /* BCME_RXFAIL */ |
| -ENODEV, /* BCME_NODEVICE */ |
| -EINVAL, /* BCME_NMODE_DISABLED */ |
| -ENODATA, /* BCME_NONRESIDENT */ |
| -EINVAL, /* BCME_SCANREJECT */ |
| -EINVAL, /* BCME_USAGE_ERROR */ |
| -EIO, /* BCME_IOCTL_ERROR */ |
| -EIO, /* BCME_SERIAL_PORT_ERR */ |
| -EOPNOTSUPP, /* BCME_DISABLED, BCME_NOTENABLED */ |
| -EIO, /* BCME_DECERR */ |
| -EIO, /* BCME_ENCERR */ |
| -EIO, /* BCME_MICERR */ |
| -ERANGE, /* BCME_REPLAY */ |
| -EINVAL, /* BCME_IE_NOTFOUND */ |
| -EINVAL, /* BCME_DATA_NOTFOUND */ |
| -EINVAL, /* BCME_NOT_GC */ |
| -EINVAL, /* BCME_PRS_REQ_FAILED */ |
| -EINVAL, /* BCME_NO_P2P_SE */ |
| -EINVAL, /* BCME_NOA_PND */ |
| -EINVAL, /* BCME_FRAG_Q_FAILED */ |
| -EINVAL, /* BCME_GET_AF_FAILED */ |
| -EINVAL, /* BCME_MSCH_NOTREADY */ |
| -EINVAL, /* BCME_IOV_LAST_CMD */ |
| -EINVAL, /* BCME_MINIPMU_CAL_FAIL */ |
| -EINVAL, /* BCME_RCAL_FAIL */ |
| -EINVAL, /* BCME_LPF_RCCAL_FAIL */ |
| -EINVAL, /* BCME_DACBUF_RCCAL_FAIL */ |
| -EINVAL, /* BCME_VCOCAL_FAIL */ |
| -EINVAL, /* BCME_BANDLOCKED */ |
| -EINVAL, /* BCME_BAD_IE_DATA */ |
| -EINVAL, /* BCME_REG_FAILED */ |
| -EINVAL, /* BCME_NOCHAN */ |
| -EINVAL, /* BCME_PKTTOSS */ |
| -EINVAL, /* BCME_DNGL_DEVRESET */ |
| -EINVAL, /* BCME_ROAM */ |
| -EOPNOTSUPP, /* BCME_NO_SIG_FILE */ |
| -EOPNOTSUPP, /* BCME_RESP_PENDING */ |
| -EINVAL, /* BCME_ACTIVE */ |
| -EINVAL, /* BCME_IN_PROGRESS */ |
| -EINVAL, /* BCME_NOP */ |
| -EINVAL, /* BCME_6GCH_EPERM */ |
| -EINVAL, /* BCME_6G_NO_TPE */ |
| -EINVAL, /* BCME_PLL_RCCAL_FAIL */ |
| -EINVAL, /* BCME_BT_RCCAL_FAIL */ |
| -EINVAL, /* BCME_PHYMUTE */ |
| |
| /* When an new error code is added to bcmutils.h, add os |
| * specific error translation here as well |
| */ |
| /* check if BCME_LAST changed since the last time this function was updated */ |
| #if BCME_LAST != BCME_PHYMUTE |
| #error "You need to add a OS error translation in the linuxbcmerrormap \ |
| for new error code defined in bcmutils.h" |
| #endif |
| }; |
| |
| /* translate bcmerrors into linux errors */ |
| int |
| linux_get_errmap(int bcmerror) |
| { |
| return linuxbcmerrormap[-bcmerror]; |
| } |