1 /** @file parser_rom.h 2 * 3 * @brief This file contains the data structrue for iepointer and declare the parse function 4 * 5 * Copyright (C) 2014-2017, Marvell International Ltd. 6 * 7 * This software file (the "File") is distributed by Marvell International 8 * Ltd. under the terms of the GNU General Public License Version 2, June 1991 9 * (the "License"). You may use, redistribute and/or modify this File in 10 * accordance with the terms and conditions of the License, a copy of which 11 * is available by writing to the Free Software Foundation, Inc., 12 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA or on the 13 * worldwide web at http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt. 14 * 15 * THE FILE IS DISTRIBUTED AS-IS, WITHOUT WARRANTY OF ANY KIND, AND THE 16 * IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE 17 * ARE EXPRESSLY DISCLAIMED. The License provides additional details about 18 * this warranty disclaimer. 19 */ 20 21 /****************************************************** 22 Change log: 23 03/07/2014: Initial version 24 ******************************************************/ 25 #ifndef PARSER_ROM_H__ 26 #define PARSER_ROM_H__ 27 #include "IEEE_types.h" 28 29 typedef enum { 30 VendSpecIE_Other = 0, 31 VendSpecIE_WMM_Info, 32 VendSpecIE_WMM_Param, 33 VendSpecIE_WPA, 34 VendSpecIE_WPS, 35 VendSpecIE_TSPEC, 36 VendSpecIE_SsIdL, 37 VendSpecIE_WFD, 38 39 VendSpecIE_HT_Cap, 40 VendSpecIE_HT_Info, 41 42 } VendorSpecificIEType_e; 43 44 typedef struct { 45 /* IMPORTANT: please read before you modify this struct: 46 Some of the members of this struct are used in ROM code. 47 Therefore, please do not change any existing field, including 48 its name and type. If you want to add a new element into 49 this struct add it at the end. 50 */ 51 IEEEtypes_SsIdElement_t *pSsid; 52 IEEEtypes_TimElement_t *pTim; 53 IEEEtypes_WPAElement_t *pWpa; 54 IEEEtypes_WMM_InfoElement_t *pWmmInfo; 55 IEEEtypes_WMM_ParamElement_t *pWmmParam; 56 IEEEtypes_DsParamElement_t *pDsParam; 57 IEEEtypes_SuppRatesElement_t *pSupportedRates; 58 IEEEtypes_ExtSuppRatesElement_t *pExtSupportedRates; 59 IEEEtypes_ERPInfoElement_t *pErpInfo; 60 IEEEtypes_IbssParamElement_t *pIbssParam; 61 IEEEtypes_CountryInfoElement_t *pCountry; 62 63 IEEEtypes_MobilityDomainElement_t *pMdie; 64 65 IEEEtypes_RSNElement_t *pRsn; 66 67 IEEEtypes_HT_Capability_t *pHtCap; 68 IEEEtypes_HT_Information_t *pHtInfo; 69 IEEEtypes_20N40_BSS_Coexist_t *p2040Coexist; 70 IEEEtypes_OBSS_ScanParam_t *pHtScanParam; 71 IEEEtypes_ExtCapability_t *pExtCap; 72 73 IEEEtypes_WPSElement_t *pWps; 74 IEEEtypes_WAPIElement_t *pWapi; 75 76 } IEPointers_t; 77 78 typedef struct { 79 /* IMPORTANT: please read before you modify this struct: 80 Some of the members of this struct are used in ROM code. 81 Therefore, please do not change any existing field, including 82 its name and type. If you want to add a new element into 83 this struct add it at the end. 84 */ 85 IEEEtypes_SsIdElement_t *pSsid; 86 IEEEtypes_TimElement_t *pTim; 87 IEEEtypes_DsParamElement_t *pDsParam; 88 89 IEEEtypes_CountryInfoElement_t *pCountry; 90 91 UINT8 numSsIdLs; 92 IEEEtypes_SsIdLElement_t *pSsIdL; /* Only the first SSIDL found, 93 ** need iterator to get next since 94 ** multiple may be in beacon 95 */ 96 } ScanIePointers_t; 97 98 typedef struct { 99 /* IMPORTANT: please read before you modify this struct: 100 Some of the members of this struct are used in ROM code. 101 Therefore, please do not change any existing field, including 102 its name and type. If you want to add a new element into 103 this struct add it at the end. 104 */ 105 IEEEtypes_SsIdElement_t *pSsid; 106 IEEEtypes_DsParamElement_t *pDsParam; 107 108 IEEEtypes_CountryInfoElement_t *pCountry; 109 IEEEtypes_ApChanRptElement_t *pApChanRpt; 110 IEEEtypes_PowerConstraintElement_t *pPwrCon; 111 112 IEEEtypes_SuppRatesElement_t *pSupportedRates; 113 IEEEtypes_ExtSuppRatesElement_t *pExtSupportedRates; 114 115 IEEEtypes_WPAElement_t *pWpa; 116 IEEEtypes_WMM_InfoElement_t *pWmmInfo; 117 IEEEtypes_WMM_ParamElement_t *pWmmParam; 118 119 IEEEtypes_MobilityDomainElement_t *pMdie; 120 121 IEEEtypes_RSNElement_t *pRsn; 122 123 IEEEtypes_HT_Information_t *pHtInfo; 124 IEEEtypes_HT_Capability_t *pHtCap; 125 IEEEtypes_20N40_BSS_Coexist_t *p2040Coexist; 126 IEEEtypes_OBSS_ScanParam_t *pHtScanParam; 127 IEEEtypes_ExtCapability_t *pExtCap; 128 129 } AssocIePointers_t; 130 extern BOOLEAN ROM_parser_getIEPtr(void *priv, uint8 *pIe, 131 IEPointers_t *pIePointers); 132 extern BOOLEAN ROM_parser_getAssocIEPtr(void *priv, uint8 *pIe, 133 AssocIePointers_t *pIePointers); 134 135 #endif // _PARSER_ROM_H_ 136