blob: 1783dafcf9faddea5f7f493d51b84a85a561661f [file] [log] [blame]
/** @file parser_rom.h
*
* @brief This file contains the data structrue for iepointer and declare the parse function
*
* Copyright (C) 2014, Marvell International Ltd.
*
* This software file (the "File") is distributed by Marvell International
* Ltd. under the terms of the GNU General Public License Version 2, June 1991
* (the "License"). You may use, redistribute and/or modify this File in
* accordance with the terms and conditions of the License, a copy of which
* is available by writing to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA or on the
* worldwide web at http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt.
*
* THE FILE IS DISTRIBUTED AS-IS, WITHOUT WARRANTY OF ANY KIND, AND THE
* IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE
* ARE EXPRESSLY DISCLAIMED. The License provides additional details about
* this warranty disclaimer.
*/
/******************************************************
Change log:
03/07/2014: Initial version
******************************************************/
#ifndef PARSER_ROM_H__
#define PARSER_ROM_H__
#include "IEEE_types.h"
typedef enum {
VendSpecIE_Other = 0,
VendSpecIE_WMM_Info,
VendSpecIE_WMM_Param,
VendSpecIE_WPA,
VendSpecIE_WPS,
VendSpecIE_TSPEC,
VendSpecIE_SsIdL,
VendSpecIE_WFD,
VendSpecIE_HT_Cap,
VendSpecIE_HT_Info,
} VendorSpecificIEType_e;
typedef struct {
/* IMPORTANT: please read before you modify this struct: Some of the
members of this struct are used in ROM code. Therefore, please do
not change any existing field, including its name and type. If you
want to add a new element into this struct add it at the end. */
IEEEtypes_SsIdElement_t *pSsid;
IEEEtypes_TimElement_t *pTim;
IEEEtypes_WPAElement_t *pWpa;
IEEEtypes_WMM_InfoElement_t *pWmmInfo;
IEEEtypes_WMM_ParamElement_t *pWmmParam;
IEEEtypes_DsParamElement_t *pDsParam;
IEEEtypes_SuppRatesElement_t *pSupportedRates;
IEEEtypes_ExtSuppRatesElement_t *pExtSupportedRates;
IEEEtypes_ERPInfoElement_t *pErpInfo;
IEEEtypes_IbssParamElement_t *pIbssParam;
IEEEtypes_CountryInfoElement_t *pCountry;
IEEEtypes_MobilityDomainElement_t *pMdie;
IEEEtypes_RSNElement_t *pRsn;
IEEEtypes_HT_Capability_t *pHtCap;
IEEEtypes_HT_Information_t *pHtInfo;
IEEEtypes_20N40_BSS_Coexist_t *p2040Coexist;
IEEEtypes_OBSS_ScanParam_t *pHtScanParam;
IEEEtypes_ExtCapability_t *pExtCap;
IEEEtypes_WPSElement_t *pWps;
IEEEtypes_WAPIElement_t *pWapi;
} IEPointers_t;
typedef struct {
/* IMPORTANT: please read before you modify this struct: Some of the
members of this struct are used in ROM code. Therefore, please do
not change any existing field, including its name and type. If you
want to add a new element into this struct add it at the end. */
IEEEtypes_SsIdElement_t *pSsid;
IEEEtypes_TimElement_t *pTim;
IEEEtypes_DsParamElement_t *pDsParam;
IEEEtypes_CountryInfoElement_t *pCountry;
UINT8 numSsIdLs;
IEEEtypes_SsIdLElement_t *pSsIdL; /* Only the first SSIDL found,
** need iterator to get next
since ** multiple may be in
beacon */
} ScanIePointers_t;
typedef struct {
/* IMPORTANT: please read before you modify this struct: Some of the
members of this struct are used in ROM code. Therefore, please do
not change any existing field, including its name and type. If you
want to add a new element into this struct add it at the end. */
IEEEtypes_SsIdElement_t *pSsid;
IEEEtypes_DsParamElement_t *pDsParam;
IEEEtypes_CountryInfoElement_t *pCountry;
IEEEtypes_ApChanRptElement_t *pApChanRpt;
IEEEtypes_PowerConstraintElement_t *pPwrCon;
IEEEtypes_SuppRatesElement_t *pSupportedRates;
IEEEtypes_ExtSuppRatesElement_t *pExtSupportedRates;
IEEEtypes_WPAElement_t *pWpa;
IEEEtypes_WMM_InfoElement_t *pWmmInfo;
IEEEtypes_WMM_ParamElement_t *pWmmParam;
IEEEtypes_MobilityDomainElement_t *pMdie;
IEEEtypes_RSNElement_t *pRsn;
IEEEtypes_HT_Information_t *pHtInfo;
IEEEtypes_HT_Capability_t *pHtCap;
IEEEtypes_20N40_BSS_Coexist_t *p2040Coexist;
IEEEtypes_OBSS_ScanParam_t *pHtScanParam;
IEEEtypes_ExtCapability_t *pExtCap;
} AssocIePointers_t;
extern BOOLEAN ROM_parser_getIEPtr(void *priv, uint8 *pIe,
IEPointers_t *pIePointers);
extern BOOLEAN ROM_parser_getAssocIEPtr(void *priv, uint8 *pIe,
AssocIePointers_t *pIePointers);
#endif // _PARSER_ROM_H_