45c6bd6c628106af9689cd87b4763651b8ac1ca0
[firefly-linux-kernel-4.4.55.git] / drivers / net / wireless / rockchip_wlan / mt5931_kk / drv_wlan / include / typedef.h
1 /*
2 ** $Id: //Department/DaVinci/BRANCHES/MT662X_593X_WIFI_DRIVER_V2_3/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  * 07 18 2011 chinghwa.yu
58  * [WCXRP00000063] Update BCM CoEx design and settings[WCXRP00000612] [MT6620 Wi-Fi] [FW] CSD update SWRDD algorithm
59  * Add CMD/Event for RDD and BWCS.
60  *
61  * 12 30 2010 cp.wu
62  * [WCXRP00000327] [MT6620 Wi-Fi][Driver] Improve HEC WHQA 6972 workaround coverage in driver side
63  * host driver not to set FW-own when there is still pending interrupts
64  *
65  * 09 03 2010 kevin.huang
66  * NULL
67  * Refine #include sequence and solve recursive/nested #include issue
68  *
69  * 08 16 2010 kevin.huang
70  * NULL
71  * Refine AAA functions
72  *
73  * 07 19 2010 jeffrey.chang
74  * 
75  * Linux port modification
76  *
77  * 07 08 2010 cp.wu
78  * 
79  * [WPD00003833] [MT6620 and MT5931] Driver migration - move to new repository.
80  *
81  * 06 23 2010 cp.wu
82  * [WPD00003833][MT6620 and MT5931] Driver migration 
83  * integrate .
84  *
85  * 06 18 2010 cm.chang
86  * [WPD00003841][LITE Driver] Migrate RLM/CNM to host driver 
87  * Provide cnmMgtPktAlloc() and alloc/free function of msg/buf
88  *
89  * 06 11 2010 cp.wu
90  * [WPD00003833][MT6620 and MT5931] Driver migration
91  * 1) migrate assoc.c.
92  * 2) add ucTxSeqNum for tracking frames which needs TX-DONE awareness
93  * 3) add configuration options for CNM_MEM and RSN modules
94  * 4) add data path for management frames
95  * 5) eliminate rPacketInfo of MSDU_INFO_T
96  *
97  * 06 09 2010 cp.wu
98  * [WPD00003833][MT6620 and MT5931] Driver migration
99  * add necessary changes to driver data paths.
100  *
101  * 06 09 2010 cp.wu
102  * [WPD00003833][MT6620 and MT5931] Driver migration
103  * add definitions for module migration.
104  *
105  * 06 07 2010 cp.wu
106  * [WPD00003833][MT6620 and MT5931] Driver migration
107  * add aa_fsm.h, ais_fsm.h, bss.h, mib.h and scan.h.
108  *
109  * 06 06 2010 kevin.huang
110  * [WPD00003832][MT6620 5931] Create driver base
111  * [MT6620 5931] Create driver base
112  *
113  * 06 03 2010 cp.wu
114  * [WPD00001943]Create WiFi test driver framework on WinXP
115  * move timer callback to glue layer.
116  *
117  * 05 31 2010 cp.wu
118  * [WPD00003831][MT6620 Wi-Fi] Add framework for Wi-Fi Direct support
119  * add cfg80211 interface, which is to replace WE, for further extension
120  *
121  * 03 24 2010 jeffrey.chang
122  * [WPD00003826]Initial import for Linux port
123  * initial import for Linux port
124  *
125  * 02 24 2010 cp.wu
126  * [WPD00001943]Create WiFi test driver framework on WinXP
127  * add Ethernet destination address information in packet info for TX
128  *
129  * 02 23 2010 cp.wu
130  * [WPD00001943]Create WiFi test driver framework on WinXP
131  * add new API: wlanProcessQueuedPackets()
132 **  \main\maintrunk.MT6620WiFiDriver_Prj\6 2009-03-23 21:41:37 GMT mtk01461
133 **  Update PACKET_INFO_INIT for TX Path
134 **  \main\maintrunk.MT6620WiFiDriver_Prj\5 2009-03-23 00:30:17 GMT mtk01461
135 **  Add parameter in PACKET_INFO_T for HIF Loopback
136 **  \main\maintrunk.MT6620WiFiDriver_Prj\4 2009-03-18 20:25:22 GMT mtk01461
137 **  Fix LINT warning
138 **  \main\maintrunk.MT6620WiFiDriver_Prj\3 2009-03-16 09:08:28 GMT mtk01461
139 **  Update TX PATH API
140 **  \main\maintrunk.MT6620WiFiDriver_Prj\2 2009-03-10 20:11:54 GMT mtk01426
141 **  Init for develop
142 **
143 */
144
145 #ifndef _TYPEDEF_H
146 #define _TYPEDEF_H
147
148 /*******************************************************************************
149 *                         C O M P I L E R   F L A G S
150 ********************************************************************************
151 */
152
153 /*******************************************************************************
154 *                    E X T E R N A L   R E F E R E N C E S
155 ********************************************************************************
156 */
157
158 /*******************************************************************************
159 *                              C O N S T A N T S
160 ********************************************************************************
161 */
162
163 /* ieee80211.h of linux has duplicated definitions */
164 #if defined(WLAN_STATUS_SUCCESS)
165 #undef WLAN_STATUS_SUCCESS
166 #endif
167
168 #define WLAN_STATUS_SUCCESS                     ((WLAN_STATUS) 0x00000000L)
169 #define WLAN_STATUS_PENDING                     ((WLAN_STATUS) 0x00000103L)
170 #define WLAN_STATUS_NOT_ACCEPTED                ((WLAN_STATUS) 0x00010003L)
171
172 #define WLAN_STATUS_MEDIA_CONNECT               ((WLAN_STATUS) 0x4001000BL)
173 #define WLAN_STATUS_MEDIA_DISCONNECT            ((WLAN_STATUS) 0x4001000CL)
174 #define WLAN_STATUS_MEDIA_SPECIFIC_INDICATION   ((WLAN_STATUS) 0x40010012L)
175
176 #define WLAN_STATUS_SCAN_COMPLETE               ((WLAN_STATUS) 0x60010001L)
177 #define WLAN_STATUS_MSDU_OK                     ((WLAN_STATUS) 0x60010002L)
178
179 /* TODO(Kevin): double check if 0x60010001 & 0x60010002 is proprietary */
180 #define WLAN_STATUS_ROAM_OUT_FIND_BEST          ((WLAN_STATUS) 0x60010101L)
181 #define WLAN_STATUS_ROAM_DISCOVERY              ((WLAN_STATUS) 0x60010102L)
182
183 #define WLAN_STATUS_FAILURE                     ((WLAN_STATUS) 0xC0000001L)
184 #define WLAN_STATUS_RESOURCES                   ((WLAN_STATUS) 0xC000009AL)
185 #define WLAN_STATUS_NOT_SUPPORTED               ((WLAN_STATUS) 0xC00000BBL)
186
187 #define WLAN_STATUS_MULTICAST_FULL              ((WLAN_STATUS) 0xC0010009L)
188 #define WLAN_STATUS_INVALID_PACKET              ((WLAN_STATUS) 0xC001000FL)
189 #define WLAN_STATUS_ADAPTER_NOT_READY           ((WLAN_STATUS) 0xC0010011L)
190 #define WLAN_STATUS_NOT_INDICATING              ((WLAN_STATUS) 0xC0010013L)
191 #define WLAN_STATUS_INVALID_LENGTH              ((WLAN_STATUS) 0xC0010014L)
192 #define WLAN_STATUS_INVALID_DATA                ((WLAN_STATUS) 0xC0010015L)
193 #define WLAN_STATUS_BUFFER_TOO_SHORT            ((WLAN_STATUS) 0xC0010016L)
194
195 #define WLAN_STATUS_BWCS_UPDATE            ((WLAN_STATUS) 0xC0010017L)
196
197 #define WLAN_STATUS_CONNECT_INDICATION          ((WLAN_STATUS) 0xC0010018L)
198 /* NIC status flags */
199 #define ADAPTER_FLAG_HW_ERR                     0x00400000
200
201 /* Type Length */
202 #define TL_IPV4     0x0008
203 #define TL_IPV6     0xDD86
204
205
206 /*******************************************************************************
207 *                             D A T A   T Y P E S
208 ********************************************************************************
209 */
210 /* Type definition for GLUE_INFO structure */
211 typedef struct _GLUE_INFO_T     GLUE_INFO_T, *P_GLUE_INFO_T;
212
213 /* Type definition for WLAN STATUS */
214 typedef UINT_32                 WLAN_STATUS, *P_WLAN_STATUS;
215
216 /* Type definition for ADAPTER structure */
217 typedef struct _ADAPTER_T       ADAPTER_T, *P_ADAPTER_T;
218
219 /* Type definition for MESSAGE HEADER structure */
220 typedef struct _MSG_HDR_T       MSG_HDR_T, *P_MSG_HDR_T;
221
222 /* Type definition for Pointer to OS Native Packet */
223 typedef void                    *P_NATIVE_PACKET;
224
225 /* Type definition for STA_RECORD_T structure to handle the connectivity and packet reception
226  * for a particular STA.
227  */
228 typedef struct _STA_RECORD_T    STA_RECORD_T, *P_STA_RECORD_T, **PP_STA_RECORD_T;
229
230 /* CMD_INFO_T is used by Glue Layer to send a cluster of Command(OID) information to
231  * the TX Path to reduce the parameters of a function call.
232  */
233 typedef struct _CMD_INFO_T      CMD_INFO_T, *P_CMD_INFO_T;
234
235 /* Following typedef should be removed later, because Glue Layer should not
236  * be aware of following data type.
237  */
238 typedef struct _SW_RFB_T        SW_RFB_T, *P_SW_RFB_T, **PP_SW_RFB_T;
239
240 typedef struct _MSDU_INFO_T     MSDU_INFO_T, *P_MSDU_INFO_T;
241
242 typedef struct _REG_ENTRY_T     REG_ENTRY_T, *P_REG_ENTRY_T;
243
244 /* IST handler definition */
245 typedef VOID (*IST_EVENT_FUNCTION)(P_ADAPTER_T);
246
247 /* Type definition for function pointer of timer handler */
248 typedef VOID (*PFN_TIMER_CALLBACK)(IN P_GLUE_INFO_T);
249
250
251 /*******************************************************************************
252 *                            P U B L I C   D A T A
253 ********************************************************************************
254 */
255
256 /*******************************************************************************
257 *                           P R I V A T E   D A T A
258 ********************************************************************************
259 */
260
261 /*******************************************************************************
262 *                                 M A C R O S
263 ********************************************************************************
264 */
265
266 /*******************************************************************************
267 *                  F U N C T I O N   D E C L A R A T I O N S
268 ********************************************************************************
269 */
270
271 /*******************************************************************************
272 *                              F U N C T I O N S
273 ********************************************************************************
274 */
275 #endif /* _TYPEDEF_H */
276
277