add MTK-combo-module,continue with commit 17f39ed917874e77e80411f33faba1b7ee8138c8
[firefly-linux-kernel-4.4.55.git] / drivers / mtk_wcn_combo / drv_wlan / wlan / include / typedef.h
1 /*
2 ** $Id: //Department/DaVinci/BRANCHES/MT6620_WIFI_DRIVER_V2_2/include/typedef.h#1 $
3 */
4
5 /*! \file   typedef.h
6     \brief  Declaration of data type and return values of internal protocol stack.
7
8     In this file we declare the data type and return values which will be exported
9     to the GLUE Layer.
10 */
11
12 /*******************************************************************************
13 * Copyright (c) 2007 MediaTek Inc.
14 *
15 * All rights reserved. Copying, compilation, modification, distribution
16 * or any other use whatsoever of this material is strictly prohibited
17 * except in accordance with a Software License Agreement with
18 * MediaTek Inc.
19 ********************************************************************************
20 */
21
22 /*******************************************************************************
23 * LEGAL DISCLAIMER
24 *
25 * BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND
26 * AGREES THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK
27 * SOFTWARE") RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE
28 * PROVIDED TO BUYER ON AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY
29 * DISCLAIMS ANY AND ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT
30 * LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
31 * PARTICULAR PURPOSE OR NONINFRINGEMENT. NEITHER DOES MEDIATEK PROVIDE
32 * ANY WARRANTY WHATSOEVER WITH RESPECT TO THE SOFTWARE OF ANY THIRD PARTY
33 * WHICH MAY BE USED BY, INCORPORATED IN, OR SUPPLIED WITH THE MEDIATEK
34 * SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH THIRD PARTY FOR ANY
35 * WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO NOT BE RESPONSIBLE
36 * FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S SPECIFICATION OR TO
37 * CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
38 *
39 * BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
40 * LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL
41 * BE, AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT
42 * ISSUE, OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY
43 * BUYER TO MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
44 *
45 * THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
46 * WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT
47 * OF LAWS PRINCIPLES.  ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING
48 * THEREOF AND RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN
49 * FRANCISCO, CA, UNDER THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE
50 * (ICC).
51 ********************************************************************************
52 */
53
54 /*
55 ** $Log: typedef.h $
56  *
57  * 10 19 2011 yuche.tsai
58  * [WCXRP00001045] [WiFi Direct][Driver] Check 2.1 branch.
59  * Branch 2.1
60  * Davinci Maintrunk Label: MT6620_WIFI_DRIVER_FW_TRUNK_MT6620E5_111019_0926.
61  *
62  * 03 18 2011 cp.wu
63  * [WCXRP00000577] [MT6620 Wi-Fi][Driver][FW] Create V2.0 branch for firmware and driver
64  * create V2.0 driver release based on label "MT6620_WIFI_DRIVER_V2_0_110318_1600" from main trunk
65  *
66  * 12 30 2010 cp.wu
67  * [WCXRP00000327] [MT6620 Wi-Fi][Driver] Improve HEC WHQA 6972 workaround coverage in driver side
68  * host driver not to set FW-own when there is still pending interrupts
69  *
70  * 09 03 2010 kevin.huang
71  * NULL
72  * Refine #include sequence and solve recursive/nested #include issue
73  *
74  * 08 16 2010 kevin.huang
75  * NULL
76  * Refine AAA functions
77  *
78  * 07 19 2010 jeffrey.chang
79  * 
80  * Linux port modification
81  *
82  * 07 08 2010 cp.wu
83  * 
84  * [WPD00003833] [MT6620 and MT5931] Driver migration - move to new repository.
85  *
86  * 06 23 2010 cp.wu
87  * [WPD00003833][MT6620 and MT5931] Driver migration 
88  * integrate .
89  *
90  * 06 18 2010 cm.chang
91  * [WPD00003841][LITE Driver] Migrate RLM/CNM to host driver 
92  * Provide cnmMgtPktAlloc() and alloc/free function of msg/buf
93  *
94  * 06 11 2010 cp.wu
95  * [WPD00003833][MT6620 and MT5931] Driver migration
96  * 1) migrate assoc.c.
97  * 2) add ucTxSeqNum for tracking frames which needs TX-DONE awareness
98  * 3) add configuration options for CNM_MEM and RSN modules
99  * 4) add data path for management frames
100  * 5) eliminate rPacketInfo of MSDU_INFO_T
101  *
102  * 06 09 2010 cp.wu
103  * [WPD00003833][MT6620 and MT5931] Driver migration
104  * add necessary changes to driver data paths.
105  *
106  * 06 09 2010 cp.wu
107  * [WPD00003833][MT6620 and MT5931] Driver migration
108  * add definitions for module migration.
109  *
110  * 06 07 2010 cp.wu
111  * [WPD00003833][MT6620 and MT5931] Driver migration
112  * add aa_fsm.h, ais_fsm.h, bss.h, mib.h and scan.h.
113  *
114  * 06 06 2010 kevin.huang
115  * [WPD00003832][MT6620 5931] Create driver base
116  * [MT6620 5931] Create driver base
117  *
118  * 06 03 2010 cp.wu
119  * [WPD00001943]Create WiFi test driver framework on WinXP
120  * move timer callback to glue layer.
121  *
122  * 05 31 2010 cp.wu
123  * [WPD00003831][MT6620 Wi-Fi] Add framework for Wi-Fi Direct support
124  * add cfg80211 interface, which is to replace WE, for further extension
125  *
126  * 03 24 2010 jeffrey.chang
127  * [WPD00003826]Initial import for Linux port
128  * initial import for Linux port
129  *
130  * 02 24 2010 cp.wu
131  * [WPD00001943]Create WiFi test driver framework on WinXP
132  * add Ethernet destination address information in packet info for TX
133  *
134  * 02 23 2010 cp.wu
135  * [WPD00001943]Create WiFi test driver framework on WinXP
136  * add new API: wlanProcessQueuedPackets()
137 **  \main\maintrunk.MT6620WiFiDriver_Prj\6 2009-03-23 21:41:37 GMT mtk01461
138 **  Update PACKET_INFO_INIT for TX Path
139 **  \main\maintrunk.MT6620WiFiDriver_Prj\5 2009-03-23 00:30:17 GMT mtk01461
140 **  Add parameter in PACKET_INFO_T for HIF Loopback
141 **  \main\maintrunk.MT6620WiFiDriver_Prj\4 2009-03-18 20:25:22 GMT mtk01461
142 **  Fix LINT warning
143 **  \main\maintrunk.MT6620WiFiDriver_Prj\3 2009-03-16 09:08:28 GMT mtk01461
144 **  Update TX PATH API
145 **  \main\maintrunk.MT6620WiFiDriver_Prj\2 2009-03-10 20:11:54 GMT mtk01426
146 **  Init for develop
147 **
148 */
149
150 #ifndef _TYPEDEF_H
151 #define _TYPEDEF_H
152
153 /*******************************************************************************
154 *                         C O M P I L E R   F L A G S
155 ********************************************************************************
156 */
157
158 /*******************************************************************************
159 *                    E X T E R N A L   R E F E R E N C E S
160 ********************************************************************************
161 */
162
163 /*******************************************************************************
164 *                              C O N S T A N T S
165 ********************************************************************************
166 */
167
168 /* ieee80211.h of linux has duplicated definitions */
169 #if defined(WLAN_STATUS_SUCCESS)
170 #undef WLAN_STATUS_SUCCESS
171 #endif
172
173 #define WLAN_STATUS_SUCCESS                     ((WLAN_STATUS) 0x00000000L)
174 #define WLAN_STATUS_PENDING                     ((WLAN_STATUS) 0x00000103L)
175 #define WLAN_STATUS_NOT_ACCEPTED                ((WLAN_STATUS) 0x00010003L)
176
177 #define WLAN_STATUS_MEDIA_CONNECT               ((WLAN_STATUS) 0x4001000BL)
178 #define WLAN_STATUS_MEDIA_DISCONNECT            ((WLAN_STATUS) 0x4001000CL)
179 #define WLAN_STATUS_MEDIA_SPECIFIC_INDICATION   ((WLAN_STATUS) 0x40010012L)
180
181 #define WLAN_STATUS_SCAN_COMPLETE               ((WLAN_STATUS) 0x60010001L)
182 #define WLAN_STATUS_MSDU_OK                     ((WLAN_STATUS) 0x60010002L)
183
184 /* TODO(Kevin): double check if 0x60010001 & 0x60010002 is proprietary */
185 #define WLAN_STATUS_ROAM_OUT_FIND_BEST          ((WLAN_STATUS) 0x60010101L)
186 #define WLAN_STATUS_ROAM_DISCOVERY              ((WLAN_STATUS) 0x60010102L)
187
188 #define WLAN_STATUS_FAILURE                     ((WLAN_STATUS) 0xC0000001L)
189 #define WLAN_STATUS_RESOURCES                   ((WLAN_STATUS) 0xC000009AL)
190 #define WLAN_STATUS_NOT_SUPPORTED               ((WLAN_STATUS) 0xC00000BBL)
191
192 #define WLAN_STATUS_MULTICAST_FULL              ((WLAN_STATUS) 0xC0010009L)
193 #define WLAN_STATUS_INVALID_PACKET              ((WLAN_STATUS) 0xC001000FL)
194 #define WLAN_STATUS_ADAPTER_NOT_READY           ((WLAN_STATUS) 0xC0010011L)
195 #define WLAN_STATUS_NOT_INDICATING              ((WLAN_STATUS) 0xC0010013L)
196 #define WLAN_STATUS_INVALID_LENGTH              ((WLAN_STATUS) 0xC0010014L)
197 #define WLAN_STATUS_INVALID_DATA                ((WLAN_STATUS) 0xC0010015L)
198 #define WLAN_STATUS_BUFFER_TOO_SHORT            ((WLAN_STATUS) 0xC0010016L)
199
200 #define WLAN_STATUS_BWCS_UPDATE            ((WLAN_STATUS) 0xC0010017L)
201
202 /* NIC status flags */
203 #define ADAPTER_FLAG_HW_ERR                     0x00400000
204
205 /* Type Length */
206 #define TL_IPV4     0x0008
207 #define TL_IPV6     0xDD86
208
209
210 /*******************************************************************************
211 *                             D A T A   T Y P E S
212 ********************************************************************************
213 */
214 /* Type definition for GLUE_INFO structure */
215 typedef struct _GLUE_INFO_T     GLUE_INFO_T, *P_GLUE_INFO_T;
216
217 /* Type definition for WLAN STATUS */
218 typedef UINT_32                 WLAN_STATUS, *P_WLAN_STATUS;
219
220 /* Type definition for ADAPTER structure */
221 typedef struct _ADAPTER_T       ADAPTER_T, *P_ADAPTER_T;
222
223 /* Type definition for MESSAGE HEADER structure */
224 typedef struct _MSG_HDR_T       MSG_HDR_T, *P_MSG_HDR_T;
225
226 /* Type definition for Pointer to OS Native Packet */
227 typedef void                    *P_NATIVE_PACKET;
228
229 /* Type definition for STA_RECORD_T structure to handle the connectivity and packet reception
230  * for a particular STA.
231  */
232 typedef struct _STA_RECORD_T    STA_RECORD_T, *P_STA_RECORD_T, **PP_STA_RECORD_T;
233
234 /* CMD_INFO_T is used by Glue Layer to send a cluster of Command(OID) information to
235  * the TX Path to reduce the parameters of a function call.
236  */
237 typedef struct _CMD_INFO_T      CMD_INFO_T, *P_CMD_INFO_T;
238
239 /* Following typedef should be removed later, because Glue Layer should not
240  * be aware of following data type.
241  */
242 typedef struct _SW_RFB_T        SW_RFB_T, *P_SW_RFB_T, **PP_SW_RFB_T;
243
244 typedef struct _MSDU_INFO_T     MSDU_INFO_T, *P_MSDU_INFO_T;
245
246 typedef struct _REG_ENTRY_T     REG_ENTRY_T, *P_REG_ENTRY_T;
247
248 /* IST handler definition */
249 typedef VOID (*IST_EVENT_FUNCTION)(P_ADAPTER_T);
250
251 /* Type definition for function pointer of timer handler */
252 typedef VOID (*PFN_TIMER_CALLBACK)(IN P_GLUE_INFO_T);
253
254
255 /*******************************************************************************
256 *                            P U B L I C   D A T A
257 ********************************************************************************
258 */
259
260 /*******************************************************************************
261 *                           P R I V A T E   D A T A
262 ********************************************************************************
263 */
264
265 /*******************************************************************************
266 *                                 M A C R O S
267 ********************************************************************************
268 */
269
270 /*******************************************************************************
271 *                  F U N C T I O N   D E C L A R A T I O N S
272 ********************************************************************************
273 */
274
275 /*******************************************************************************
276 *                              F U N C T I O N S
277 ********************************************************************************
278 */
279 #endif /* _TYPEDEF_H */
280
281