Prakash Dhavali | 7090c5f | 2015-11-02 17:55:19 -0800 | [diff] [blame^] | 1 | /* |
| 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 | ------------------------------------------------------------------------- */ |
| 50 | typedef 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 | ------------------------------------------------------------------------- */ |
| 65 | typedef void *tHddHandle; |
| 66 | |
| 67 | /* ********************************************** * |
| 68 | * * |
| 69 | * SIRIUS ERROR Codes / Return Codes * |
| 70 | * * |
| 71 | * ********************************************** */ |
| 72 | |
| 73 | /* / Return status type */ |
| 74 | typedef 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) |
| 209 | typedef 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 */ |