xref: /OK3568_Linux_fs/external/rkwifibt/drivers/bcmdhd/include/bcmerror.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun /*
2*4882a593Smuzhiyun  * Common header file for all error codes.
3*4882a593Smuzhiyun  *
4*4882a593Smuzhiyun  * Copyright (C) 2020, Broadcom.
5*4882a593Smuzhiyun  *
6*4882a593Smuzhiyun  *      Unless you and Broadcom execute a separate written software license
7*4882a593Smuzhiyun  * agreement governing use of this software, this software is licensed to you
8*4882a593Smuzhiyun  * under the terms of the GNU General Public License version 2 (the "GPL"),
9*4882a593Smuzhiyun  * available at http://www.broadcom.com/licenses/GPLv2.php, with the
10*4882a593Smuzhiyun  * following added to such license:
11*4882a593Smuzhiyun  *
12*4882a593Smuzhiyun  *      As a special exception, the copyright holders of this software give you
13*4882a593Smuzhiyun  * permission to link this software with independent modules, and to copy and
14*4882a593Smuzhiyun  * distribute the resulting executable under terms of your choice, provided that
15*4882a593Smuzhiyun  * you also meet, for each linked independent module, the terms and conditions of
16*4882a593Smuzhiyun  * the license of that module.  An independent module is a module which is not
17*4882a593Smuzhiyun  * derived from this software.  The special exception does not apply to any
18*4882a593Smuzhiyun  * modifications of the software.
19*4882a593Smuzhiyun  *
20*4882a593Smuzhiyun  *
21*4882a593Smuzhiyun  * <<Broadcom-WL-IPTag/Dual:>>
22*4882a593Smuzhiyun  *
23*4882a593Smuzhiyun  *
24*4882a593Smuzhiyun  *
25*4882a593Smuzhiyun  */
26*4882a593Smuzhiyun 
27*4882a593Smuzhiyun #ifndef	_bcmerror_h_
28*4882a593Smuzhiyun #define	_bcmerror_h_
29*4882a593Smuzhiyun 
30*4882a593Smuzhiyun #include <typedefs.h>
31*4882a593Smuzhiyun 
32*4882a593Smuzhiyun /* Use error codes from this file only if BCMUTILS_ERR_CODES is defined. */
33*4882a593Smuzhiyun #ifdef BCMUTILS_ERR_CODES
34*4882a593Smuzhiyun 
35*4882a593Smuzhiyun /* NOTE re: Module specific error codes.
36*4882a593Smuzhiyun  *
37*4882a593Smuzhiyun  * BCME_.. error codes are extended by various features - e.g. FTM, NAN, SAE etc.
38*4882a593Smuzhiyun  * The current process is to allocate a range of 1024 negative 32 bit integers to
39*4882a593Smuzhiyun  * each module that extends the error codes to indicate a module specific status.
40*4882a593Smuzhiyun  *
41*4882a593Smuzhiyun  * The next range to use is below. If that range is used for a new feature, please
42*4882a593Smuzhiyun  * update the range to be used by the next feature.
43*4882a593Smuzhiyun  *
44*4882a593Smuzhiyun  * Next available (inclusive) range: [-8*1024 + 1, -7*1024]
45*4882a593Smuzhiyun  *
46*4882a593Smuzhiyun  * Common error codes use BCME_ prefix. Firmware (wl) components should use the
47*4882a593Smuzhiyun  * convention to prefix the error code name with WL_<Component>_E_ (e.g. WL_NAN_E_?).
48*4882a593Smuzhiyun  * Non-wl components, other than common error codes use BCM_<Componennt>_E_
49*4882a593Smuzhiyun  * prefix(e.g. BCM_FWSIGN_E_).
50*4882a593Smuzhiyun  *
51*4882a593Smuzhiyun  * End Note
52*4882a593Smuzhiyun  */
53*4882a593Smuzhiyun 
54*4882a593Smuzhiyun typedef int bcmerror_t;
55*4882a593Smuzhiyun 
56*4882a593Smuzhiyun /*
57*4882a593Smuzhiyun  * error codes could be added but the defined ones shouldn't be changed/deleted
58*4882a593Smuzhiyun  * these error codes are exposed to the user code
59*4882a593Smuzhiyun  * when ever a new error code is added to this list
60*4882a593Smuzhiyun  * please update errorstring table with the related error string and
61*4882a593Smuzhiyun  * update osl files with os specific errorcode map
62*4882a593Smuzhiyun */
63*4882a593Smuzhiyun 
64*4882a593Smuzhiyun #define BCME_OK				0	/* Success */
65*4882a593Smuzhiyun #define BCME_ERROR			-1	/* Error generic */
66*4882a593Smuzhiyun #define BCME_BADARG			-2	/* Bad Argument */
67*4882a593Smuzhiyun #define BCME_BADOPTION			-3	/* Bad option */
68*4882a593Smuzhiyun #define BCME_NOTUP			-4	/* Not up */
69*4882a593Smuzhiyun #define BCME_NOTDOWN			-5	/* Not down */
70*4882a593Smuzhiyun #define BCME_NOTAP			-6	/* Not AP */
71*4882a593Smuzhiyun #define BCME_NOTSTA			-7	/* Not STA  */
72*4882a593Smuzhiyun #define BCME_BADKEYIDX			-8	/* BAD Key Index */
73*4882a593Smuzhiyun #define BCME_RADIOOFF			-9	/* Radio Off */
74*4882a593Smuzhiyun #define BCME_NOTBANDLOCKED		-10	/* Not  band locked */
75*4882a593Smuzhiyun #define BCME_NOCLK			-11	/* No Clock */
76*4882a593Smuzhiyun #define BCME_BADRATESET			-12	/* BAD Rate valueset */
77*4882a593Smuzhiyun #define BCME_BADBAND			-13	/* BAD Band */
78*4882a593Smuzhiyun #define BCME_BUFTOOSHORT		-14	/* Buffer too short */
79*4882a593Smuzhiyun #define BCME_BUFTOOLONG			-15	/* Buffer too long */
80*4882a593Smuzhiyun #define BCME_BUSY			-16	/* Busy */
81*4882a593Smuzhiyun #define BCME_NOTASSOCIATED		-17	/* Not Associated */
82*4882a593Smuzhiyun #define BCME_BADSSIDLEN			-18	/* Bad SSID len */
83*4882a593Smuzhiyun #define BCME_OUTOFRANGECHAN		-19	/* Out of Range Channel */
84*4882a593Smuzhiyun #define BCME_BADCHAN			-20	/* Bad Channel */
85*4882a593Smuzhiyun #define BCME_BADADDR			-21	/* Bad Address */
86*4882a593Smuzhiyun #define BCME_NORESOURCE			-22	/* Not Enough Resources */
87*4882a593Smuzhiyun #define BCME_UNSUPPORTED		-23	/* Unsupported */
88*4882a593Smuzhiyun #define BCME_BADLEN			-24	/* Bad length */
89*4882a593Smuzhiyun #define BCME_NOTREADY			-25	/* Not Ready */
90*4882a593Smuzhiyun #define BCME_EPERM			-26	/* Not Permitted */
91*4882a593Smuzhiyun #define BCME_NOMEM			-27	/* No Memory */
92*4882a593Smuzhiyun #define BCME_ASSOCIATED			-28	/* Associated */
93*4882a593Smuzhiyun #define BCME_RANGE			-29	/* Not In Range */
94*4882a593Smuzhiyun #define BCME_NOTFOUND			-30	/* Not Found */
95*4882a593Smuzhiyun #define BCME_WME_NOT_ENABLED		-31	/* WME Not Enabled */
96*4882a593Smuzhiyun #define BCME_TSPEC_NOTFOUND		-32	/* TSPEC Not Found */
97*4882a593Smuzhiyun #define BCME_ACM_NOTSUPPORTED		-33	/* ACM Not Supported */
98*4882a593Smuzhiyun #define BCME_NOT_WME_ASSOCIATION	-34	/* Not WME Association */
99*4882a593Smuzhiyun #define BCME_SDIO_ERROR			-35	/* SDIO Bus Error */
100*4882a593Smuzhiyun #define BCME_DONGLE_DOWN		-36	/* Dongle Not Accessible */
101*4882a593Smuzhiyun #define BCME_VERSION			-37	/* Incorrect version */
102*4882a593Smuzhiyun #define BCME_TXFAIL			-38	/* TX failure */
103*4882a593Smuzhiyun #define BCME_RXFAIL			-39	/* RX failure */
104*4882a593Smuzhiyun #define BCME_NODEVICE			-40	/* Device not present */
105*4882a593Smuzhiyun #define BCME_NMODE_DISABLED		-41	/* NMODE disabled */
106*4882a593Smuzhiyun #define BCME_MSCH_DUP_REG		-42	/* Duplicate slot registration */
107*4882a593Smuzhiyun #define BCME_SCANREJECT			-43	/* reject scan request */
108*4882a593Smuzhiyun #define BCME_USAGE_ERROR		-44	/* WLCMD usage error */
109*4882a593Smuzhiyun #define BCME_IOCTL_ERROR		-45	/* WLCMD ioctl error */
110*4882a593Smuzhiyun #define BCME_SERIAL_PORT_ERR		-46	/* RWL serial port error */
111*4882a593Smuzhiyun #define BCME_DISABLED			-47	/* Disabled in this build */
112*4882a593Smuzhiyun #define BCME_DECERR			-48	/* Decrypt error */
113*4882a593Smuzhiyun #define BCME_ENCERR			-49	/* Encrypt error */
114*4882a593Smuzhiyun #define BCME_MICERR			-50	/* Integrity/MIC error */
115*4882a593Smuzhiyun #define BCME_REPLAY			-51	/* Replay */
116*4882a593Smuzhiyun #define BCME_IE_NOTFOUND		-52	/* IE not found */
117*4882a593Smuzhiyun #define BCME_DATA_NOTFOUND		-53	/* Complete data not found in buffer */
118*4882a593Smuzhiyun #define BCME_NOT_GC			-54	/* expecting a group client */
119*4882a593Smuzhiyun #define BCME_PRS_REQ_FAILED		-55	/* GC presence req failed to sent */
120*4882a593Smuzhiyun #define BCME_NO_P2P_SE			-56	/* Could not find P2P-Subelement */
121*4882a593Smuzhiyun #define BCME_NOA_PND			-57	/* NoA pending, CB shuld be NULL */
122*4882a593Smuzhiyun #define BCME_FRAG_Q_FAILED		-58	/* queueing 80211 frag failedi */
123*4882a593Smuzhiyun #define BCME_GET_AF_FAILED		-59	/* Get p2p AF pkt failed */
124*4882a593Smuzhiyun #define BCME_MSCH_NOTREADY		-60	/* scheduler not ready */
125*4882a593Smuzhiyun #define BCME_IOV_LAST_CMD		-61	/* last batched iov sub-command */
126*4882a593Smuzhiyun #define BCME_MINIPMU_CAL_FAIL		-62	/* MiniPMU cal failed */
127*4882a593Smuzhiyun #define BCME_RCAL_FAIL			-63	/* Rcal failed */
128*4882a593Smuzhiyun #define BCME_LPF_RCCAL_FAIL		-64	/* RCCAL failed */
129*4882a593Smuzhiyun #define BCME_DACBUF_RCCAL_FAIL		-65	/* RCCAL failed */
130*4882a593Smuzhiyun #define BCME_VCOCAL_FAIL		-66	/* VCOCAL failed */
131*4882a593Smuzhiyun #define BCME_BANDLOCKED			-67	/* interface is restricted to a band */
132*4882a593Smuzhiyun #define BCME_BAD_IE_DATA		-68	/* Recieved ie with invalid/bad data */
133*4882a593Smuzhiyun #define BCME_REG_FAILED			-69	/* Generic registration failed */
134*4882a593Smuzhiyun #define BCME_NOCHAN			-70	/* Registration with 0 chans in list */
135*4882a593Smuzhiyun #define BCME_PKTTOSS			-71	/* Pkt tossed */
136*4882a593Smuzhiyun #define BCME_DNGL_DEVRESET		-72	/* dongle re-attach during DEVRESET */
137*4882a593Smuzhiyun #define BCME_ROAM			-73	/* Roam related failures */
138*4882a593Smuzhiyun #define BCME_NO_SIG_FILE		-74	/* Signature file is missing */
139*4882a593Smuzhiyun 
140*4882a593Smuzhiyun #define BCME_LAST			BCME_NO_SIG_FILE
141*4882a593Smuzhiyun 
142*4882a593Smuzhiyun #define BCME_NOTENABLED BCME_DISABLED
143*4882a593Smuzhiyun 
144*4882a593Smuzhiyun /* This error code is *internal* to the driver, and is not propogated to users. It should
145*4882a593Smuzhiyun  * only be used by IOCTL patch handlers as an indication that it did not handle the IOCTL.
146*4882a593Smuzhiyun  * (Since the error code is internal, an entry in 'BCMERRSTRINGTABLE' is not required,
147*4882a593Smuzhiyun  * nor does it need to be part of any OSL driver-to-OS error code mapping).
148*4882a593Smuzhiyun  */
149*4882a593Smuzhiyun #define BCME_IOCTL_PATCH_UNSUPPORTED	-9999
150*4882a593Smuzhiyun #if (BCME_LAST <= BCME_IOCTL_PATCH_UNSUPPORTED)
151*4882a593Smuzhiyun 	#error "BCME_LAST <= BCME_IOCTL_PATCH_UNSUPPORTED"
152*4882a593Smuzhiyun #endif
153*4882a593Smuzhiyun 
154*4882a593Smuzhiyun /* These are collection of BCME Error strings */
155*4882a593Smuzhiyun #define BCMERRSTRINGTABLE {		\
156*4882a593Smuzhiyun 	"OK",				\
157*4882a593Smuzhiyun 	"Undefined error",		\
158*4882a593Smuzhiyun 	"Bad Argument",			\
159*4882a593Smuzhiyun 	"Bad Option",			\
160*4882a593Smuzhiyun 	"Not up",			\
161*4882a593Smuzhiyun 	"Not down",			\
162*4882a593Smuzhiyun 	"Not AP",			\
163*4882a593Smuzhiyun 	"Not STA",			\
164*4882a593Smuzhiyun 	"Bad Key Index",		\
165*4882a593Smuzhiyun 	"Radio Off",			\
166*4882a593Smuzhiyun 	"Not band locked",		\
167*4882a593Smuzhiyun 	"No clock",			\
168*4882a593Smuzhiyun 	"Bad Rate valueset",		\
169*4882a593Smuzhiyun 	"Bad Band",			\
170*4882a593Smuzhiyun 	"Buffer too short",		\
171*4882a593Smuzhiyun 	"Buffer too long",		\
172*4882a593Smuzhiyun 	"Busy",				\
173*4882a593Smuzhiyun 	"Not Associated",		\
174*4882a593Smuzhiyun 	"Bad SSID len",			\
175*4882a593Smuzhiyun 	"Out of Range Channel",		\
176*4882a593Smuzhiyun 	"Bad Channel",			\
177*4882a593Smuzhiyun 	"Bad Address",			\
178*4882a593Smuzhiyun 	"Not Enough Resources",		\
179*4882a593Smuzhiyun 	"Unsupported",			\
180*4882a593Smuzhiyun 	"Bad length",			\
181*4882a593Smuzhiyun 	"Not Ready",			\
182*4882a593Smuzhiyun 	"Not Permitted",		\
183*4882a593Smuzhiyun 	"No Memory",			\
184*4882a593Smuzhiyun 	"Associated",			\
185*4882a593Smuzhiyun 	"Not In Range",			\
186*4882a593Smuzhiyun 	"Not Found",			\
187*4882a593Smuzhiyun 	"WME Not Enabled",		\
188*4882a593Smuzhiyun 	"TSPEC Not Found",		\
189*4882a593Smuzhiyun 	"ACM Not Supported",		\
190*4882a593Smuzhiyun 	"Not WME Association",		\
191*4882a593Smuzhiyun 	"SDIO Bus Error",		\
192*4882a593Smuzhiyun 	"Dongle Not Accessible",	\
193*4882a593Smuzhiyun 	"Incorrect version",		\
194*4882a593Smuzhiyun 	"TX Failure",			\
195*4882a593Smuzhiyun 	"RX Failure",			\
196*4882a593Smuzhiyun 	"Device Not Present",		\
197*4882a593Smuzhiyun 	"NMODE Disabled",		\
198*4882a593Smuzhiyun 	"Host Offload in device",	\
199*4882a593Smuzhiyun 	"Scan Rejected",		\
200*4882a593Smuzhiyun 	"WLCMD usage error",		\
201*4882a593Smuzhiyun 	"WLCMD ioctl error",		\
202*4882a593Smuzhiyun 	"RWL serial port error",	\
203*4882a593Smuzhiyun 	"Disabled",			\
204*4882a593Smuzhiyun 	"Decrypt error",		\
205*4882a593Smuzhiyun 	"Encrypt error",		\
206*4882a593Smuzhiyun 	"MIC error",			\
207*4882a593Smuzhiyun 	"Replay",			\
208*4882a593Smuzhiyun 	"IE not found",			\
209*4882a593Smuzhiyun 	"Data not found",		\
210*4882a593Smuzhiyun 	"NOT GC",			\
211*4882a593Smuzhiyun 	"PRS REQ FAILED",		\
212*4882a593Smuzhiyun 	"NO P2P SubElement",		\
213*4882a593Smuzhiyun 	"NOA Pending",			\
214*4882a593Smuzhiyun 	"FRAG Q FAILED",		\
215*4882a593Smuzhiyun 	"GET ActionFrame failed",	\
216*4882a593Smuzhiyun 	"scheduler not ready",		\
217*4882a593Smuzhiyun 	"Last IOV batched sub-cmd",	\
218*4882a593Smuzhiyun 	"Mini PMU Cal failed",		\
219*4882a593Smuzhiyun 	"R-cal failed",			\
220*4882a593Smuzhiyun 	"LPF RC Cal failed",		\
221*4882a593Smuzhiyun 	"DAC buf RC Cal failed",	\
222*4882a593Smuzhiyun 	"VCO Cal failed",		\
223*4882a593Smuzhiyun 	"band locked",			\
224*4882a593Smuzhiyun 	"Recieved ie with invalid data", \
225*4882a593Smuzhiyun 	"registration failed",		\
226*4882a593Smuzhiyun 	"Registration with zero channels", \
227*4882a593Smuzhiyun 	"pkt toss",			\
228*4882a593Smuzhiyun 	"Dongle Devreset",		\
229*4882a593Smuzhiyun 	"Critical roam in progress",	\
230*4882a593Smuzhiyun 	"Signature file is missing",	\
231*4882a593Smuzhiyun }
232*4882a593Smuzhiyun 
233*4882a593Smuzhiyun /** status - TBD BCME_ vs proxd status - range reserved for BCME_ */
234*4882a593Smuzhiyun enum {
235*4882a593Smuzhiyun 	WL_PROXD_E_LAST			= -1057,
236*4882a593Smuzhiyun 	WL_PROXD_E_ASSOC_INPROG		= -1057,
237*4882a593Smuzhiyun 	WL_PROXD_E_NOAVAIL		= -1056,
238*4882a593Smuzhiyun 	WL_PROXD_E_EXT_SCHED		= -1055,
239*4882a593Smuzhiyun 	WL_PROXD_E_NOT_BCM		= -1054,
240*4882a593Smuzhiyun 	WL_PROXD_E_FRAME_TYPE		= -1053,
241*4882a593Smuzhiyun 	WL_PROXD_E_VERNOSUPPORT		= -1052,
242*4882a593Smuzhiyun 	WL_PROXD_E_SEC_NOKEY		= -1051,
243*4882a593Smuzhiyun 	WL_PROXD_E_SEC_POLICY		= -1050,
244*4882a593Smuzhiyun 	WL_PROXD_E_SCAN_INPROCESS	= -1049,
245*4882a593Smuzhiyun 	WL_PROXD_E_BAD_PARTIAL_TSF	= -1048,
246*4882a593Smuzhiyun 	WL_PROXD_E_SCANFAIL		= -1047,
247*4882a593Smuzhiyun 	WL_PROXD_E_NOTSF		= -1046,
248*4882a593Smuzhiyun 	WL_PROXD_E_POLICY		= -1045,
249*4882a593Smuzhiyun 	WL_PROXD_E_INCOMPLETE		= -1044,
250*4882a593Smuzhiyun 	WL_PROXD_E_OVERRIDDEN		= -1043,
251*4882a593Smuzhiyun 	WL_PROXD_E_ASAP_FAILED		= -1042,
252*4882a593Smuzhiyun 	WL_PROXD_E_NOTSTARTED		= -1041,
253*4882a593Smuzhiyun 	WL_PROXD_E_INVALIDMEAS		= -1040,
254*4882a593Smuzhiyun 	WL_PROXD_E_INCAPABLE		= -1039,
255*4882a593Smuzhiyun 	WL_PROXD_E_MISMATCH		= -1038,
256*4882a593Smuzhiyun 	WL_PROXD_E_DUP_SESSION		= -1037,
257*4882a593Smuzhiyun 	WL_PROXD_E_REMOTE_FAIL		= -1036,
258*4882a593Smuzhiyun 	WL_PROXD_E_REMOTE_INCAPABLE	= -1035,
259*4882a593Smuzhiyun 	WL_PROXD_E_SCHED_FAIL		= -1034,
260*4882a593Smuzhiyun 	WL_PROXD_E_PROTO		= -1033,
261*4882a593Smuzhiyun 	WL_PROXD_E_EXPIRED		= -1032,
262*4882a593Smuzhiyun 	WL_PROXD_E_TIMEOUT		= -1031,
263*4882a593Smuzhiyun 	WL_PROXD_E_NOACK		= -1030,
264*4882a593Smuzhiyun 	WL_PROXD_E_DEFERRED		= -1029,
265*4882a593Smuzhiyun 	WL_PROXD_E_INVALID_SID		= -1028,
266*4882a593Smuzhiyun 	WL_PROXD_E_REMOTE_CANCEL	= -1027,
267*4882a593Smuzhiyun 	WL_PROXD_E_CANCELED		= -1026,	/**< local */
268*4882a593Smuzhiyun 	WL_PROXD_E_INVALID_SESSION	= -1025,
269*4882a593Smuzhiyun 	WL_PROXD_E_BAD_STATE		= -1024,
270*4882a593Smuzhiyun 	WL_PROXD_E_START		= -1024,
271*4882a593Smuzhiyun 	WL_PROXD_E_ERROR		= -1,
272*4882a593Smuzhiyun 	WL_PROXD_E_OK			= 0
273*4882a593Smuzhiyun };
274*4882a593Smuzhiyun typedef int32 wl_proxd_status_t;
275*4882a593Smuzhiyun 
276*4882a593Smuzhiyun /** status - TBD BCME_ vs NAN status - range reserved for BCME_ */
277*4882a593Smuzhiyun enum {
278*4882a593Smuzhiyun 	/* add new status here... */
279*4882a593Smuzhiyun 	WL_NAN_E_NO_ACTION		= -2136,	/* status for no action */
280*4882a593Smuzhiyun 	WL_NAN_E_INVALID_TOKEN		= -2135,	/* invalid token or mismatch */
281*4882a593Smuzhiyun 	WL_NAN_E_INVALID_ATTR		= -2134,	/* generic invalid attr error */
282*4882a593Smuzhiyun 	WL_NAN_E_INVALID_NDL_ATTR	= -2133,	/* invalid NDL attribute */
283*4882a593Smuzhiyun 	WL_NAN_E_SCB_NORESOURCE		= -2132,	/* no more peer scb available */
284*4882a593Smuzhiyun 	WL_NAN_E_PEER_NOTAVAIL		= -2131,
285*4882a593Smuzhiyun 	WL_NAN_E_SCB_EXISTS		= -2130,
286*4882a593Smuzhiyun 	WL_NAN_E_INVALID_PEER_NDI	= -2129,
287*4882a593Smuzhiyun 	WL_NAN_E_INVALID_LOCAL_NDI	= -2128,
288*4882a593Smuzhiyun 	WL_NAN_E_ALREADY_EXISTS		= -2127,	/* generic NAN error for duplication */
289*4882a593Smuzhiyun 	WL_NAN_E_EXCEED_MAX_NUM_MAPS	= -2126,
290*4882a593Smuzhiyun 	WL_NAN_E_INVALID_DEV_CHAN_SCHED	= -2125,
291*4882a593Smuzhiyun 	WL_NAN_E_INVALID_PEER_BLOB_TYPE	= -2124,
292*4882a593Smuzhiyun 	WL_NAN_E_INVALID_LCL_BLOB_TYPE	= -2123,
293*4882a593Smuzhiyun 	WL_NAN_E_BCMC_PDPA		= -2122,	/* BCMC NAF PDPA */
294*4882a593Smuzhiyun 	WL_NAN_E_TIMEOUT		= -2121,
295*4882a593Smuzhiyun 	WL_NAN_E_HOST_CFG		= -2120,
296*4882a593Smuzhiyun 	WL_NAN_E_NO_ACK			= -2119,
297*4882a593Smuzhiyun 	WL_NAN_E_SECINST_FAIL		= -2118,
298*4882a593Smuzhiyun 	WL_NAN_E_REJECT_NDL		= -2117,	/* generic NDL rejection error */
299*4882a593Smuzhiyun 	WL_NAN_E_INVALID_NDP_ATTR	= -2116,
300*4882a593Smuzhiyun 	WL_NAN_E_HOST_REJECTED		= -2115,
301*4882a593Smuzhiyun 	WL_NAN_E_PCB_NORESOURCE		= -2114,
302*4882a593Smuzhiyun 	WL_NAN_E_NDC_EXISTS		= -2113,
303*4882a593Smuzhiyun 	WL_NAN_E_NO_NDC_ENTRY_AVAIL	= -2112,
304*4882a593Smuzhiyun 	WL_NAN_E_INVALID_NDC_ENTRY      = -2111,
305*4882a593Smuzhiyun 	WL_NAN_E_SD_TX_LIST_FULL        = -2110,
306*4882a593Smuzhiyun 	WL_NAN_E_SVC_SUB_LIST_FULL      = -2109,
307*4882a593Smuzhiyun 	WL_NAN_E_SVC_PUB_LIST_FULL      = -2108,
308*4882a593Smuzhiyun 	WL_NAN_E_SDF_MAX_LEN_EXCEEDED   = -2107,
309*4882a593Smuzhiyun 	WL_NAN_E_ZERO_CRB		= -2106,	/* no CRB between local and peer */
310*4882a593Smuzhiyun 	WL_NAN_E_PEER_NDC_NOT_SELECTED	= -2105,	/* peer ndc not selected */
311*4882a593Smuzhiyun 	WL_NAN_E_DAM_CHAN_CONFLICT	= -2104,	/* dam schedule channel conflict */
312*4882a593Smuzhiyun 	WL_NAN_E_DAM_SCHED_PERIOD	= -2103,	/* dam schedule period mismatch */
313*4882a593Smuzhiyun 	WL_NAN_E_LCL_NDC_NOT_SELECTED	= -2102,	/* local selected ndc not configured */
314*4882a593Smuzhiyun 	WL_NAN_E_NDL_QOS_INVALID_NA	= -2101,	/* na doesn't comply with ndl qos */
315*4882a593Smuzhiyun 	WL_NAN_E_CLEAR_NAF_WITH_SA_AS_RNDI = -2100,	/* rx clear naf with peer rndi */
316*4882a593Smuzhiyun 	WL_NAN_E_SEC_CLEAR_PKT		= -2099,	/* rx clear pkt from a peer with sec_sa */
317*4882a593Smuzhiyun 	WL_NAN_E_PROT_NON_PDPA_NAF	= -2098,	/* rx protected non PDPA frame */
318*4882a593Smuzhiyun 	WL_NAN_E_DAM_DOUBLE_REMOVE	= -2097,	/* remove peer schedule already removed */
319*4882a593Smuzhiyun 	WL_NAN_E_DAM_DOUBLE_MERGE	= -2096,	/* merge peer schedule already merged */
320*4882a593Smuzhiyun 	WL_NAN_E_DAM_REJECT_INVALID	= -2095,	/* reject for invalid schedule */
321*4882a593Smuzhiyun 	WL_NAN_E_DAM_REJECT_RANGE	= -2094,
322*4882a593Smuzhiyun 	WL_NAN_E_DAM_REJECT_QOS		= -2093,
323*4882a593Smuzhiyun 	WL_NAN_E_DAM_REJECT_NDC		= -2092,
324*4882a593Smuzhiyun 	WL_NAN_E_DAM_REJECT_PEER_IMMUT	= -2091,
325*4882a593Smuzhiyun 	WL_NAN_E_DAM_REJECT_LCL_IMMUT	= -2090,
326*4882a593Smuzhiyun 	WL_NAN_E_DAM_EXCEED_NUM_SCHED	= -2089,
327*4882a593Smuzhiyun 	WL_NAN_E_DAM_INVALID_SCHED_MAP	= -2088,	/* invalid schedule map list */
328*4882a593Smuzhiyun 	WL_NAN_E_DAM_INVALID_LCL_SCHED	= -2087,
329*4882a593Smuzhiyun 	WL_NAN_E_INVALID_MAP_ID		= -2086,
330*4882a593Smuzhiyun 	WL_NAN_E_CHAN_OVERLAP_ACROSS_MAP = -2085,
331*4882a593Smuzhiyun 	WL_NAN_E_INVALID_CHAN_LIST	= -2084,
332*4882a593Smuzhiyun 	WL_NAN_E_INVALID_RANGE_TBMP	= -2083,
333*4882a593Smuzhiyun 	WL_NAN_E_INVALID_IMMUT_SCHED	= -2082,
334*4882a593Smuzhiyun 	WL_NAN_E_INVALID_NDC_ATTR	= -2081,
335*4882a593Smuzhiyun 	WL_NAN_E_INVALID_TIME_BITMAP	= -2080,
336*4882a593Smuzhiyun 	WL_NAN_E_INVALID_NA_ATTR	= -2079,
337*4882a593Smuzhiyun 	WL_NAN_E_NO_NA_ATTR_IN_AVAIL_MAP = -2078,	/* no na attr saved in avail map */
338*4882a593Smuzhiyun 	WL_NAN_E_INVALID_MAP_IDX	= -2077,
339*4882a593Smuzhiyun 	WL_NAN_E_SEC_SA_NOTFOUND	= -2076,
340*4882a593Smuzhiyun 	WL_NAN_E_BSSCFG_NOTFOUND	= -2075,
341*4882a593Smuzhiyun 	WL_NAN_E_SCB_NOTFOUND		= -2074,
342*4882a593Smuzhiyun 	WL_NAN_E_NCS_SK_KDESC_TYPE      = -2073,
343*4882a593Smuzhiyun 	WL_NAN_E_NCS_SK_KEY_DESC_VER    = -2072,	/* key descr ver */
344*4882a593Smuzhiyun 	WL_NAN_E_NCS_SK_KEY_TYPE        = -2071,	/* key descr type */
345*4882a593Smuzhiyun 	WL_NAN_E_NCS_SK_KEYINFO_FAIL    = -2070,	/* key info (generic) */
346*4882a593Smuzhiyun 	WL_NAN_E_NCS_SK_KEY_LEN         = -2069,	/* key len */
347*4882a593Smuzhiyun 	WL_NAN_E_NCS_SK_KDESC_NOT_FOUND = -2068,	/* key desc not found */
348*4882a593Smuzhiyun 	WL_NAN_E_NCS_SK_INVALID_PARAMS  = -2067,	/* invalid args */
349*4882a593Smuzhiyun 	WL_NAN_E_NCS_SK_KDESC_INVALID   = -2066,	/* key descr is not valid */
350*4882a593Smuzhiyun 	WL_NAN_E_NCS_SK_NONCE_MISMATCH  = -2065,
351*4882a593Smuzhiyun 	WL_NAN_E_NCS_SK_KDATA_SAVE_FAIL = -2064,	/* not able to save key data */
352*4882a593Smuzhiyun 	WL_NAN_E_NCS_SK_AUTH_TOKEN_CALC_FAIL = -2063,
353*4882a593Smuzhiyun 	WL_NAN_E_NCS_SK_PTK_CALC_FAIL   = -2062,
354*4882a593Smuzhiyun 	WL_NAN_E_INVALID_STARTOFFSET	= -2061,
355*4882a593Smuzhiyun 	WL_NAN_E_BAD_NA_ENTRY_TYPE	= -2060,
356*4882a593Smuzhiyun 	WL_NAN_E_INVALID_CHANBMP	= -2059,
357*4882a593Smuzhiyun 	WL_NAN_E_INVALID_OP_CLASS	= -2058,
358*4882a593Smuzhiyun 	WL_NAN_E_NO_IES			= -2057,
359*4882a593Smuzhiyun 	WL_NAN_E_NO_PEER_ENTRY_AVAIL	= -2056,
360*4882a593Smuzhiyun 	WL_NAN_E_INVALID_PEER		= -2055,
361*4882a593Smuzhiyun 	WL_NAN_E_PEER_EXISTS		= -2054,
362*4882a593Smuzhiyun 	WL_NAN_E_PEER_NOTFOUND		= -2053,
363*4882a593Smuzhiyun 	WL_NAN_E_NO_MEM			= -2052,
364*4882a593Smuzhiyun 	WL_NAN_E_INVALID_OPTION		= -2051,
365*4882a593Smuzhiyun 	WL_NAN_E_INVALID_BAND		= -2050,
366*4882a593Smuzhiyun 	WL_NAN_E_INVALID_MAC		= -2049,
367*4882a593Smuzhiyun 	WL_NAN_E_BAD_INSTANCE		= -2048,
368*4882a593Smuzhiyun 	/* NAN status code reserved from -2048 to -3071 */
369*4882a593Smuzhiyun 	/* Do NOT add new status below -2048 */
370*4882a593Smuzhiyun 	WL_NAN_E_ERROR			= -1,
371*4882a593Smuzhiyun 	WL_NAN_E_OK			= 0
372*4882a593Smuzhiyun };
373*4882a593Smuzhiyun 
374*4882a593Smuzhiyun /* SAE (Simultaneous Authentication of Equals) status codes.
375*4882a593Smuzhiyun  * SAE status codes are reserved from -3072 to -4095 (1K)
376*4882a593Smuzhiyun  */
377*4882a593Smuzhiyun enum {
378*4882a593Smuzhiyun 	WL_SAE_E_AUTH_FAILURE			= -3072,
379*4882a593Smuzhiyun 	/* Discard silently */
380*4882a593Smuzhiyun 	WL_SAE_E_AUTH_DISCARD			= -3073,
381*4882a593Smuzhiyun 	/* Authentication in progress */
382*4882a593Smuzhiyun 	WL_SAE_E_AUTH_CONTINUE			= -3074,
383*4882a593Smuzhiyun 	/* Invalid scalar/elt */
384*4882a593Smuzhiyun 	WL_SAE_E_AUTH_COMMIT_INVALID		= -3075,
385*4882a593Smuzhiyun 	/* Invalid confirm token */
386*4882a593Smuzhiyun 	WL_SAE_E_AUTH_CONFIRM_INVALID		= -3076,
387*4882a593Smuzhiyun 	/* Peer scalar validation failure */
388*4882a593Smuzhiyun 	WL_SAE_E_CRYPTO_SCALAR_VALIDATION	= -3077,
389*4882a593Smuzhiyun 	/* Peer element prime validation failure */
390*4882a593Smuzhiyun 	WL_SAE_E_CRYPTO_ELE_PRIME_VALIDATION	= -3078,
391*4882a593Smuzhiyun 	/* Peer element is not on the curve */
392*4882a593Smuzhiyun 	WL_SAE_E_CRYPTO_ELE_NOT_ON_CURVE	= -3079,
393*4882a593Smuzhiyun 	/* Generic EC error (eliptic curve related) */
394*4882a593Smuzhiyun 	WL_SAE_E_CRYPTO_EC_ERROR		= -3080,
395*4882a593Smuzhiyun 	/* Both local and peer mac addrs are same */
396*4882a593Smuzhiyun 	WL_SAE_E_CRYPTO_EQUAL_MACADDRS		= -3081,
397*4882a593Smuzhiyun 	/* Loop exceeded in deriving the scalar */
398*4882a593Smuzhiyun 	WL_SAE_E_CRYPTO_SCALAR_ITER_EXCEEDED	= -3082,
399*4882a593Smuzhiyun 	/* ECC group is unsupported */
400*4882a593Smuzhiyun 	WL_SAE_E_CRYPTO_UNSUPPORTED_GROUP	= -3083,
401*4882a593Smuzhiyun 	/* Exceeded the hunting-and-pecking counter */
402*4882a593Smuzhiyun 	WL_SAE_E_CRYPTO_PWE_COUNTER_EXCEEDED	= -3084,
403*4882a593Smuzhiyun 	/* SAE crypto component is not initialized */
404*4882a593Smuzhiyun 	WL_SAE_E_CRYPTO_NOT_INITED		= -3085,
405*4882a593Smuzhiyun 	/* bn_get has failed */
406*4882a593Smuzhiyun 	WL_SAE_E_CRYPTO_BN_GET_ERROR		= -3086,
407*4882a593Smuzhiyun 	/* bn_set has failed */
408*4882a593Smuzhiyun 	WL_SAE_E_CRYPTO_BN_SET_ERROR		= -3087,
409*4882a593Smuzhiyun 	/* PMK is not computed yet */
410*4882a593Smuzhiyun 	WL_SAE_E_CRYPTO_PMK_UNAVAILABLE		= -3088,
411*4882a593Smuzhiyun 	/* Peer confirm did not match */
412*4882a593Smuzhiyun 	WL_SAE_E_CRYPTO_CONFIRM_MISMATCH	= -3089,
413*4882a593Smuzhiyun 	/* Element K is at infinity no the curve */
414*4882a593Smuzhiyun 	WL_SAE_E_CRYPTO_KEY_AT_INFINITY		= -3090,
415*4882a593Smuzhiyun 	/* SAE Crypto private data magic number mismatch */
416*4882a593Smuzhiyun 	WL_SAE_E_CRYPTO_PRIV_MAGIC_MISMATCH	= -3091,
417*4882a593Smuzhiyun 	/* Max retry exhausted */
418*4882a593Smuzhiyun 	WL_SAE_E_MAX_RETRY_LIMIT_REACHED	= -3092,
419*4882a593Smuzhiyun 	/* peer sent password ID mismatch to local */
420*4882a593Smuzhiyun 	WL_SAE_E_AUTH_PEER_PWDID_MISMATCH	= -3093,
421*4882a593Smuzhiyun 	/* user not configured password */
422*4882a593Smuzhiyun 	WL_SAE_E_AUTH_PASSWORD_NOT_CONFIGURED	= -3094,
423*4882a593Smuzhiyun 	/* user not configured password ID */
424*4882a593Smuzhiyun 	WL_SAE_E_AUTH_PWDID_NOT_CONFIGURED	= -3095,
425*4882a593Smuzhiyun 	/* Anti-clogging token mismatch */
426*4882a593Smuzhiyun 	WL_SAE_E_AUTH_ANTI_CLOG_MISMATCH	= -3096,
427*4882a593Smuzhiyun 	/* SAE PWE method mismatch */
428*4882a593Smuzhiyun 	WL_SAE_E_AUTH_PWE_MISMATCH              = -3097
429*4882a593Smuzhiyun };
430*4882a593Smuzhiyun 
431*4882a593Smuzhiyun /*
432*4882a593Smuzhiyun  * Firmware signing error code range: -4096...-5119
433*4882a593Smuzhiyun  */
434*4882a593Smuzhiyun enum {
435*4882a593Smuzhiyun 	/* okay */
436*4882a593Smuzhiyun 	BCM_FWSIGN_E_OK				= 0,
437*4882a593Smuzhiyun 
438*4882a593Smuzhiyun 	/* Operation is in progress */
439*4882a593Smuzhiyun 	BCM_FWSIGN_E_INPROGRESS			= -4096,
440*4882a593Smuzhiyun 
441*4882a593Smuzhiyun 	/* version mismatch */
442*4882a593Smuzhiyun 	BCM_FWSIGN_E_VERSION			= -4097,
443*4882a593Smuzhiyun 
444*4882a593Smuzhiyun 	/* key not found */
445*4882a593Smuzhiyun 	BCM_FWSIGN_E_KEY_NOT_FOUND		= -4098,
446*4882a593Smuzhiyun 
447*4882a593Smuzhiyun 	/* key found, but is not valid (revoked) */
448*4882a593Smuzhiyun 	BCM_FWSIGN_E_KEY_NOT_VALID		= -4099,
449*4882a593Smuzhiyun 
450*4882a593Smuzhiyun 	/* Cipher suite id mismatch for the key */
451*4882a593Smuzhiyun 	BCM_FWSIGN_E_CS_ID_MISMATCH		= -4100,
452*4882a593Smuzhiyun 
453*4882a593Smuzhiyun 	/* Signature does not match */
454*4882a593Smuzhiyun 	BCM_FWSIGN_E_SIGNATURE			= -4101,
455*4882a593Smuzhiyun 
456*4882a593Smuzhiyun 	/* Continue */
457*4882a593Smuzhiyun 	BCM_FWSIGN_E_CONTINUE			= -4102,
458*4882a593Smuzhiyun 
459*4882a593Smuzhiyun 	/* Heap is too small */
460*4882a593Smuzhiyun 	BCM_FWSIGN_E_HEAP_TOO_SMALL		= -4103,
461*4882a593Smuzhiyun 
462*4882a593Smuzhiyun 	/* Allocation of bn ctx failed */
463*4882a593Smuzhiyun 	BCM_FWSIGN_E_BN_CTX_ALLOC_FAILED	= -4104,
464*4882a593Smuzhiyun 
465*4882a593Smuzhiyun 	/* possible bug */
466*4882a593Smuzhiyun 	BCM_FWSIGN_E_BUGCHECK			= -4105,
467*4882a593Smuzhiyun 
468*4882a593Smuzhiyun 	/* chosen key is invalid */
469*4882a593Smuzhiyun 	BCM_FWSIGN_E_INVALID_KEY		= -4106,
470*4882a593Smuzhiyun 
471*4882a593Smuzhiyun 	/* signature is invalid */
472*4882a593Smuzhiyun 	BCM_FWSIGN_E_INVALID_SIGNATURE		= -4107,
473*4882a593Smuzhiyun 
474*4882a593Smuzhiyun 	/* signature tlv missing */
475*4882a593Smuzhiyun 	BCM_FWSIGN_E_NO_CSID_SIG		= -4108,
476*4882a593Smuzhiyun 
477*4882a593Smuzhiyun 	/* chosen key is invalid */
478*4882a593Smuzhiyun 	BCM_FWSIGN_E_REVOKED_KEY		= -4109,
479*4882a593Smuzhiyun 
480*4882a593Smuzhiyun 	/* signature has no matching valid key in ROM */
481*4882a593Smuzhiyun 	BCM_FWSIGN_E_NO_OTP_FOR_ROM_KEY		= -4110,
482*4882a593Smuzhiyun 
483*4882a593Smuzhiyun 	/* Compression not supported */
484*4882a593Smuzhiyun 	BCM_FWSIGN_E_COMPNOTSUP			= -4111,
485*4882a593Smuzhiyun 
486*4882a593Smuzhiyun 	/* OTP read error */
487*4882a593Smuzhiyun 	BCM_FWSIGN_E_OTP_READ			= -4112,
488*4882a593Smuzhiyun 
489*4882a593Smuzhiyun 	/* heap address overlaps with FW address space */
490*4882a593Smuzhiyun 	BCM_FWSIGN_E_HEAP_OVR_FW		= -4113,
491*4882a593Smuzhiyun 
492*4882a593Smuzhiyun 	/* heap address overlaps with bootloader data/bss region */
493*4882a593Smuzhiyun 	BCM_FWSIGN_E_HEAP_OVR_BSS		= -4114,
494*4882a593Smuzhiyun 
495*4882a593Smuzhiyun 	/* heap address overlaps with bootloader stack region */
496*4882a593Smuzhiyun 	BCM_FWSIGN_E_HEAP_OVR_STACK		= -4115,
497*4882a593Smuzhiyun 
498*4882a593Smuzhiyun 	/* firmware encryption header tlv is missing */
499*4882a593Smuzhiyun 	BCM_FWSIGN_E_NO_FWENC_HDR		= -4116,
500*4882a593Smuzhiyun 
501*4882a593Smuzhiyun 	/* firmware encryption algo not supported */
502*4882a593Smuzhiyun 	BCM_FWSIGN_E_FWENC_ALGO_NOTSUP		= -4117,
503*4882a593Smuzhiyun 
504*4882a593Smuzhiyun 	/* firmware encryption tag tlv is missing */
505*4882a593Smuzhiyun 	BCM_FWSIGN_E_NO_FW_TAG			= -4118,
506*4882a593Smuzhiyun 
507*4882a593Smuzhiyun 	/* firmware encryption tag tlv is not valid */
508*4882a593Smuzhiyun 	BCM_FWSIGN_E_FW_TAG_INVALID_TLV		= -4119,
509*4882a593Smuzhiyun 
510*4882a593Smuzhiyun 	/* firmware encryption tag verification fail */
511*4882a593Smuzhiyun 	BCM_FWSIGN_E_FW_TAG_MISMATCH		= -4120,
512*4882a593Smuzhiyun 
513*4882a593Smuzhiyun 	/* signature package is invalid */
514*4882a593Smuzhiyun 	BCM_FWSIGN_E_PACKAGE_INVALID		= -4121,
515*4882a593Smuzhiyun 
516*4882a593Smuzhiyun 	/* last error */
517*4882a593Smuzhiyun 	BCM_FWSIGN_E_LAST			= -5119
518*4882a593Smuzhiyun };
519*4882a593Smuzhiyun typedef int32 bcm_fwsign_status_t;
520*4882a593Smuzhiyun 
521*4882a593Smuzhiyun /* PMK manager block. Event codes from -5120 to -6143 */
522*4882a593Smuzhiyun /* PSK hashing event codes */
523*4882a593Smuzhiyun enum {
524*4882a593Smuzhiyun 	WL_PMK_E_PSK_HASH_FAILED		= -5120,
525*4882a593Smuzhiyun 	WL_PMK_E_PSK_HASH_DONE			= -5121,
526*4882a593Smuzhiyun 	WL_PMK_E_PSK_HASH_RUNNING		= -5122,
527*4882a593Smuzhiyun 	WL_PMK_E_PSK_INVALID			= -5123,
528*4882a593Smuzhiyun 	WL_PMK_E_PSK_NOMEM			= -5124
529*4882a593Smuzhiyun };
530*4882a593Smuzhiyun 
531*4882a593Smuzhiyun /*
532*4882a593Smuzhiyun  * SOE (Security Offload Engine) status codes.
533*4882a593Smuzhiyun  * SOE status codes are reserved from -6144 to -7167 (1K)
534*4882a593Smuzhiyun  */
535*4882a593Smuzhiyun enum {
536*4882a593Smuzhiyun 	/* Invalid operational context */
537*4882a593Smuzhiyun 	WL_SOE_E_BAD_OP_CONTEXT			= -6144,
538*4882a593Smuzhiyun 
539*4882a593Smuzhiyun 	/* Invalid operational type */
540*4882a593Smuzhiyun 	WL_SOE_E_BAD_OP_TYPE			= -6145,
541*4882a593Smuzhiyun 
542*4882a593Smuzhiyun 	/* Failure to get NAF3 encoded scalar */
543*4882a593Smuzhiyun 	WL_SOE_E_BN_NAF3_GET_ERROR		= -6146,
544*4882a593Smuzhiyun 
545*4882a593Smuzhiyun 	/* Failure to get NAF3 params */
546*4882a593Smuzhiyun 	WL_SOE_E_NAF3_PARAMS_GET_ERROR		= -6147
547*4882a593Smuzhiyun };
548*4882a593Smuzhiyun 
549*4882a593Smuzhiyun /* BCM crypto ASN.1 status codes. */
550*4882a593Smuzhiyun /* Reserved range is from -7168 to -8291 */
551*4882a593Smuzhiyun enum {
552*4882a593Smuzhiyun 	/* tag mismatch */
553*4882a593Smuzhiyun 	BCM_CRYPTO_E_ASN1_TAG_MISMATCH		= -7168,
554*4882a593Smuzhiyun 
555*4882a593Smuzhiyun 	/* OID mismatch */
556*4882a593Smuzhiyun 	BCM_CRYPTO_E_ASN1_OID_MISMATCH		= -7169,
557*4882a593Smuzhiyun 
558*4882a593Smuzhiyun 	/* Bad key type */
559*4882a593Smuzhiyun 	BCM_CRYPTO_E_ASN1_BAD_KEY_TYPE		= -7170,
560*4882a593Smuzhiyun 
561*4882a593Smuzhiyun 	/* value length is invalid */
562*4882a593Smuzhiyun 	BCM_CRYPTO_E_ASN1_INVALID_LENGTH	= -7171,
563*4882a593Smuzhiyun 
564*4882a593Smuzhiyun 	/* Invalid public key length */
565*4882a593Smuzhiyun 	BCM_CRYPTO_E_ASN1_INVALID_PKLEN		= -7172,
566*4882a593Smuzhiyun 
567*4882a593Smuzhiyun 	/* Unsupported elliptic curve group */
568*4882a593Smuzhiyun 	BCM_CRYPTO_E_ASN1_UNSUPPORTED_ECG	= -7173
569*4882a593Smuzhiyun };
570*4882a593Smuzhiyun 
571*4882a593Smuzhiyun #endif	/* BCMUTILS_ERR_CODES */
572*4882a593Smuzhiyun 
573*4882a593Smuzhiyun #endif	/* _bcmerror_h_ */
574