2b3c9895237955b1b50e55c56dda8bbe4fbfedba
[firefly-linux-kernel-4.4.55.git] / drivers / net / wireless / rockchip_wlan / mt5931_kk / drv_wlan / os / linux / include / gl_p2p_kal.h
1 /*
2 ** $Id: //Department/DaVinci/TRUNK/WiFi_P2P_Driver/os/linux/include/gl_p2p_kal.h#2 $
3 */
4
5 /*! \file   gl_p2p_kal.h
6     \brief  Declaration of KAL functions for Wi-Fi Direct support
7             - kal*() which is provided by GLUE Layer.
8
9     Any definitions in this file will be shared among GLUE Layer and internal Driver Stack.
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: gl_p2p_kal.h $
56 ** 
57 ** 08 24 2012 cp.wu
58 ** [WCXRP00001269] [MT6620 Wi-Fi][Driver] cfg80211 porting merge back to DaVinci
59 ** .
60  *
61  * 07 17 2012 yuche.tsai
62  * NULL
63  * Compile no error before trial run.
64  *
65  * 10 18 2011 yuche.tsai
66  * [WCXRP00001045] [WiFi Direct][Driver] Check 2.1 branch.
67  * New 2.1 branch
68
69  *
70  * 08 15 2011 yuche.tsai
71  * [WCXRP00000919] [Volunteer Patch][WiFi Direct][Driver] Invitation New Feature.
72  * Add group BSSID in invitation request indication.
73  * The BSSID is used for APP to decide the configure method.
74  *
75  * 08 09 2011 yuche.tsai
76  * [WCXRP00000919] [Volunteer Patch][WiFi Direct][Driver] Invitation New Feature.
77  * Invitation Feature add on.
78  *
79  * 03 19 2011 terry.wu
80  * [WCXRP00000577] [MT6620 Wi-Fi][Driver][FW] Create V2.0 branch for firmware and driver
81  * create V2.0 p2p driver release based on label "MT6620_WIFI_P2P_DRIVER_V2_0_2100_0319_2011" from main trunk.
82  *
83  * 03 07 2011 wh.su
84  * [WCXRP00000506] [MT6620 Wi-Fi][Driver][FW] Add Security check related code
85  * rename the define to anti_pviracy.
86  *
87  * 03 05 2011 wh.su
88  * [WCXRP00000506] [MT6620 Wi-Fi][Driver][FW] Add Security check related code
89  * add the code to get the check rsponse and indicate to app.
90  *
91  * 03 02 2011 wh.su
92  * [WCXRP00000506] [MT6620 Wi-Fi][Driver][FW] Add Security check related code
93  * Add Security check related code.
94  *
95  * 12 22 2010 cp.wu
96  * [WCXRP00000283] [MT6620 Wi-Fi][Driver][Wi-Fi Direct] Implementation of interface for supporting Wi-Fi Direct Service Discovery
97  * 1. header file restructure for more clear module isolation
98  * 2. add function interface definition for implementing Service Discovery callbacks
99  *
100 */
101
102 #ifndef _GL_P2P_KAL_H
103 #define _GL_P2P_KAL_H
104
105
106 /*******************************************************************************
107 *                         C O M P I L E R   F L A G S
108 ********************************************************************************
109 */
110
111 /*******************************************************************************
112 *                    E X T E R N A L   R E F E R E N C E S
113 ********************************************************************************
114 */
115 #include "config.h"
116 #include "gl_typedef.h"
117 #include "gl_os.h"
118 #include "wlan_lib.h"
119 #include "wlan_oid.h"
120 #include "wlan_p2p.h"
121 #include "gl_kal.h"
122 #include "gl_wext_priv.h"
123 #include "gl_p2p_ioctl.h"
124 #include "nic/p2p.h"
125
126
127 #if DBG
128     extern int allocatedMemSize;
129 #endif
130
131 /*******************************************************************************
132 *                              C O N S T A N T S
133 ********************************************************************************
134 */
135
136 /*******************************************************************************
137 *                                 M A C R O S
138 ********************************************************************************
139 */
140
141 /*******************************************************************************
142 *                             D A T A   T Y P E S
143 ********************************************************************************
144 */
145
146 /*******************************************************************************
147 *                            P U B L I C   D A T A
148 ********************************************************************************
149 */
150
151 /*******************************************************************************
152 *                           P R I V A T E   D A T A
153 ********************************************************************************
154 */
155
156 /*******************************************************************************
157 *                  F U N C T I O N   D E C L A R A T I O N S
158 ********************************************************************************
159 */
160
161 /* Service Discovery */
162 VOID
163 kalP2PIndicateSDRequest(
164     IN P_GLUE_INFO_T        prGlueInfo,
165     IN PARAM_MAC_ADDRESS    rPeerAddr,
166     IN UINT_8 ucSeqNum
167     );
168
169 void
170 kalP2PIndicateSDResponse(
171     IN P_GLUE_INFO_T        prGlueInfo,
172     IN PARAM_MAC_ADDRESS    rPeerAddr,
173     IN UINT_8 ucSeqNum
174     );
175
176 VOID
177 kalP2PIndicateTXDone(
178     IN P_GLUE_INFO_T        prGlueInfo,
179     IN UINT_8               ucSeqNum,
180     IN UINT_8               ucStatus
181     );
182
183 /*----------------------------------------------------------------------------*/
184 /* Wi-Fi Direct handling                                                      */
185 /*----------------------------------------------------------------------------*/
186 ENUM_PARAM_MEDIA_STATE_T
187 kalP2PGetState (
188     IN P_GLUE_INFO_T        prGlueInfo
189     );
190
191 VOID
192 kalP2PSetState (
193     IN P_GLUE_INFO_T            prGlueInfo,
194     IN ENUM_PARAM_MEDIA_STATE_T eState,
195     IN PARAM_MAC_ADDRESS        rPeerAddr,
196     IN UINT_8                   ucRole
197     );
198
199 VOID
200 kalP2PUpdateAssocInfo(
201     IN P_GLUE_INFO_T    prGlueInfo,
202     IN PUINT_8          pucFrameBody,
203     IN UINT_32          u4FrameBodyLen,
204     IN BOOLEAN          fgReassocRequest
205     );
206
207 UINT_32
208 kalP2PGetFreqInKHz(
209     IN P_GLUE_INFO_T prGlueInfo
210     );
211
212 UINT_8
213 kalP2PGetRole(
214     IN P_GLUE_INFO_T    prGlueInfo
215     );
216
217 VOID
218 kalP2PSetRole(
219     IN P_GLUE_INFO_T    prGlueInfo,
220     IN UINT_8           ucResult,
221     IN PUINT_8          pucSSID,
222     IN UINT_8           ucSSIDLen,
223     IN UINT_8           ucRole
224     );
225
226 VOID
227 kalP2PSetCipher(
228     IN P_GLUE_INFO_T    prGlueInfo,
229     IN UINT_32          u4Cipher
230     );
231
232 BOOLEAN
233 kalP2PGetCipher(
234     IN P_GLUE_INFO_T    prGlueInfo
235     );
236
237 BOOLEAN
238 kalP2PGetTkipCipher(
239     IN P_GLUE_INFO_T    prGlueInfo
240     );
241
242
243 BOOLEAN
244 kalP2PGetCcmpCipher(
245     IN P_GLUE_INFO_T    prGlueInfo
246     );
247
248
249 VOID
250 kalP2PSetWscMode (
251     IN P_GLUE_INFO_T    prGlueInfo,
252     IN UINT_8           ucWscMode
253     );
254
255 UINT_8
256 kalP2PGetWscMode(
257     IN P_GLUE_INFO_T    prGlueInfo
258     );
259
260 UINT_16
261 kalP2PCalWSC_IELen(
262     IN P_GLUE_INFO_T    prGlueInfo,
263     IN UINT_8           ucType
264     );
265
266 VOID
267 kalP2PGenWSC_IE(
268     IN P_GLUE_INFO_T    prGlueInfo,
269     IN UINT_8           ucType,
270     IN PUINT_8          pucBuffer
271     );
272
273
274 VOID
275 kalP2PUpdateWSC_IE(
276     IN P_GLUE_INFO_T prGlueInfo,
277     IN UINT_8 ucType,
278     IN PUINT_8 pucBuffer,
279     IN UINT_16 u2BufferLength
280     );
281
282
283
284 BOOLEAN
285 kalP2PIndicateFound(
286     IN P_GLUE_INFO_T    prGlueInfo
287     );
288
289 VOID
290 kalP2PIndicateConnReq(
291     IN P_GLUE_INFO_T        prGlueInfo,
292     IN PUINT_8              pucDevName,
293     IN INT_32               u4NameLength,
294     IN PARAM_MAC_ADDRESS    rPeerAddr,
295     IN UINT_8               ucDevType, /* 0: P2P Device / 1: GC / 2: GO */
296     IN INT_32               i4ConfigMethod,
297     IN INT_32               i4ActiveConfigMethod
298     );
299
300 VOID
301 kalP2PInvitationStatus (
302     IN P_GLUE_INFO_T prGlueInfo,
303     IN UINT_32       u4InvStatus
304     );
305
306 VOID
307 kalP2PInvitationIndication(
308         IN P_GLUE_INFO_T prGlueInfo,
309         IN P_P2P_DEVICE_DESC_T prP2pDevDesc,
310         IN PUINT_8 pucSsid,
311         IN UINT_8 ucSsidLen,
312         IN UINT_8 ucOperatingChnl,
313         IN UINT_8 ucInvitationType,
314         IN PUINT_8 pucGroupBssid
315         );
316
317
318 struct net_device*
319 kalP2PGetDevHdlr(
320     P_GLUE_INFO_T prGlueInfo
321     );
322
323 VOID
324 kalGetChnlList(
325     IN P_GLUE_INFO_T        prGlueInfo,
326     IN ENUM_BAND_T          eSpecificBand,
327     IN UINT_8               ucMaxChannelNum,
328     IN PUINT_8              pucNumOfChannel,
329     IN P_RF_CHANNEL_INFO_T  paucChannelList
330     );
331
332 #if CFG_SUPPORT_ANTI_PIRACY
333 VOID
334 kalP2PIndicateSecCheckRsp(
335     IN P_GLUE_INFO_T prGlueInfo,
336     IN PUINT_8       pucRsp,
337     IN UINT_16       u2RspLen
338     );
339 #endif
340
341 /*******************************************************************************
342 *                              F U N C T I O N S
343 ********************************************************************************
344 */
345
346 VOID
347 kalP2PIndicateChannelReady(
348     IN P_GLUE_INFO_T prGlueInfo,
349     IN UINT_64 u8SeqNum,
350     IN UINT_32 u4ChannelNum,
351     IN ENUM_BAND_T eBand,
352     IN ENUM_CHNL_EXT_T eSco,
353     IN UINT_32 u4Duration
354     );
355
356 VOID
357 kalP2PIndicateScanDone(
358     IN P_GLUE_INFO_T prGlueInfo,
359     IN BOOLEAN fgIsAbort
360     );
361
362 VOID
363 kalP2PIndicateBssInfo(
364     IN P_GLUE_INFO_T prGlueInfo,
365     IN PUINT_8 pucFrameBuf,
366     IN UINT_32 u4BufLen,
367     IN P_RF_CHANNEL_INFO_T prChannelInfo,
368     IN INT_32 i4SignalStrength
369     );
370
371 VOID
372 kalP2PIndicateRxMgmtFrame(
373         IN P_GLUE_INFO_T prGlueInfo,
374         IN P_SW_RFB_T prSwRfb
375         );
376
377 VOID
378 kalP2PIndicateMgmtTxStatus(
379         IN P_GLUE_INFO_T prGlueInfo,
380         IN UINT_64 u8Cookie,
381         IN BOOLEAN fgIsAck,
382         IN PUINT_8 pucFrameBuf,
383         IN UINT_32 u4FrameLen
384         );
385
386 VOID
387 kalP2PIndicateChannelExpired(
388     IN P_GLUE_INFO_T prGlueInfo,
389     IN P_P2P_CHNL_REQ_INFO_T prChnlReqInfo
390     );
391
392 VOID
393 kalP2PGCIndicateConnectionStatus(
394     IN P_GLUE_INFO_T prGlueInfo,
395     IN P_P2P_CONNECTION_REQ_INFO_T prP2pConnInfo,
396     IN PUINT_8 pucRxIEBuf,
397     IN UINT_16 u2RxIELen,
398     IN UINT_16 u2StatusReason
399     );
400
401
402 VOID
403 kalP2PGOStationUpdate(
404     IN P_GLUE_INFO_T prGlueInfo,
405     IN P_STA_RECORD_T prCliStaRec,
406     IN BOOLEAN fgIsNew
407     );
408
409 BOOLEAN
410 kalP2PSetBlackList (
411     IN P_GLUE_INFO_T    prGlueInfo,
412     IN PARAM_MAC_ADDRESS rbssid,
413     IN BOOLEAN fgIsblock
414     );
415
416 BOOLEAN
417 kalP2PCmpBlackList (
418     IN P_GLUE_INFO_T    prGlueInfo,
419     IN PARAM_MAC_ADDRESS rbssid
420     );
421
422 VOID
423 kalP2PSetMaxClients (
424     IN P_GLUE_INFO_T    prGlueInfo,
425     IN UINT_32 u4MaxClient
426     );
427
428 BOOLEAN
429 kalP2PMaxClients (
430     IN P_GLUE_INFO_T    prGlueInfo,
431     IN UINT_32 u4NumClient
432     );
433
434 #endif /* _GL_P2P_KAL_H */
435