blob: 84032abae6e11391a5e2e2690720808706de9348 [file] [log] [blame]
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001/*
2 * Copyright (c) 2011-2015 The Linux Foundation. All rights reserved.
3 *
4 * Previously licensed under the ISC license by Qualcomm Atheros, Inc.
5 *
6 *
7 * Permission to use, copy, modify, and/or distribute this software for
8 * any purpose with or without fee is hereby granted, provided that the
9 * above copyright notice and this permission notice appear in all
10 * copies.
11 *
12 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
13 * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
14 * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
15 * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
16 * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
17 * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
18 * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
19 * PERFORMANCE OF THIS SOFTWARE.
20 */
21
22/*
23 * This file was originally distributed by Qualcomm Atheros, Inc.
24 * under proprietary terms before Copyright ownership was assigned
25 * to the Linux Foundation.
26 */
27
28/*
29 *
30 * This file sir_types.h contains the common types
31 *
32 * Author: V. K. Kandarpa
33 * Date: 04/12/2002
34 */
35
36#ifndef __SIR_TYPES_H
37#define __SIR_TYPES_H
38
39#include "cdf_types.h"
40
41
42/** ------------------------------------------------------------------------ *
43
44 \typedef tHalHandle
45
46 \brief Handle to the HAL. The HAL handle is returned by the HAL after it
47 is opened (by calling halOpen).
48
49 ------------------------------------------------------------------------- */
50typedef void *tHalHandle;
51
52/** ------------------------------------------------------------------------ *
53
54 \typedef tHddHandle
55
56 \brief Handle to the HDD. The HDD handle is given to the HAL from
57 the HDD on halOpen. The HDD handle is an input to all HDD/PAL function
58 calls and represents an opaque handle to the HDD instance that is tied
59 to the HAL instance, opened through halOpen.
60
61 The HDD must be able to derive it's internal instance structure pointer
62 through this handle. hint hint...
63
64 ------------------------------------------------------------------------- */
65typedef void *tHddHandle;
66
67/* ********************************************** *
68* *
69* SIRIUS ERROR Codes / Return Codes *
70* *
71* ********************************************** */
72
73/* / Return status type */
74typedef enum eSirRetStatus {
75 eSIR_SUCCESS,
76 eSIR_FAILURE,
77
78 /* / System Errors */
79 eSIR_SYS_ERROR_BASE = 0x100,
80 eSIR_SYS_TX_THREAD_CREATE_FAILED,
81 eSIR_SYS_TX_THREAD_RESUME_FAILED,
82 eSIR_SYS_TX_MSG_Q_CREATE_FAILED,
83 eSIR_SYS_TX_Q_SEND_FAILED,
84 eSIR_SYS_TX_Q_RECV_FAILED,
85 eSIR_SYS_TX_TIMER_ACTIVATE_FAILED,
86 eSIR_SYS_TX_TIMER_CHANGE_FAILED,
87 eSIR_SYS_TX_TIMER_CREATE_FAILED,
88 eSIR_MEM_ALLOC_FAILED,
89 eSIR_PCI_ERROR,
90
91 /* Driver Return Codes */
92 eSIR_HAL_ERROR_BASE = 0x1000,
93 eSIR_HAL_STAID_INVALID, /* 1 */
94 eSIR_HAL_TCDESC_INVALID, /* 2 */
95 eSIR_HAL_TX_WQ_NOT_VALID, /* 3 */
96 eSIR_HAL_PREV_BMU_CMD_INCOMPLETE, /* 4 */
97 eSIR_HAL_EEPROM_CRC_FAILED, /* 5 */
98 eSIR_HAL_PCI_REVID_INVALID, /* 6 */
99 eSIR_HAL_STA_TC_ID_INVALID, /* 7 */
100 eSIR_HAL_TXWQ_EMPTY, /* 8 */
101 eSIR_HAL_ROUT_TBL_TYPE_STYPE_INVALID, /* 9 */
102 eSIR_HAL_TFP_ENABLE_FAILED, /* a */
103 eSIR_HAL_TFP_ABORT_CMD_FAILED, /* b */
104 eSIR_HAL_TFP_TEMPL_BCNLEN_INVALID, /* c */
105 eSIR_HAL_TFP_TEMPL_SCHLEN_INVALID, /* d */
106 eSIR_HAL_TFP_TEMPL_CFENDLEN_INVALID, /* e */
107 eSIR_HAL_TFP_TEMPL_RRLEN_INVALID, /* f */
108 eSIR_HAL_TFP_TEMPL_PSPOLLLEN_INVALID, /* 10 */
109 eSIR_HAL_TFP_TEMPL_CTSLEN_INVALID, /* 11 */
110 eSIR_HAL_TFP_TEMPL_CFPOLLLEN_INVALID, /* 12 */
111 eSIR_HAL_TFP_TEMPL_BACKLEN_INVALID, /* 13 */
112 eSIR_HAL_INPUT_INVALID, /* 14 */
113 eSIR_HAL_GET_PDU_FAILED, /* 15 */
114 eSIR_HAL_ADD_STA_ACK_POLICY_INVALID, /* 16 */
115 eSIR_HAL_STA_EXISTS, /* 17 */
116 eSIR_HAL_STA_DOES_NOT_EXIST, /* 18 */
117 eSIR_HAL_MASTER_WQ_ID_INVALID, /* 19 */
118 eSIR_HAL_WQ_NOT_EMPTY, /* 1a */
119 eSIR_HAL_WQ_EMPTY, /* 1b */
120 eSIR_HAL_PDUCNT_AND_NEXTPTR_MISMATCH, /* 1c */
121 eSIR_HAL_ERR_NUM_BYTES_TO_BE_SET_TOO_BIG, /* 1d */
122 eSIR_HAL_GET_PKT_LENGTH_INVALID, /* 1e */
123 eSIR_HAL_AS_CNT_INVALID, /* 1f */
124 eSIR_HAL_RFP_AGE_CMD_SEQFAIL, /* 20 */
125 eSIR_HAL_RFP_AGE_CMD_AGE_CMD_TCFAIL, /* 21 */
126 eSIR_HAL_RFP_AGE_CMD_PASS, /* 22 */
127 eSIR_HAL_RFP_AGE_CMD_TIMEDOUT, /* 23 */
128 eSIR_HAL_RHP_HASH_CMD_TIMEOUT, /* 24 */
129 eSIR_HAL_RHP_ROUTING_TBL_SET_FAILED, /* 25 */
130 eSIR_HAL_RHP_ROUTING_TBL_GET_FAILED, /* 26 */
131
132 eSIR_HAL_CAL_STATUS_CHK_FAILED,
133
134 eSIR_HAL_SYS_ARM_DBG_MODE_SET_FAILED,
135 eSIR_HAL_TFP_BCN_SENT,
136 eSIR_HAL_TFP_BCN_NOT_SENT,
137 eSIR_HAL_TFP_BKOF_ID_INVALID,
138 eSIR_HAL_TFP_CFB_ENABLE_INPUT_INVALID,
139 eSIR_HAL_TFP_EDCF_TXOP_INVALID,
140 eSIR_HAL_TFP_TEMPL_LEN_INVALID,
141 eSIR_HAL_KEY_ID_INVALID,
142 eSIR_HAL_KEY_LEN_INVALID,
143 eSIR_HAL_CHID_INVALID,
144 eSIR_HAL_HIF_BURST_READ_FAILED,
145 eSIR_HAL_HIF_BURST_WRITE_FAILED,
146 eSIR_HAL_HIF_BURST_LEN_REQ_INVALID,
147 eSIR_HAL_HIF_TX_NO_FRAG_DESC,
148
149 eSIR_HAL_INVALID_PRODUCT_ID, /* 44 */
150
151 eSIR_HAL_INVALID_CAPABILITY, /* 48 */
152 eSIR_HAL_CB_NOT_ENABLED, /* 49 */
153 eSIR_HAL_MAC_RATE_INVALID, /* 4a */
154 eSIR_HAL_RHP_HANG, /* 4b */
155 eSIR_HAL_UNSUPPORTED, /* 4c */
156 eSIR_HAL_TSPEC_INVALID, /* 4d */
157
158 /* NIM Return Codes */
159 eSIR_NIM_ERROR_BASE = 0x2000,
160 eSIR_NIM_ERR_INVALID_EVENT,
161
162 /* MMH Return Codes */
163 eSIR_NIM_MMH_ERROR_BASE = 0x2100,
164 eSIR_NIM_MMH_ERR_INV_EVENT,
165 eSIR_NIM_MMH_ERR_MSG_LEN,
166 eSIR_NIM_MMH_ERR_IN_Q_TYPE,
167
168 /* MNT Return Codes */
169 eSIR_NIM_MNT_ERROR_BASE = 0x2140,
170
171 /* WDT Errors */
172 eSIR_NIM_WDT_ERROR_BASE = 0x2180,
173
174 /* LIM Return Codes */
175 eSIR_LIM_ERROR_BASE = 0x2200,
176 eSIR_LIM_IGNORE_BEACON,
177 eSIR_LIM_INVALID_STA,
178 eSIR_LIM_MAX_STA_REACHED_ERROR,
179
180 /* SCH Return Codes */
181 eSIR_SCH_ERROR_BASE = 0x2300,
182
183 /* PMM Return Codes */
184 eSIR_PMM_ERROR_BASE = 0x2400,
185 eSIR_PMM_INVALID_MODE,
186 eSIR_PMM_INVALID_STATE,
187 eSIR_PMM_INVALID_ROLE,
188 eSIR_PMM_STA_NOT_ASSOCIATED,
189 eSIR_PMM_HEART_BEAT_TMOUT,
190 eSIR_PMM_NTH_BEACON_DELIVERY,
191
192 /* ARQ Return Codes */
193 eSIR_ARQ_ERROR_BASE = 0x2500,
194
195 /* CFG Return Codes */
196 eSIR_CFG_ERROR_BASE = 2600,
197 eSIR_CFG_INVALID_ID,
198 eSIR_CFG_INVALID_LEN,
199
200 /* parser Return Codes */
201 eSIR_PRS_ERROR_BASE = 0x2700,
202 eSIR_IGNORE_IE,
203
204 /* Put all your return codes above this line */
205 eSIR_ERROR_LAST
206} tSirRetStatus;
207
208#define IS_SIR_STATUS_SUCCESS(status) (eSIR_SUCCESS == status)
209typedef enum {
210 HAL_STOP_TYPE_SYS_RESET,
211 HAL_STOP_TYPE_SYS_DEEP_SLEEP,
212 HAL_STOP_TYPE_RF_KILL,
213} tHalStopType;
214
215#ifdef WLAN_SOFTAP_VSTA_FEATURE
216#define HAL_NUM_ASSOC_STA 32
217#define HAL_NUM_STA 41
218#define HAL_NUM_HW_STA 16
219#define HAL_NUM_GPSTA 4
220
221/* is the STA a HW STA (excluding GP STAs) */
222#define IS_HWSTA_IDX(__x) \
223 ((__x) < (HAL_NUM_HW_STA-HAL_NUM_GPSTA))
224
225#else
226/*In prima 12 HW stations are supported including BCAST STA(staId 0)
227 and SELF STA(staId 1) so total ASSOC stations which can connect to Prima
228 SoftAP = 12 - 1(Self STa) - 1(Bcast Sta) = 10 Stations. */
229#define HAL_NUM_STA 12
230#define HAL_NUM_ASSOC_STA 10
231#define HAL_NUM_HW_STA 12
232#endif
233
234#define STACFG_MAX_TC 8
235
236#endif /* __SIR_TYPES_H */