0
|
1 |
/*
|
|
2 |
* TIWha.h
|
|
3 |
*
|
|
4 |
* Copyright(c) 1998 - 2010 Texas Instruments. All rights reserved.
|
|
5 |
* All rights reserved.
|
|
6 |
*
|
|
7 |
* This program and the accompanying materials are made available under the
|
|
8 |
* terms of the Eclipse Public License v1.0 or BSD License which accompanies
|
|
9 |
* this distribution. The Eclipse Public License is available at
|
|
10 |
* http://www.eclipse.org/legal/epl-v10.html and the BSD License is as below.
|
|
11 |
*
|
|
12 |
* Redistribution and use in source and binary forms, with or without
|
|
13 |
* modification, are permitted provided that the following conditions
|
|
14 |
* are met:
|
|
15 |
*
|
|
16 |
* * Redistributions of source code must retain the above copyright
|
|
17 |
* notice, this list of conditions and the following disclaimer.
|
|
18 |
* * Redistributions in binary form must reproduce the above copyright
|
|
19 |
* notice, this list of conditions and the following disclaimer in
|
|
20 |
* the documentation and/or other materials provided with the
|
|
21 |
* distribution.
|
|
22 |
* * Neither the name Texas Instruments nor the names of its
|
|
23 |
* contributors may be used to endorse or promote products derived
|
|
24 |
* from this software without specific prior written permission.
|
|
25 |
*
|
|
26 |
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
|
27 |
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
|
28 |
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
|
29 |
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
|
30 |
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
|
31 |
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
|
32 |
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
|
33 |
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
|
34 |
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
35 |
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
|
36 |
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
37 |
*/
|
|
38 |
|
|
39 |
|
|
40 |
|
|
41 |
/** \file TIWha.h
|
|
42 |
* \brief Interface between the sandbox to the BSP of Omap2430
|
|
43 |
*
|
|
44 |
* \see
|
|
45 |
*/
|
|
46 |
|
|
47 |
|
|
48 |
#ifndef TIWha_H
|
|
49 |
#define TIWha_H
|
|
50 |
|
|
51 |
/* Includes that are rquired for using MWlanDfcClient */
|
|
52 |
#include <kernel/kernel.h>
|
|
53 |
#include <wlandfc.h>
|
|
54 |
#include <wlandfcclient.h>
|
|
55 |
#include <wlanpddiface.h>
|
|
56 |
|
|
57 |
/* Other driver includes*/
|
|
58 |
#include "TIWhaDef.h" /*struct and definitions neded for the TI WLAN driver*/
|
|
59 |
#include "TWDriver.h" /*interface with the HW abstraction of the WLAN driver*/
|
|
60 |
#include "TIWhaUtils.h"
|
|
61 |
#include "TIWlanHpaCB.h"
|
|
62 |
|
|
63 |
extern void Assert( const TInt8*, TInt, TBool );
|
|
64 |
|
|
65 |
|
|
66 |
/*
|
|
67 |
* This is a class for Failure Indication DFC implementation
|
|
68 |
*/
|
|
69 |
class TIFailureDfcClient : public MWlanDfcClient
|
|
70 |
{
|
|
71 |
public:
|
|
72 |
|
|
73 |
/**
|
|
74 |
* \fn TIFailureDfcClient
|
|
75 |
* \brief Constructor
|
|
76 |
*
|
|
77 |
* Create a MWlanDfc object.
|
|
78 |
*
|
|
79 |
* \note
|
|
80 |
* \param aOsa
|
|
81 |
* return handle to TIFailureDfcClient class.
|
|
82 |
* \sa
|
|
83 |
*/
|
|
84 |
TIFailureDfcClient(MWlanOsa& aOsa);
|
|
85 |
|
|
86 |
/**
|
|
87 |
* \fn OnDfc
|
|
88 |
* \brief Call TIWhaAdaptCB::FailureIndicationDFC in order to handle the failure indication
|
|
89 |
* from a different context
|
|
90 |
*
|
|
91 |
* \note
|
|
92 |
* \param aCtx - Relevant Context
|
|
93 |
* return void
|
|
94 |
* \sa
|
|
95 |
*/
|
|
96 |
virtual void OnDfc( TInt aCtx );
|
|
97 |
|
|
98 |
/* A pointer to the relevant wlan DFC object */
|
|
99 |
MWlanDfc* pFailureDfc;
|
|
100 |
};
|
|
101 |
|
|
102 |
|
|
103 |
|
|
104 |
/*
|
|
105 |
* This is a class for Sync bus connection DFC implementation
|
|
106 |
*/
|
|
107 |
class TIConnectDfcClient : public MWlanDfcClient
|
|
108 |
{
|
|
109 |
public:
|
|
110 |
|
|
111 |
/**
|
|
112 |
* \fn TIConnectDfcClient
|
|
113 |
* \brief Constructor
|
|
114 |
*
|
|
115 |
* Create a MWlanDfc object.
|
|
116 |
*
|
|
117 |
* \note
|
|
118 |
* \param aOsa
|
|
119 |
* return handle to TIConnectDfcClient class.
|
|
120 |
* \sa
|
|
121 |
*/
|
|
122 |
TIConnectDfcClient(MWlanOsa& aOsa);
|
|
123 |
|
|
124 |
|
|
125 |
/**
|
|
126 |
* \fn OnDfc
|
|
127 |
* \brief Call TIWhaAdaptCB::ConnectBus() in order to finish the bus connection procees
|
|
128 |
*
|
|
129 |
* \note
|
|
130 |
* \param aCtx - Relevant Context
|
|
131 |
* return void
|
|
132 |
* \sa
|
|
133 |
*/
|
|
134 |
virtual void OnDfc( TInt aCtx );
|
|
135 |
|
|
136 |
/* A pointer to the relevant wlan DFC object */
|
|
137 |
MWlanDfc* pConnectDfc;
|
|
138 |
};
|
|
139 |
|
|
140 |
|
|
141 |
|
|
142 |
/**
|
|
143 |
* This is a class for TI WLAN driver implementation
|
|
144 |
*/
|
|
145 |
class TIWha : public WHA::Wha , public DPhysicalDevice , public MWlanPddIface
|
|
146 |
{
|
|
147 |
public:
|
|
148 |
|
|
149 |
/**
|
|
150 |
* \fn TIWha
|
|
151 |
* \brief Constructor
|
|
152 |
*
|
|
153 |
* TIWha constructor
|
|
154 |
*
|
|
155 |
* \note
|
|
156 |
* \param aOsa
|
|
157 |
* \param aHpa
|
|
158 |
* \param aSpia
|
|
159 |
* return handle to TIWha class.
|
|
160 |
* \sa
|
|
161 |
*/
|
|
162 |
TIWha(MWlanOsa& aOsa, WlanHpa& aHpa, WlanSpia& aSpia);
|
|
163 |
|
|
164 |
|
|
165 |
/**
|
|
166 |
* \fn TIWha
|
|
167 |
* \brief Constructor
|
|
168 |
*
|
|
169 |
* TIWha constructor
|
|
170 |
*
|
|
171 |
* \note
|
|
172 |
*
|
|
173 |
* return handle to TIWha class.
|
|
174 |
* \sa
|
|
175 |
*/
|
|
176 |
TIWha();
|
|
177 |
|
|
178 |
/**
|
|
179 |
* \fn ~TIWha
|
|
180 |
* \brief destructor
|
|
181 |
*
|
|
182 |
* Destroy TIWha object
|
|
183 |
*
|
|
184 |
* \note
|
|
185 |
* \param
|
|
186 |
* \return
|
|
187 |
* \sa
|
|
188 |
*/
|
|
189 |
virtual ~TIWha();
|
|
190 |
|
|
191 |
|
|
192 |
|
|
193 |
|
|
194 |
/* Call constructor */
|
|
195 |
static Wha* Create( MWlanOsa& aOsa,
|
|
196 |
WlanHpa& aHpa,
|
|
197 |
const SHwBusAccessLayer& aTransPortLayer );
|
|
198 |
|
|
199 |
/* Call destructor */
|
|
200 |
static void Destroy( Wha* aWha );
|
|
201 |
|
|
202 |
|
|
203 |
/**
|
|
204 |
* \fn WhaCb
|
|
205 |
* \brief attach call back to LDD form the WLAN driver
|
|
206 |
*
|
|
207 |
* \note in case error indication was received - return Null. That way we avoid calls to UMAC.
|
|
208 |
* \param
|
|
209 |
* \return pointer to the Call Back function in the WHA (LDD)
|
|
210 |
* \sa
|
|
211 |
*/
|
|
212 |
WHA::MWhaCb* WhaCb() {return iWhaCb;}
|
|
213 |
|
|
214 |
|
|
215 |
/**
|
|
216 |
* \fn FailureIndicationCb
|
|
217 |
* \brief Generic Error Indicatin function to the UMAC
|
|
218 |
*
|
|
219 |
* sends the UMAC Error indications as agreed.
|
|
220 |
*
|
|
221 |
* \note
|
|
222 |
* \param EFailureEvent - the kind of error
|
|
223 |
* \return
|
|
224 |
* \sa
|
|
225 |
*/
|
|
226 |
void FailureIndicationCb ( EFailureEvent failureEvent);
|
|
227 |
|
|
228 |
|
|
229 |
/**
|
|
230 |
* \fn ConnectionTimeOut
|
|
231 |
* \brief change rate management parameters after the connection phase
|
|
232 |
*
|
|
233 |
* \note
|
|
234 |
* \return
|
|
235 |
* \sa
|
|
236 |
*/
|
|
237 |
void ConnectionTimeOut ();
|
|
238 |
|
|
239 |
/**
|
|
240 |
* \fn SetTxFailLowThreshold
|
|
241 |
* \brief Set new Tx Fail rate to FW
|
|
242 |
*
|
|
243 |
* \note
|
|
244 |
* \return
|
|
245 |
* \sa
|
|
246 |
*/
|
|
247 |
void SetTxFailLowThreshold( TI_UINT8 uTxFailLowTh);
|
|
248 |
|
|
249 |
/**
|
|
250 |
* \fn InitializeAfterTimer
|
|
251 |
* \brief start second part of initialization after timer expired
|
|
252 |
*
|
|
253 |
* \note
|
|
254 |
* \param
|
|
255 |
* \return
|
|
256 |
* \sa
|
|
257 |
*/
|
|
258 |
void InitializeAfterTimer();
|
|
259 |
|
|
260 |
/**
|
|
261 |
* \fn RxMemFailTimerCb
|
|
262 |
* \brief call RxXfer in case memory allocation failed, so we will try again
|
|
263 |
*
|
|
264 |
* \note
|
|
265 |
* \param
|
|
266 |
* \return
|
|
267 |
* \sa
|
|
268 |
*/
|
|
269 |
void RxMemFailTimerCb();
|
|
270 |
|
|
271 |
/*******************************************************************************
|
|
272 |
* *
|
|
273 |
* WLAN Symbian HAL API command methods below. *
|
|
274 |
* *
|
|
275 |
*******************************************************************************/
|
|
276 |
|
|
277 |
/**
|
|
278 |
* \fn Initialize
|
|
279 |
* \brief Downloads the firmware code to the WLAN device
|
|
280 |
* (reference wlanwha.h)
|
|
281 |
*
|
|
282 |
* \note
|
|
283 |
* \param aData firmware data
|
|
284 |
* \param aLength length of the data in bytes
|
|
285 |
* \return
|
|
286 |
* \sa
|
|
287 |
*/
|
|
288 |
void Initialize(
|
|
289 |
const void* aData,
|
|
290 |
TUint32 aLength );
|
|
291 |
|
|
292 |
/**
|
|
293 |
* \fn Configure
|
|
294 |
* \brief Method configures the WLAN device after the WHA layer has send the EInitializeResponse event.
|
|
295 |
* (reference wlanwha.h)
|
|
296 |
*
|
|
297 |
* \note
|
|
298 |
* \param aData firmware data. The content is vendor specific.
|
|
299 |
* \param aWhaSettings output data that holds the capabilities
|
|
300 |
* \return
|
|
301 |
* \sa
|
|
302 |
*/
|
|
303 |
void Configure(
|
|
304 |
const WHA::SConfigureData&,
|
|
305 |
WHA::SSettings& aWhaSettings );
|
|
306 |
|
|
307 |
/**
|
|
308 |
* \fn Configure
|
|
309 |
* \brief Command will cause the WHA layer to release all OS resources and stop
|
|
310 |
* its operation. (reference wlanwha.h)
|
|
311 |
*
|
|
312 |
* \note
|
|
313 |
* \param aSynchronous should command be executed synchronously (ETrue) or not (EFalse)
|
|
314 |
* \return Command was executed synchronously and no command response event is sent
|
|
315 |
* \sa
|
|
316 |
*/
|
|
317 |
WHA::TStatus Release( TBool aSynchronous );
|
|
318 |
|
|
319 |
/**
|
|
320 |
* \fn Scan
|
|
321 |
* \brief When the WLAN device receives this command, it goes into a scanning mode.
|
|
322 |
* (reference wlanwha.h)
|
|
323 |
*
|
|
324 |
* \note
|
|
325 |
* \param aMaxTransmitRate specifies the transmission rate of the probe request in case of a active scan
|
|
326 |
* \param aBand selects the used frequency band.
|
|
327 |
* \param aNumOfChannels number of channels provided in the command
|
|
328 |
* \param aChannels specifies the scanned channels
|
|
329 |
* \param aScanType specifies the scan type:0 foreground scan, 1 background scan, 2 forced background scan
|
|
330 |
* \param aNumOfProbeRequests number of probe requests (per SSID): sent to one (1) channel, Zero (0) means that none is send,
|
|
331 |
* which means that a passive scan is to be done.
|
|
332 |
* \param aNumOfSSID number of SSID provided in the scan command (this is zero (0) in broadcast scan)
|
|
333 |
* \param aSsid Array of the SSID to be probed in scan
|
|
334 |
* \return
|
|
335 |
* \sa
|
|
336 |
*/
|
|
337 |
void Scan( WHA::TRate aMaxTransmitRate,
|
|
338 |
WHA::TBand aBand,
|
|
339 |
TUint8 aNumOfChannels,
|
|
340 |
const WHA::SChannels* aChannels,
|
|
341 |
WHA::TScanType aScanType,
|
|
342 |
TUint8 aNumOfProbeRequests,
|
|
343 |
TBool aSplitScan,
|
|
344 |
TUint8 aNumOfSSID,
|
|
345 |
const WHA::SSSID* aSsid);
|
|
346 |
|
|
347 |
/**
|
|
348 |
* \fn StopScan
|
|
349 |
* \brief This method stops a previously started scan process in the WLAN device.
|
|
350 |
* (reference wlanwha.h)
|
|
351 |
*
|
|
352 |
* \note
|
|
353 |
* \param
|
|
354 |
* \return
|
|
355 |
* \sa
|
|
356 |
*/
|
|
357 |
void StopScan();
|
|
358 |
|
|
359 |
/**
|
|
360 |
* \fn Join
|
|
361 |
* \brief The WLAN host driver uses this method to command the WLAN device to
|
|
362 |
* join a BSS or an IBSS or to start an IBSS.(reference wlanwha.h)
|
|
363 |
*
|
|
364 |
* \note
|
|
365 |
* \param aMode specifies the operation mode of the station: 0 for IBSS, 1 for BSS
|
|
366 |
* \param aBSSID specifies the BSSID of the BSS or IBSS to be joined or the IBSS to be started
|
|
367 |
* \param aSSID specifies the SSID of the IBSS to join or start
|
|
368 |
* \param aBand selects the used frequency band. Only 1 bit is used to select the band
|
|
369 |
* \param aChannel specifies the channel number to join.
|
|
370 |
* \param aBeaconInterval specifies the time between TBTTs in TUs
|
|
371 |
* \param aBasicRateSet defines the BSS basic rate set
|
|
372 |
* \param aAtimWindow ATIM window of IBSS
|
|
373 |
* \param aPreambleType Specifies the PLCP preamble type used: 0 for long preamble, 1 for short preamble
|
|
374 |
* \param aProbeForJoin specifies if a probe request should be send with the specified SSID when joining to the network.
|
|
375 |
* \return
|
|
376 |
* \sa
|
|
377 |
*/
|
|
378 |
void Join(
|
|
379 |
WHA::TOperationMode aMode,
|
|
380 |
const WHA::TMacAddress& aBSSID,
|
|
381 |
const WHA::SSSID& aSSID,
|
|
382 |
WHA::TBand aBand,
|
|
383 |
WHA::TChannelNumber aChannel,
|
|
384 |
TUint32 aBeaconInterval,
|
|
385 |
WHA::TRate aBasicRateSet,
|
|
386 |
TUint16 aAtimWindow,
|
|
387 |
WHA::TPreamble aPreambleType,
|
|
388 |
TBool aProbeForJoin );
|
|
389 |
|
|
390 |
/**
|
|
391 |
* \fn SetPsMode
|
|
392 |
* \brief The WLAN host driver uses this method to manipulate the WLAN devices
|
|
393 |
* 802.11 power management mode in infrastructure mode.(reference wlanwha.h)
|
|
394 |
*
|
|
395 |
* \note
|
|
396 |
* \param aPsMode desired 802.11 power management mode:0 - 802.11 power save disable, 1 - 802.11 power save enable
|
|
397 |
* \return
|
|
398 |
* \sa
|
|
399 |
*/
|
|
400 |
void SetPsMode( WHA::TPsMode aPsMode );
|
|
401 |
|
|
402 |
/**
|
|
403 |
* \fn SetBssParameters
|
|
404 |
* \brief The WLAN host driver uses this method to fix connection parameters
|
|
405 |
* after the initial connection setup (reference wlanwha.h)
|
|
406 |
*
|
|
407 |
* \note
|
|
408 |
* \param aDTIM specifies the DTIM interval in multiples of beacons
|
|
409 |
* \param aAID specifies the AID received during the association process
|
|
410 |
* \return
|
|
411 |
* \sa
|
|
412 |
*/
|
|
413 |
void SetBssParameters(
|
|
414 |
TUint8 aDTIM,
|
|
415 |
TUint16 aAID );
|
|
416 |
|
|
417 |
/**
|
|
418 |
* \fn Measure
|
|
419 |
* \brief This method starts radio measurements in the WLAN device.
|
|
420 |
* (reference wlanwha.h)
|
|
421 |
*
|
|
422 |
* \note
|
|
423 |
* \param aTxPowerLevel used transmission power level during the measurement process.
|
|
424 |
* \param aBand selects the used frequency band. Only 1 bit is used to select the band
|
|
425 |
* \param aChannel specifies the channel number.
|
|
426 |
* \param aActivationDelay number of TBTTs until interval specified by the aMeasurementOffset starts.
|
|
427 |
* \param aMeasurementOffset Time after the activation delay in TUs
|
|
428 |
* \param aNumberOfMeasurementTypes number of measurement types to activate at parallel
|
|
429 |
* \param aParameterSet specific measurement parameter set
|
|
430 |
* \return
|
|
431 |
* \sa
|
|
432 |
*/
|
|
433 |
void Measure(
|
|
434 |
WHA::TPowerLevel aTxPowerLevel,
|
|
435 |
WHA::TBand aBand,
|
|
436 |
WHA::TChannelNumber aChannel,
|
|
437 |
TUint8 aActivationDelay,
|
|
438 |
TUint8 aMeasurementOffset,
|
|
439 |
TUint8 aNumberOfMeasurementTypes,
|
|
440 |
const WHA::SParameterSet* aParameterSet );
|
|
441 |
|
|
442 |
/**
|
|
443 |
* \fn StopMeasure
|
|
444 |
* \brief This method stops all previously started measurement processes in the WLAN device.
|
|
445 |
* (reference wlanwha.h)
|
|
446 |
*
|
|
447 |
* \note
|
|
448 |
* \param
|
|
449 |
* \return
|
|
450 |
* \sa
|
|
451 |
*/
|
|
452 |
void StopMeasure();
|
|
453 |
|
|
454 |
/**
|
|
455 |
* \fn ReadMib
|
|
456 |
* \brief The WLAN host driver uses this method to read configuration
|
|
457 |
* information and statistics from the WLAN vendor specific solution.
|
|
458 |
* (reference wlanwha.h)
|
|
459 |
*
|
|
460 |
* \note
|
|
461 |
* \param aMib ID of the MIB to be accessed
|
|
462 |
* \return
|
|
463 |
* \sa
|
|
464 |
*/
|
|
465 |
void ReadMib( WHA::TMib aMib );
|
|
466 |
|
|
467 |
/**
|
|
468 |
* \fn WriteMib
|
|
469 |
* \brief The WLAN host driver uses this method to write configuration
|
|
470 |
* information to the WLAN vendor specific solution
|
|
471 |
* (reference wlanwha.h)
|
|
472 |
*
|
|
473 |
* \note
|
|
474 |
* \param aMib ID of the MIB to be written
|
|
475 |
* \param aLength length of the MIB
|
|
476 |
* \param aData pointer to the MIB data
|
|
477 |
* \param aMore more MIBS are written after this command (ETrue) or not (EFalse)
|
|
478 |
* \return ESuccess: Command was executed synchronously and no command response event is sent
|
|
479 |
* EPending: Command is executed asynchronously and corresponding command response event
|
|
480 |
* will be sent upon command completion
|
|
481 |
* \sa
|
|
482 |
*/
|
|
483 |
WHA::TStatus WriteMib(
|
|
484 |
WHA::TMib aMib,
|
|
485 |
TUint16 aLength,
|
|
486 |
const void* aData,
|
|
487 |
TBool aMore );
|
|
488 |
|
|
489 |
/**
|
|
490 |
* \fn AddKey
|
|
491 |
* \brief This method adds a new (or replaces an old) encryption key to WLAN device
|
|
492 |
* (reference wlanwha.h)
|
|
493 |
*
|
|
494 |
* \note
|
|
495 |
* \param aType type of the key to be added
|
|
496 |
* \param aKey pointer to buffer specifying the key material,
|
|
497 |
* \param aEntryIndex
|
|
498 |
* \return
|
|
499 |
* \sa
|
|
500 |
*/
|
|
501 |
void AddKey(
|
|
502 |
WHA::TKeyType aType,
|
|
503 |
const void* aKey,
|
|
504 |
TUint8 aEntryIndex );
|
|
505 |
|
|
506 |
/**
|
|
507 |
* \fn RemoveKey
|
|
508 |
* \brief This method removes encryption keys from active key set.
|
|
509 |
* (reference wlanwha.h)
|
|
510 |
*
|
|
511 |
* \note
|
|
512 |
* \param aEntryIndex index of the key to remove from the set, Valid range: 0-8
|
|
513 |
* \return
|
|
514 |
* \sa
|
|
515 |
*/
|
|
516 |
void RemoveKey( TUint8 aEntryIndex );
|
|
517 |
|
|
518 |
/**
|
|
519 |
* \fn ConfigureQueue
|
|
520 |
* \brief The WLAN host driver uses this method to configure QoS parameters of transmission queues
|
|
521 |
* (reference wlanwha.h)
|
|
522 |
*
|
|
523 |
* \note
|
|
524 |
* \param aQueueId ID for the queue
|
|
525 |
* \param aMaxLifeTime dot11MaxTransmitMsduLifetime to be used for the specified queue.
|
|
526 |
* \param aPsScheme PS scheme of the specified queue: 0 Regular PS, 1 U-APSD, 2 Legacy PSPOLL,3 S-APSD [optional]
|
|
527 |
* \param aSAPSDConfig
|
|
528 |
* \param aQueueId ID for the queue
|
|
529 |
* \param aAckPolicy ACK frame policy of the specified queue: 0 - normal, 1 - Tx no ACK [optional],2 - block ACK [optional]
|
|
530 |
* \return
|
|
531 |
* \sa
|
|
532 |
*/
|
|
533 |
void ConfigureQueue(
|
|
534 |
WHA::TQueueId aQueueId,
|
|
535 |
TUint32 aMaxLifeTime,
|
|
536 |
WHA::TPsScheme aPsScheme,
|
|
537 |
const WHA::SSAPSDConfig& aSAPSDConfig,
|
|
538 |
WHA::TAckPolicy aAckPolicy,
|
|
539 |
TUint16 aMediumTime );
|
|
540 |
|
|
541 |
/**
|
|
542 |
* \fn ConfigureAC
|
|
543 |
* \brief The WLAN host driver uses this method to configure EDCA Access Category parameters.
|
|
544 |
* (reference wlanwha.h)
|
|
545 |
*
|
|
546 |
* \note
|
|
547 |
* \param aCwMin CWmin (in slots) for the access class
|
|
548 |
* \param aCwMax CWmax (in slots) for the access class
|
|
549 |
* \param aAIFS AIFS value (in slots) for the access class
|
|
550 |
* \param aTxOplimit Tx Op Limit (in microseconds) for the access class
|
|
551 |
* \param aMaxReceiveLifeTime dot11MaxReceiveLifeTime to be used for the specified queue.
|
|
552 |
* \return
|
|
553 |
* \sa
|
|
554 |
*/
|
|
555 |
void ConfigureAC(
|
|
556 |
TUint16 aCwMin[Wha::KNumOfEdcaQueues],
|
|
557 |
TUint16 aCwMax[Wha::KNumOfEdcaQueues],
|
|
558 |
TUint8 aAIFS[Wha::KNumOfEdcaQueues],
|
|
559 |
TUint16 aTxOplimit[Wha::KNumOfEdcaQueues],
|
|
560 |
TUint16 aMaxReceiveLifeTime[Wha::KNumOfEdcaQueues] );
|
|
561 |
|
|
562 |
/**
|
|
563 |
* \fn SendPacket
|
|
564 |
* \brief The WLAN host driver uses this method to send packets across the interface.
|
|
565 |
* (reference wlanwha.h)
|
|
566 |
*
|
|
567 |
* \note
|
|
568 |
* \param aFrame pointer to the frame (MSDU) content
|
|
569 |
* \param aLength MSDU length.
|
|
570 |
* \param aQueueId transmit queue as defined in ConfigureQueue
|
|
571 |
* \param aTxRateClassId transmit rate class ID defined in txRatePolicy MIB.
|
|
572 |
* \param aMaxTransmitRate defines the highest transmission rate to be used
|
|
573 |
* \param aMore informs the WHA layer if an another packet is pending for transmission in the same context
|
|
574 |
* \param aPacketId packet identifier
|
|
575 |
* \param aPowerLevel transmission power level
|
|
576 |
* \param aExpiryTime the elapsed time in TUs
|
|
577 |
* \param aReserved reserved field
|
|
578 |
* \return ESuccess: Packet was accepted for delivery to WLAN device.
|
|
579 |
* ESuccessXfer: Packet and all the (possible) other packets queued inside the WHA layer were transferred to the WLAN device.
|
|
580 |
* EQueueFull: The designated transmit queue is full and the packet was not accepted for delivery to WLAN device.
|
|
581 |
* \sa
|
|
582 |
*/
|
|
583 |
WHA::TStatus SendPacket(
|
|
584 |
const void* aFrame,
|
|
585 |
TUint16 aLength,
|
|
586 |
WHA::TQueueId aQueueId,
|
|
587 |
TUint8 aTxRateClassId,
|
|
588 |
WHA::TRate aMaxTransmitRate,
|
|
589 |
TBool aMore,
|
|
590 |
WHA::TPacketId aPacketId,
|
|
591 |
WHA::TPowerLevel aPowerLevel,
|
|
592 |
TUint32 aExpiryTime,
|
|
593 |
void* aReserved );
|
|
594 |
|
|
595 |
/**
|
|
596 |
* \fn Reset
|
|
597 |
* \brief The WLAN host driver uses this command to reset the WLAN vendor specific solution to its initial state
|
|
598 |
* (reference wlanwha.h)
|
|
599 |
*
|
|
600 |
* \note
|
|
601 |
* \param
|
|
602 |
* \return
|
|
603 |
* \sa
|
|
604 |
*/
|
|
605 |
void Reset();
|
|
606 |
|
|
607 |
/**
|
|
608 |
* \fn Plt
|
|
609 |
* \brief The host driver calls this method to perform production line testing of the WLAN device
|
|
610 |
* (reference wlanwha.h)
|
|
611 |
*
|
|
612 |
* \note
|
|
613 |
* \param aType indicates which test to perform
|
|
614 |
* \param aParams test specific parameters
|
|
615 |
* \return
|
|
616 |
* \sa
|
|
617 |
*/
|
|
618 |
void Plt (WHA::TPltType aType, void *aParams);
|
|
619 |
|
|
620 |
|
|
621 |
/**
|
|
622 |
* Direct read/write operation from the device
|
|
623 |
*/
|
|
624 |
WHA::TStatus WriteMem (TMemoryAccess *pMemoryAccess);
|
|
625 |
WHA::TStatus ReadMem (TMemoryAccess *pMemoryAccess);
|
|
626 |
|
|
627 |
/**********************************************/
|
|
628 |
/************ TIWha callbacks **************/
|
|
629 |
/**********************************************/
|
|
630 |
|
|
631 |
/* ConnectBusCb called after first connection phase (init command transaction) is finished*/
|
|
632 |
void ConnectBusCb (TI_STATUS status);
|
|
633 |
/* Init HW Callback called after all software init is done and NVS configuration was saved as defaults, will download the FW*/
|
|
634 |
void InitHwCb ( TI_STATUS status);
|
|
635 |
/* Init FW Callback called after Fw was downloaded will configure the FW*/
|
|
636 |
void InitFwCb ( TI_STATUS status);
|
|
637 |
/* Config FW Callback will set the defaults*/
|
|
638 |
void ConfigFwCb ( TI_STATUS status);
|
|
639 |
/* InitFailCb will be called in case of a failure in one of the init SM's */
|
|
640 |
void InitFailCb ( TI_STATUS status);
|
|
641 |
|
|
642 |
/**********************************************/
|
|
643 |
/************ Complete callbacks **************/
|
|
644 |
/**********************************************/
|
|
645 |
|
|
646 |
/* Complete Callback */
|
|
647 |
void ScanCompleteCb (TI_STATUS returnStatus , E80211PsStatus PSMode);
|
|
648 |
|
|
649 |
/* Power Save Complete Callback */
|
|
650 |
void SetPsModeCompleteCb (TUint8 PSMode, TUint8 transStatus);
|
|
651 |
|
|
652 |
/* Measurement Complete Callback */
|
|
653 |
void MeasureCompleteCb ( TMeasurementReply *pMsrReply);
|
|
654 |
|
|
655 |
|
|
656 |
/**********************************************/
|
|
657 |
/*********** Indication callbacks *************/
|
|
658 |
/**********************************************/
|
|
659 |
/* RCPI Indication Callback */
|
|
660 |
void RcpiIndicationCb ( TUint8* buffer, TUint32 len);
|
|
661 |
/* Lost Beacon Indication Callback */
|
|
662 |
void LostBssIndicationCb ();
|
|
663 |
/* Regain Bss Indication Callback */
|
|
664 |
void RegainBssIndicationCb ();
|
|
665 |
/* BtCoexistence Indication CallBacks */
|
|
666 |
void btCoexSenseIndicationCb ( TUint8* buffer, TUint32 len);
|
|
667 |
void btCoexProtectiveIndicationCb ( TUint8* buffer, TUint32 len);
|
|
668 |
void btCoexAvalancheIndicationCb ( TUint8* buffer, TUint32 len);
|
|
669 |
/* FW statistics callback */
|
|
670 |
void TWD_StatisticsReadCB (TI_HANDLE hTWD, TI_UINT16 MboxStatus, ACXStatistics_t* pElem);
|
|
671 |
/*Avr RSSI Callback*/
|
|
672 |
void TWD_AvrRssiReadCB (TI_HANDLE hCb, TI_UINT16 MboxStatus, ACXRoamingStatisticsTable_t* roamingStatistics);
|
|
673 |
/**********************************************/
|
|
674 |
/************ Response callbacks **************/
|
|
675 |
/**********************************************/
|
|
676 |
|
|
677 |
/* Generic Response Callback */
|
|
678 |
void GenericCommandResponseCb ( TUint16 CmdType, TUint16 CmdID, TUint32 aStatus);
|
|
679 |
/* Scan Response Callback */
|
|
680 |
void ScanResponseCb(WHA::TStatus aStatus);
|
|
681 |
/* Join Response Callback */
|
|
682 |
void JoinCompleteCb ();
|
|
683 |
|
|
684 |
/* Add Key Response Callback */
|
|
685 |
void AddKeyResponseCb ( WHA::TStatus aStatus);
|
|
686 |
/* Remove Key Response Callback */
|
|
687 |
void RemoveKeyResponseCb ( WHA::TStatus aStatus);
|
|
688 |
/* Stop Scan Response Callback */
|
|
689 |
void StopScanResponseCb (WHA::TStatus aStatus);
|
|
690 |
|
|
691 |
/* Power Save Response Callback */
|
|
692 |
void SetPsModeResponseCb (TUint8 aStatus);
|
|
693 |
|
|
694 |
/* Read MIB Response Callback */
|
|
695 |
void ReadMIBResponseCb ( TUint16 aStatus, void *InterrogateParamsBuf);
|
|
696 |
/* TxPower Level Read MIB CallBack */
|
|
697 |
void ReadMIBStationIdResponse (TUint16 aStatus, void *InterrogateParamsBuf);
|
|
698 |
void ReadMIBstatisticsTableResponse(TUint16 aStatus, void *InterrogateParamsBuf);
|
|
699 |
void ReadMIBcountersTableResponse (TUint16 aStatus, void *InterrogateParamsBuf);
|
|
700 |
void ReadMIBBtCoexParamsResponse (TUint16 aStatus, void *InterrogateParamsBuf);
|
|
701 |
/* Read Version Callback */
|
|
702 |
void ReadMIBVersion (TUint16 aStatus, void *InterrogateParamsBuf);
|
|
703 |
/* Measure Response Callback */
|
|
704 |
void MeasureResponseCb ( TUint16 aStatus);
|
|
705 |
/* Stop Measure Response Callback */
|
|
706 |
void StopMeasureResponseCb ( TUint16 aStatus);
|
|
707 |
/* Command Complete Generic Callback */
|
|
708 |
|
|
709 |
|
|
710 |
/* PLT Response Callback */
|
|
711 |
void PltResponseCb ( TI_STATUS aStatus, void *InterrogateParamsBuf);
|
|
712 |
/* PLT RX PER callbacks */
|
|
713 |
void PltPerGetResultResponseCb ( TUint16 aStatus, void *InterrogateParamsBuf);
|
|
714 |
void PltPerStartResponseCb ( TUint16 aStatus, void *InterrogateParamsBuf);
|
|
715 |
void PltPerStopResponseCb ( TUint16 aStatus, void *InterrogateParamsBuf);
|
|
716 |
void PltPerClearResponseCb ( TUint16 aStatus, void *InterrogateParamsBuf);
|
|
717 |
/* Read Memory/Registers Response Callback */
|
|
718 |
void ReadMemResponseCb (TFwDebugParams* params);
|
|
719 |
/* Write Registers Response Callback */
|
|
720 |
void WriteMemResponseCb (TFwDebugParams* params);
|
|
721 |
|
|
722 |
/* PLT TX calibration */
|
|
723 |
void PltGainGetResponseCb ( TUint16 aStatus, void *InterrogateParamsBuf);
|
|
724 |
void PltGetNVSUpdateBufferResponseCb ( TUint16 aStatus, void *InterrogateParamsBuf);
|
|
725 |
|
|
726 |
#ifdef PLT_TESTER
|
|
727 |
TUint8 iRealPlt;
|
|
728 |
void PltSm(void *pBuf);
|
|
729 |
|
|
730 |
#endif
|
|
731 |
/* RX CallBacks */
|
|
732 |
ERxBufferStatus RequestForBufferCb (void **pWbuf, TI_UINT16 aLength, TI_UINT32 uEncryptionflag);
|
|
733 |
|
|
734 |
void ReceivePacketCb (const void *aFrame);
|
|
735 |
|
|
736 |
|
|
737 |
/* Frame was written to FW */
|
|
738 |
void TxXferCb(TTxCtrlBlk *pPktCtrlBlk);
|
|
739 |
|
|
740 |
/* Frame was transmitted over the air (or failed to be transmitted) */
|
|
741 |
void TxCompleteCb (TxResultDescriptor_t *pTxResultInfo, TI_UINT32 backpressure);
|
|
742 |
|
|
743 |
/**
|
|
744 |
* \fn InitResponse
|
|
745 |
* \brief ititializatin response function. In case of success - return command response
|
|
746 |
* In case of error - send error indication (as requested from Palau)
|
|
747 |
*
|
|
748 |
* /note
|
|
749 |
*
|
|
750 |
* /param aTwdInitStatus - Whether Init was successful
|
|
751 |
*
|
|
752 |
* /return
|
|
753 |
*/
|
|
754 |
void InitResponse (WHA::TStatus aTwdInitStatus);
|
|
755 |
|
|
756 |
|
|
757 |
/**
|
|
758 |
* \fn getMacAddress
|
|
759 |
* \brief return the Mac address from the TWDCtrl
|
|
760 |
*
|
|
761 |
*
|
|
762 |
* /note
|
|
763 |
*
|
|
764 |
* /return
|
|
765 |
*/
|
|
766 |
void * getMacAddress();
|
|
767 |
|
|
768 |
|
|
769 |
/**
|
|
770 |
* \fn ConvertTxBip2Nvs
|
|
771 |
* \brief Fill in the Tx NVS params in iBipNvsBuffer
|
|
772 |
*
|
|
773 |
*
|
|
774 |
* /note
|
|
775 |
*
|
|
776 |
* /return
|
|
777 |
*/
|
|
778 |
void ConvertTxBip2Nvs(void* pBuf);
|
|
779 |
|
|
780 |
|
|
781 |
/**
|
|
782 |
* \fn ConvertRxBip2Nvs
|
|
783 |
* \brief Fill in the Rx NVS params in iBipNvsBuffer
|
|
784 |
*
|
|
785 |
*
|
|
786 |
* /note
|
|
787 |
*
|
|
788 |
* /return
|
|
789 |
*/
|
|
790 |
void ConvertRxBip2Nvs(void* pBuf);
|
|
791 |
|
|
792 |
private:
|
|
793 |
|
|
794 |
/**
|
|
795 |
* Internal PLT to match the TWD test API
|
|
796 |
* /param eTestCmd indicates which test to perform
|
|
797 |
* /param pTestCmdParams test specific parameters
|
|
798 |
* /return
|
|
799 |
*/
|
|
800 |
|
|
801 |
WHA::TStatus Plt (ETestCmdID eTestCmd, void *pTestCmdParams);
|
|
802 |
|
|
803 |
|
|
804 |
#ifdef TI_TEST
|
|
805 |
void PltTester(const void *aData);
|
|
806 |
void ChangeQueue(const void *aData);
|
|
807 |
#endif /* TI_TEST */
|
|
808 |
|
|
809 |
|
|
810 |
/*Helper function*/
|
|
811 |
|
|
812 |
TI_STATUS CreateDriver();
|
|
813 |
void DestroyDriver();
|
|
814 |
|
|
815 |
|
|
816 |
/**
|
|
817 |
* \fn InitTwdParamTable
|
|
818 |
* \brief initialization of TWD parameters
|
|
819 |
*
|
|
820 |
* since we have no ini file, we are initializing the
|
|
821 |
* Modules with hard coded values
|
|
822 |
* /note
|
|
823 |
*
|
|
824 |
* /return
|
|
825 |
*/
|
|
826 |
void InitTwdParamTable ();
|
|
827 |
/* FEM Auto Detection*/
|
|
828 |
void InitTwdRadioParam ();
|
|
829 |
void FillRadioData();
|
|
830 |
void FillSmartReflexData();
|
|
831 |
void InitTwdPlatformGenParam();
|
|
832 |
#ifdef TI_DBG
|
|
833 |
void PrintRadioData();
|
|
834 |
#endif
|
|
835 |
|
|
836 |
void InitTwdRadioSmartReflexParam();
|
|
837 |
|
|
838 |
|
|
839 |
/**
|
|
840 |
* \fn InitBtCoex
|
|
841 |
* \brief initialization of Soft Gemini parameters
|
|
842 |
*
|
|
843 |
* since we have no ini file, we are initializing the
|
|
844 |
* Modules with hard coded values
|
|
845 |
* /note
|
|
846 |
*
|
|
847 |
* /return
|
|
848 |
*/
|
|
849 |
void InitBtCoex();
|
|
850 |
|
|
851 |
/**
|
|
852 |
* \fn InitReportParamTable
|
|
853 |
* \brief initialization of Report parameters
|
|
854 |
*
|
|
855 |
* since we ave no ini file, we are initializing the
|
|
856 |
* Modules wit hard coded values
|
|
857 |
* /note
|
|
858 |
*
|
|
859 |
* /return
|
|
860 |
*/
|
|
861 |
void InitReportParamTable();
|
|
862 |
/* Open reports for debug */
|
|
863 |
void OpenAllReports();
|
|
864 |
|
|
865 |
/**
|
|
866 |
* \fn RegisterCb
|
|
867 |
* \brief registers the TIWha callbacks
|
|
868 |
*
|
|
869 |
* Register callbacks To Twd level according to the action
|
|
870 |
* that we would like to be triggered on
|
|
871 |
*
|
|
872 |
* \note
|
|
873 |
* \return status whther the registration succeed or not.
|
|
874 |
* \sa
|
|
875 |
*/
|
|
876 |
WHA::TStatus RegisterCb ();
|
|
877 |
|
|
878 |
|
|
879 |
/**
|
|
880 |
* \fn RegisterEvents
|
|
881 |
* \brief register the TIWha Events
|
|
882 |
*
|
|
883 |
* Register callbacks To Twd level according to the event
|
|
884 |
* that we would like to be triggered on
|
|
885 |
*
|
|
886 |
* \note
|
|
887 |
* \return status whther the registration succeed or not.
|
|
888 |
* \sa
|
|
889 |
*/
|
|
890 |
WHA::TStatus RegisterEvents ();
|
|
891 |
|
|
892 |
|
|
893 |
/**
|
|
894 |
* \fn FillNWSASettings
|
|
895 |
* \brief Fill UMAC structure with correct settings
|
|
896 |
*
|
|
897 |
* since we ave no ini file, we are initializing the
|
|
898 |
* Modules wit hard coded values
|
|
899 |
* /note
|
|
900 |
*
|
|
901 |
* /param SNWSASettings - pointer pointer to the UMAC settings struct
|
|
902 |
* /return status
|
|
903 |
*/
|
|
904 |
WHA::TStatus FillNWSASettings (WHA::SSettings *SNWSASettings);
|
|
905 |
|
|
906 |
/**
|
|
907 |
* \fn WriteMib utility functions
|
|
908 |
* \brief For each WriteMib command we use one of the following functions
|
|
909 |
*
|
|
910 |
* /return status
|
|
911 |
*/
|
|
912 |
WHA::TStatus SetSlotTime (const void *aData);
|
|
913 |
WHA::TStatus Dot11MaxReceiveLifeTime (const void *aData) ;
|
|
914 |
WHA::TStatus SetRxFilter (const void *aData);
|
|
915 |
WHA::TStatus SetCurrentTxPowerLevel (const void *aData);
|
|
916 |
WHA::TStatus SetTemplateFrame (const void *aData);
|
|
917 |
WHA::TStatus SetDot11GroupAddrTable (const void *aData);
|
|
918 |
WHA::TStatus SetDefaultKeyID (const void *aData);
|
|
919 |
WHA::TStatus Dot11RTSThreshold (const void *aData);
|
|
920 |
WHA::TStatus CtsToSelf (const void *aData);
|
|
921 |
WHA::TStatus SetArpIpAddrTable (const void *aData);
|
|
922 |
WHA::TStatus SetBeaconFilterIETable (const void *aData);
|
|
923 |
WHA::TStatus SetBeaconFilterEnable (const void *aData);
|
|
924 |
WHA::TStatus SleepMode ( const WHA::TSleepMode& aSleepMode, TBool bResponse);
|
|
925 |
WHA::TStatus WakeUpConditions (const void *aData);
|
|
926 |
WHA::TStatus SetBeaconLostCount (const void *aData);
|
|
927 |
WHA::TStatus SetRcpiThreshold (const void *aData);
|
|
928 |
WHA::TStatus TxRatePolicy (TUint32 aLength, const void *aData);
|
|
929 |
WHA::TStatus btCoexistenceMode(TUint32 aLength, const void *aData);
|
|
930 |
WHA::TStatus btCoexistenceProfile(TUint32 aLength, const void *aData);
|
|
931 |
#ifdef HT_SUPPORT
|
|
932 |
void TConvertTwdHtCapa2SHtCapa (TTwdHtCapabilities* pTwdHtCapabilities,WHA::SHtCapabilities* pHtCapabilities);
|
|
933 |
WHA::TStatus SetHTCapabilities (WHA::ShtCapabilities* pApCapabilities);
|
|
934 |
WHA::TStatus SetHTInformation (WHA::ShtBssOperation* pHtInformarion);
|
|
935 |
WHA::TStatus ConfigureBA (WHA::ShtBlockAckConfigure* pBABitMask);
|
|
936 |
#endif
|
|
937 |
WHA::TStatus TxAutoRatePolicy (WHA::StxAutoRatePolicy* pTxAutoRatePolicy);
|
|
938 |
void SetPowerSavePowerLevel(void *aMib);
|
|
939 |
TI_STATUS SoftGemini_SetParams (TI_HANDLE hTWD, TSoftGeminiParams *pSgParams,ESoftGeminiEnableModes aSgMode );
|
|
940 |
|
|
941 |
void prepareNextFwChunk ();
|
|
942 |
|
|
943 |
WHA::TStatus preparePktCtrlBlk ( TTxCtrlBlk **pPktCtrlBlk,
|
|
944 |
const void* aFrame,
|
|
945 |
TUint16 aLength,
|
|
946 |
WHA::TQueueId aQueueId,
|
|
947 |
TUint8 aTxRateClassId,
|
|
948 |
WHA::TRate aMaxTransmitRate,
|
|
949 |
TBool aMore,
|
|
950 |
WHA::TPacketId aPacketId,
|
|
951 |
WHA::TPowerLevel aPowerLevel,
|
|
952 |
TUint32 aExpiryTime);
|
|
953 |
|
|
954 |
|
|
955 |
WHA::TStatus AlignTxForTWD (void*& aFrame,TUint16& aLength);
|
|
956 |
void AlignTxSecurityForUMAC (TBool aQFull = FALSE);
|
|
957 |
|
|
958 |
WHA::TStatus ConstructAddKey ( TSecurityKeys *aSecurityKey, /* structure to be filled */
|
|
959 |
WHA::TKeyType aType, /* Type of the key to be added */
|
|
960 |
const void *aKey, /* Pointer to buffer specifying the key */
|
|
961 |
/* material, according to the key type */
|
|
962 |
/* (see specification for details). */
|
|
963 |
TUint8 aEntryIndex); /* Key entry index. Valid range: 0-8. */
|
|
964 |
|
|
965 |
/*Data*/
|
|
966 |
TIWlanHpaCB* iTiWlanHpaCb;
|
|
967 |
WHA::UCommandResponseParams iUCommandResponseParams;
|
|
968 |
TI_UINT8 iReabMibMem[TIWha_MAX_READ_MIB_BUFFER];
|
|
969 |
WHA::UCommandCompletionParams iUCommandCompletionParams;
|
|
970 |
WHA::UIndicationParams iUIndicationParams;
|
|
971 |
TI_BOOL bErrorIndication;
|
|
972 |
TI_BOOL bCallRelease;
|
|
973 |
TI_BOOL bFreeDriver;
|
|
974 |
TFileInfo iFwFile;
|
|
975 |
TI_UINT8* ipNVSbuf;
|
|
976 |
TI_UINT32 iNVSlength;
|
|
977 |
TI_BOOL bFailureIndication;
|
|
978 |
TwdCtrl iTwdCtrl;
|
|
979 |
TAutoRadioIniParams iAutoRadioParams;
|
|
980 |
|
|
981 |
TSmartReflexConfigParams iSmartReflexParams;
|
|
982 |
TSmartReflexDebugParams iSmartReflexDebugParams;
|
|
983 |
|
|
984 |
TI_UINT8 iSecurityPadding;
|
|
985 |
|
|
986 |
/* Add the Soft Gemini Parameters to TIWha */
|
|
987 |
TSoftGeminiParams iSgParams;
|
|
988 |
TI_UINT32 iRxPacketsAllocated;
|
|
989 |
|
|
990 |
#ifdef TI_TEST
|
|
991 |
WHA::TQueueId iQueueId;
|
|
992 |
ACXRoamingStatisticsTable_t roamingStatistics;
|
|
993 |
#endif /* TI_TEST */
|
|
994 |
|
|
995 |
/* PDD create API */
|
|
996 |
public:
|
|
997 |
TInt Install();
|
|
998 |
void GetCaps( TDes8& aDes ) const;
|
|
999 |
TInt Create( DBase *&aChannel, TInt aUnit, const TDesC* anInfo, const TVersion& aVer);
|
|
1000 |
TInt Validate( TInt aUnit, const TDesC8 *aInfo, const TVersion &aVer );
|
|
1001 |
TBool Attach( MWlanOsa& aWlanOsa, MWlanOsaExt& aWlanOsaExt );
|
|
1002 |
WHA::Wha& Extract();
|
|
1003 |
void GetCapabilities( SCapabilities*& aCapabilities );
|
|
1004 |
|
|
1005 |
/*
|
|
1006 |
* Hold the capability off the cashe memory
|
|
1007 |
*/
|
|
1008 |
SCapabilities* aCapability;
|
|
1009 |
|
|
1010 |
public:
|
|
1011 |
|
|
1012 |
TUint8 iNvsStart[24];
|
|
1013 |
TUint8 iBipNvsBuffer[MAX_TLV_LENGTH];
|
|
1014 |
|
|
1015 |
TI_UINT32 iPacketIdTable[CTRL_BLK_ENTRIES_NUM];
|
|
1016 |
TUint16 aScanResultCount;
|
|
1017 |
TUint16 SentScanResult;
|
|
1018 |
TI_STATUS aPsMode;
|
|
1019 |
TI_STATUS aScanStatus;
|
|
1020 |
TI_HANDLE hConnectionTimer; /* Timer for special rate management during connection */
|
|
1021 |
static const TI_UINT32 uConnectionApproxTimeMs = 5000; /* After 5 seconds we will set back the original Tx fail rate */
|
|
1022 |
TI_BOOL bConnectionTimerRunning;
|
|
1023 |
|
|
1024 |
TI_HANDLE hInitializeTimer; /* Holds the timer for initialize */
|
|
1025 |
TI_HANDLE readDot11StationIdMibTmr;
|
|
1026 |
|
|
1027 |
TI_HANDLE hRxMemFailTimer; /* Next parameters handle Rx memory allocation failure */
|
|
1028 |
TI_BOOL bRxMemFailTimerRunning;
|
|
1029 |
TI_UINT32 uRxMemFailCount;
|
|
1030 |
static const TI_UINT32 MAX_CONSECUTIVE_RX_MEM_FAIL = 50; /* After this amount of failures we will start dropping packets */
|
|
1031 |
static const TI_UINT32 RX_ALLOC_FAIL_TIME_OUT = 10; /* time out for requesting a buffer again */
|
|
1032 |
|
|
1033 |
EFailureEvent ifailureEvent;
|
|
1034 |
|
|
1035 |
TMib iTxRatePolicy;
|
|
1036 |
|
|
1037 |
#ifdef HT_SUPPORT
|
|
1038 |
TMacAddr iJoinedMacAddress;
|
|
1039 |
TUint8 iTxBlockAckUsageLast;
|
|
1040 |
TUint8 iRxBlockAckUsageLast;
|
|
1041 |
WHA::THtMcsSet iMcsRates;
|
|
1042 |
TUint8 iBACounertRespone;
|
|
1043 |
#endif /* HT_SUPPORT */
|
|
1044 |
TI_UINT8 bJoined;
|
|
1045 |
|
|
1046 |
TI_UINT8 iConnectionCounter;
|
|
1047 |
const void* iData;
|
|
1048 |
TI_UINT32 iLength;
|
|
1049 |
|
|
1050 |
/* Holds the failure event number in order save it in the failure handling context switch */
|
|
1051 |
EFailureEvent iFailureEvent;
|
|
1052 |
|
|
1053 |
/* Holds the other two optinal wlan DFC's context */
|
|
1054 |
TIFailureDfcClient* pFailureDfcClient;
|
|
1055 |
TIConnectDfcClient* pConnectDfcClient;
|
|
1056 |
TBusDrvCfg BusDrvCfg;
|
|
1057 |
|
|
1058 |
private:
|
|
1059 |
TI_BOOL bDriverCreated;
|
|
1060 |
};
|
|
1061 |
|
|
1062 |
#endif // TIWha_H
|
|
1063 |
|
|
1064 |
|
|
1065 |
|