hc
2024-08-12 233ab1bd4c5697f5cdec94e60206e8c6ac609b4c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
/** @file parser_rom.h
 *
 *  @brief This file contains the data structrue for iepointer and declare the parse function
 *
 * Copyright (C) 2014-2017, 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_