4 * Copyright (C) 2010, Broadcom Corporation
7 * This is UNPUBLISHED PROPRIETARY SOURCE CODE of Broadcom Corporation;
8 * the contents of this file may not be disclosed to third parties, copied
9 * or duplicated in any form, in whole or in part, without the prior
10 * written permission of Broadcom Corporation.
12 * $Id: ndiserrmap.c,v 1.15 2010-01-15 01:22:15 Exp $
22 #include <ndiserrmap.h>
25 static NDIS_STATUS ndisbcmerrormap
[] =
26 { NDIS_STATUS_SUCCESS
, /* 0 */
27 NDIS_STATUS_FAILURE
, /* BCME_ERROR */
28 NDIS_STATUS_INVALID_DATA
, /* BCME_BADARG */
29 NDIS_STATUS_INVALID_DATA
, /* BCME_BADOPTION */
30 NDIS_STATUS_INVALID_DATA
, /* BCME_NOTUP */
31 NDIS_STATUS_INVALID_DATA
, /* BCME_NOTDOWN */
32 NDIS_STATUS_INVALID_DATA
, /* BCME_NOTAP */
33 NDIS_STATUS_INVALID_DATA
, /* BCME_NOTSTA */
34 NDIS_STATUS_INVALID_DATA
, /* BCME_BADKEYIDX */
35 NDIS_STATUS_INVALID_DATA
, /* BCME_RADIOOFF */
36 NDIS_STATUS_INVALID_DATA
, /* BCME_NOTBANDLOCKED */
37 NDIS_STATUS_INVALID_DATA
, /* BCME_NOCLK */
38 NDIS_STATUS_INVALID_DATA
, /* BCME_BADRATESET */
39 NDIS_STATUS_INVALID_DATA
, /* BCME_BADBAND */
40 NDIS_STATUS_INVALID_LENGTH
, /* BCME_BUFTOOSHORT */
41 NDIS_STATUS_INVALID_LENGTH
, /* BCME_BUFTOOLONG */
42 NDIS_STATUS_INVALID_DATA
, /* BCME_BUSY */
43 NDIS_STATUS_INVALID_DATA
, /* BCME_NOTASSOCIATED */
44 NDIS_STATUS_INVALID_LENGTH
, /* BCME_BADSSIDLEN */
45 NDIS_STATUS_INVALID_DATA
, /* BCME_OUTOFRANGECHAN */
46 NDIS_STATUS_INVALID_DATA
, /* BCME_BADCHAN */
47 NDIS_STATUS_INVALID_DATA
, /* BCME_BADADDR */
48 NDIS_STATUS_RESOURCES
, /* BCME_NORESOURCE */
49 NDIS_STATUS_NOT_SUPPORTED
, /* BCME_UNSUPPORTED */
50 NDIS_STATUS_INVALID_LENGTH
, /* BCME_BADLENGTH */
51 NDIS_STATUS_ADAPTER_NOT_READY
, /* BCME_NOTREADY */
52 NDIS_STATUS_FAILURE
, /* BCME_NOTPERMITTED */
53 NDIS_STATUS_RESOURCES
, /* BCME_NOMEM */
54 NDIS_STATUS_INVALID_DATA
, /* BCME_ASSOCIATED */
55 NDIS_STATUS_INVALID_DATA
, /* BCME_RANGE */
56 NDIS_STATUS_INVALID_DATA
, /* BCME_NOTFOUND */
57 NDIS_STATUS_INVALID_DATA
, /* BCME_WME_NOT_ENABLED */
58 NDIS_STATUS_INVALID_DATA
, /* BCME_TSPEC_NOTFOUND */
59 NDIS_STATUS_INVALID_DATA
, /* BCME_ACM_NOTSUPPORTED */
60 NDIS_STATUS_INVALID_DATA
, /* BCME_NOT_WME_ASSOCIATION */
61 NDIS_STATUS_FAILURE
, /* BCME_SDIO_ERROR */
62 NDIS_STATUS_FAILURE
, /* BCME_DONGLE_DOWN */
63 NDIS_STATUS_FAILURE
, /* BCME_VERSION */
64 NDIS_STATUS_FAILURE
, /* BCME_TXFAIL */
65 NDIS_STATUS_FAILURE
, /* BCME_RXFAIL */
66 NDIS_STATUS_ADAPTER_REMOVED
, /* BCME_NODEVICE */
67 NDIS_STATUS_FAILURE
, /* BCME_NMODE_DISABLED */
68 NDIS_STATUS_FAILURE
, /* BCME_NONRESIDENT */
70 /* When an new error code is added to bcmutils.h, add os
71 * spcecific error translation here as well
73 /* check if BCME_LAST changed since the last time this function was updated */
75 #error "You need to add a OS error translation in the ndisbcmerrormap \
76 for new error code defined in bcmutils.h"
77 #endif /* BCME_LAST != -42 */
81 ndisstatus2bcmerror(NDIS_STATUS status
)
83 int i
, array_size
= ARRAYSIZE(ndisbcmerrormap
);
85 ASSERT(ABS(BCME_LAST
) == (array_size
- 1));
87 for (i
= 0; i
< array_size
; i
++)
88 if (ndisbcmerrormap
[i
] == status
)
91 if (status
== NDIS_STATUS_INVALID_OID
)
92 return BCME_UNSUPPORTED
;
98 bcmerror2ndisstatus(int bcmerror
)
102 else if (bcmerror
< BCME_LAST
)
103 bcmerror
= BCME_ERROR
;
105 /* Array bounds covered by ASSERT in osl_attach */
106 return ndisbcmerrormap
[-bcmerror
];