blob: 84032abae6e11391a5e2e2690720808706de9348 [file] [log] [blame]
/*
* Copyright (c) 2011-2015 The Linux Foundation. All rights reserved.
*
* Previously licensed under the ISC license by Qualcomm Atheros, Inc.
*
*
* Permission to use, copy, modify, and/or distribute this software for
* any purpose with or without fee is hereby granted, provided that the
* above copyright notice and this permission notice appear in all
* copies.
*
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
* WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
* AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
* DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
* PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
* PERFORMANCE OF THIS SOFTWARE.
*/
/*
* This file was originally distributed by Qualcomm Atheros, Inc.
* under proprietary terms before Copyright ownership was assigned
* to the Linux Foundation.
*/
/*
*
* This file sir_types.h contains the common types
*
* Author: V. K. Kandarpa
* Date: 04/12/2002
*/
#ifndef __SIR_TYPES_H
#define __SIR_TYPES_H
#include "cdf_types.h"
/** ------------------------------------------------------------------------ *
\typedef tHalHandle
\brief Handle to the HAL. The HAL handle is returned by the HAL after it
is opened (by calling halOpen).
------------------------------------------------------------------------- */
typedef void *tHalHandle;
/** ------------------------------------------------------------------------ *
\typedef tHddHandle
\brief Handle to the HDD. The HDD handle is given to the HAL from
the HDD on halOpen. The HDD handle is an input to all HDD/PAL function
calls and represents an opaque handle to the HDD instance that is tied
to the HAL instance, opened through halOpen.
The HDD must be able to derive it's internal instance structure pointer
through this handle. hint hint...
------------------------------------------------------------------------- */
typedef void *tHddHandle;
/* ********************************************** *
* *
* SIRIUS ERROR Codes / Return Codes *
* *
* ********************************************** */
/* / Return status type */
typedef enum eSirRetStatus {
eSIR_SUCCESS,
eSIR_FAILURE,
/* / System Errors */
eSIR_SYS_ERROR_BASE = 0x100,
eSIR_SYS_TX_THREAD_CREATE_FAILED,
eSIR_SYS_TX_THREAD_RESUME_FAILED,
eSIR_SYS_TX_MSG_Q_CREATE_FAILED,
eSIR_SYS_TX_Q_SEND_FAILED,
eSIR_SYS_TX_Q_RECV_FAILED,
eSIR_SYS_TX_TIMER_ACTIVATE_FAILED,
eSIR_SYS_TX_TIMER_CHANGE_FAILED,
eSIR_SYS_TX_TIMER_CREATE_FAILED,
eSIR_MEM_ALLOC_FAILED,
eSIR_PCI_ERROR,
/* Driver Return Codes */
eSIR_HAL_ERROR_BASE = 0x1000,
eSIR_HAL_STAID_INVALID, /* 1 */
eSIR_HAL_TCDESC_INVALID, /* 2 */
eSIR_HAL_TX_WQ_NOT_VALID, /* 3 */
eSIR_HAL_PREV_BMU_CMD_INCOMPLETE, /* 4 */
eSIR_HAL_EEPROM_CRC_FAILED, /* 5 */
eSIR_HAL_PCI_REVID_INVALID, /* 6 */
eSIR_HAL_STA_TC_ID_INVALID, /* 7 */
eSIR_HAL_TXWQ_EMPTY, /* 8 */
eSIR_HAL_ROUT_TBL_TYPE_STYPE_INVALID, /* 9 */
eSIR_HAL_TFP_ENABLE_FAILED, /* a */
eSIR_HAL_TFP_ABORT_CMD_FAILED, /* b */
eSIR_HAL_TFP_TEMPL_BCNLEN_INVALID, /* c */
eSIR_HAL_TFP_TEMPL_SCHLEN_INVALID, /* d */
eSIR_HAL_TFP_TEMPL_CFENDLEN_INVALID, /* e */
eSIR_HAL_TFP_TEMPL_RRLEN_INVALID, /* f */
eSIR_HAL_TFP_TEMPL_PSPOLLLEN_INVALID, /* 10 */
eSIR_HAL_TFP_TEMPL_CTSLEN_INVALID, /* 11 */
eSIR_HAL_TFP_TEMPL_CFPOLLLEN_INVALID, /* 12 */
eSIR_HAL_TFP_TEMPL_BACKLEN_INVALID, /* 13 */
eSIR_HAL_INPUT_INVALID, /* 14 */
eSIR_HAL_GET_PDU_FAILED, /* 15 */
eSIR_HAL_ADD_STA_ACK_POLICY_INVALID, /* 16 */
eSIR_HAL_STA_EXISTS, /* 17 */
eSIR_HAL_STA_DOES_NOT_EXIST, /* 18 */
eSIR_HAL_MASTER_WQ_ID_INVALID, /* 19 */
eSIR_HAL_WQ_NOT_EMPTY, /* 1a */
eSIR_HAL_WQ_EMPTY, /* 1b */
eSIR_HAL_PDUCNT_AND_NEXTPTR_MISMATCH, /* 1c */
eSIR_HAL_ERR_NUM_BYTES_TO_BE_SET_TOO_BIG, /* 1d */
eSIR_HAL_GET_PKT_LENGTH_INVALID, /* 1e */
eSIR_HAL_AS_CNT_INVALID, /* 1f */
eSIR_HAL_RFP_AGE_CMD_SEQFAIL, /* 20 */
eSIR_HAL_RFP_AGE_CMD_AGE_CMD_TCFAIL, /* 21 */
eSIR_HAL_RFP_AGE_CMD_PASS, /* 22 */
eSIR_HAL_RFP_AGE_CMD_TIMEDOUT, /* 23 */
eSIR_HAL_RHP_HASH_CMD_TIMEOUT, /* 24 */
eSIR_HAL_RHP_ROUTING_TBL_SET_FAILED, /* 25 */
eSIR_HAL_RHP_ROUTING_TBL_GET_FAILED, /* 26 */
eSIR_HAL_CAL_STATUS_CHK_FAILED,
eSIR_HAL_SYS_ARM_DBG_MODE_SET_FAILED,
eSIR_HAL_TFP_BCN_SENT,
eSIR_HAL_TFP_BCN_NOT_SENT,
eSIR_HAL_TFP_BKOF_ID_INVALID,
eSIR_HAL_TFP_CFB_ENABLE_INPUT_INVALID,
eSIR_HAL_TFP_EDCF_TXOP_INVALID,
eSIR_HAL_TFP_TEMPL_LEN_INVALID,
eSIR_HAL_KEY_ID_INVALID,
eSIR_HAL_KEY_LEN_INVALID,
eSIR_HAL_CHID_INVALID,
eSIR_HAL_HIF_BURST_READ_FAILED,
eSIR_HAL_HIF_BURST_WRITE_FAILED,
eSIR_HAL_HIF_BURST_LEN_REQ_INVALID,
eSIR_HAL_HIF_TX_NO_FRAG_DESC,
eSIR_HAL_INVALID_PRODUCT_ID, /* 44 */
eSIR_HAL_INVALID_CAPABILITY, /* 48 */
eSIR_HAL_CB_NOT_ENABLED, /* 49 */
eSIR_HAL_MAC_RATE_INVALID, /* 4a */
eSIR_HAL_RHP_HANG, /* 4b */
eSIR_HAL_UNSUPPORTED, /* 4c */
eSIR_HAL_TSPEC_INVALID, /* 4d */
/* NIM Return Codes */
eSIR_NIM_ERROR_BASE = 0x2000,
eSIR_NIM_ERR_INVALID_EVENT,
/* MMH Return Codes */
eSIR_NIM_MMH_ERROR_BASE = 0x2100,
eSIR_NIM_MMH_ERR_INV_EVENT,
eSIR_NIM_MMH_ERR_MSG_LEN,
eSIR_NIM_MMH_ERR_IN_Q_TYPE,
/* MNT Return Codes */
eSIR_NIM_MNT_ERROR_BASE = 0x2140,
/* WDT Errors */
eSIR_NIM_WDT_ERROR_BASE = 0x2180,
/* LIM Return Codes */
eSIR_LIM_ERROR_BASE = 0x2200,
eSIR_LIM_IGNORE_BEACON,
eSIR_LIM_INVALID_STA,
eSIR_LIM_MAX_STA_REACHED_ERROR,
/* SCH Return Codes */
eSIR_SCH_ERROR_BASE = 0x2300,
/* PMM Return Codes */
eSIR_PMM_ERROR_BASE = 0x2400,
eSIR_PMM_INVALID_MODE,
eSIR_PMM_INVALID_STATE,
eSIR_PMM_INVALID_ROLE,
eSIR_PMM_STA_NOT_ASSOCIATED,
eSIR_PMM_HEART_BEAT_TMOUT,
eSIR_PMM_NTH_BEACON_DELIVERY,
/* ARQ Return Codes */
eSIR_ARQ_ERROR_BASE = 0x2500,
/* CFG Return Codes */
eSIR_CFG_ERROR_BASE = 2600,
eSIR_CFG_INVALID_ID,
eSIR_CFG_INVALID_LEN,
/* parser Return Codes */
eSIR_PRS_ERROR_BASE = 0x2700,
eSIR_IGNORE_IE,
/* Put all your return codes above this line */
eSIR_ERROR_LAST
} tSirRetStatus;
#define IS_SIR_STATUS_SUCCESS(status) (eSIR_SUCCESS == status)
typedef enum {
HAL_STOP_TYPE_SYS_RESET,
HAL_STOP_TYPE_SYS_DEEP_SLEEP,
HAL_STOP_TYPE_RF_KILL,
} tHalStopType;
#ifdef WLAN_SOFTAP_VSTA_FEATURE
#define HAL_NUM_ASSOC_STA 32
#define HAL_NUM_STA 41
#define HAL_NUM_HW_STA 16
#define HAL_NUM_GPSTA 4
/* is the STA a HW STA (excluding GP STAs) */
#define IS_HWSTA_IDX(__x) \
((__x) < (HAL_NUM_HW_STA-HAL_NUM_GPSTA))
#else
/*In prima 12 HW stations are supported including BCAST STA(staId 0)
and SELF STA(staId 1) so total ASSOC stations which can connect to Prima
SoftAP = 12 - 1(Self STa) - 1(Bcast Sta) = 10 Stations. */
#define HAL_NUM_STA 12
#define HAL_NUM_ASSOC_STA 10
#define HAL_NUM_HW_STA 12
#endif
#define STACFG_MAX_TC 8
#endif /* __SIR_TYPES_H */