1/* 2 * TWDriver.h 3 * 4 * Copyright(c) 1998 - 2009 Texas Instruments. All rights reserved. 5 * All rights reserved. 6 * 7 * Redistribution and use in source and binary forms, with or without 8 * modification, are permitted provided that the following conditions 9 * are met: 10 * 11 * * Redistributions of source code must retain the above copyright 12 * notice, this list of conditions and the following disclaimer. 13 * * Redistributions in binary form must reproduce the above copyright 14 * notice, this list of conditions and the following disclaimer in 15 * the documentation and/or other materials provided with the 16 * distribution. 17 * * Neither the name Texas Instruments nor the names of its 18 * contributors may be used to endorse or promote products derived 19 * from this software without specific prior written permission. 20 * 21 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 22 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 23 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 24 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 25 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 26 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 27 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 28 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 29 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 30 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 31 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 32 */ 33 34 35/** \file TWDriver.h 36 * \brief TWDriver APIs 37 * 38 * \see 39 */ 40 41/** @defgroup Control Control group 42 * \brief The Control group includes the list of functions which perform TWD Control 43 */ 44/** @defgroup Measurement Measurement group 45 * \brief The Measurement group includes the list of functions which gets measurements from FW / TWD 46 */ 47/** @defgroup Data_Path Data Path group 48 * \brief The Data Path group includes the list of functions which perform the TWD Data Path 49 */ 50/** @defgroup Power_Management Power Management group 51 * \brief The Power Management group includes the list of functions which set the power management mode 52 */ 53/** @defgroup QoS Quality Of Service group 54 * \brief The Quality of Service group includes the list of functions which perform the TWD QoS 55 */ 56/** @defgroup Radio Radio (PHY) group 57 * \brief The Radio group includes the list of functions which handle the Radio 58 */ 59/** @defgroup BSS BSS group 60 * \brief The BSS group includes the list of functions which handle the Basic Service Set 61 */ 62/** @defgroup Misc Miscellaneous group 63 * \brief The Miscellaneous group includes the list of functions which handle miscellaneous issues 64 */ 65#ifdef TI_DBG 66/** @defgroup Test Debug Test group 67 * \brief The Debug Test group includes the list of functions which Test the TWD and FW 68 */ 69#endif 70 71#ifndef TWDRIVER_H 72#define TWDRIVER_H 73 74#define MAX_NUM_OF_802_1d_TAGS 8 75 76#include "802_11Defs.h" 77#include "TWDriverMsr.h" 78#include "TWDriverScan.h" 79#include "TWDriverRate.h" 80#include "fwDebug_api.h" 81#include "TwIf.h" 82/* 83 * original firmware h-files 84 */ 85#include "public_commands.h" 86#include "public_event_mbox.h" 87#include "public_infoele.h" 88#include "public_host_int.h" 89#include "public_descriptors.h" 90#include "public_radio.h" 91 92/* 93 * Firmware types defintions 94 */ 95#ifndef uint8 96#define uint8 TI_UINT8 97#endif 98#ifndef uint16 99#define uint16 TI_UINT16 100#endif 101#ifndef uint32 102#define uint32 TI_UINT32 103#endif 104#ifndef int8 105#define int8 TI_INT8 106#endif 107#ifndef int16 108#define int16 TI_INT16 109#endif 110#ifndef int32 111#define int32 TI_INT32 112#endif 113 114 115 116/* 117 * -------------------------------------------------------------- 118 * Definitions 119 * -------------------------------------------------------------- 120 */ 121 122/* PALAU Group Address Default Values */ 123#define NUM_GROUP_ADDRESS_VALUE_DEF 4 124#define NUM_GROUP_ADDRESS_VALUE_MIN 0 125#define NUM_GROUP_ADDRESS_VALUE_MAX 8 126 127/* Early Wakeup Default Values */ 128#define EARLY_WAKEUP_ENABLE_MIN (TI_FALSE) 129#define EARLY_WAKEUP_ENABLE_MAX (TI_TRUE) 130#define EARLY_WAKEUP_ENABLE_DEF (TI_TRUE) 131 132/* ARP IP Filter Default Values */ 133#define MIN_FILTER_ENABLE_VALUE 0 134#define MAX_FILTER_ENABLE_VALUE 2 135#define DEF_FILTER_ENABLE_VALUE 0 136#define FILTER_ENABLE_FLAG_LEN 1 137 138/* Beacon filter Deafult Values */ 139#define DEF_BEACON_FILTER_ENABLE_VALUE 1 140#define DEF_BEACON_FILTER_IE_TABLE_NUM 16 141#define MIN_BEACON_FILTER_ENABLE_VALUE 0 142#define MAX_BEACON_FILTER_ENABLE_VALUE 1 143#define BEACON_FILTER_IE_TABLE_DEF_SIZE 37 144#define BEACON_FILTER_IE_TABLE_MAX_SIZE 100 145#define BEACON_FILTER_IE_TABLE_MIN_SIZE 0 146#define BEACON_FILTER_IE_TABLE_MAX_NUM (6+32) 147#define BEACON_FILTER_IE_TABLE_MIN_NUM 0 148 149/* CoexActivity Table Deafult Values */ 150#define COEX_ACTIVITY_TABLE_DEF_NUM 0 151#define COEX_ACTIVITY_TABLE_MIN_NUM 0 152#define COEX_ACTIVITY_TABLE_MAX_NUM 24*2 153#define COEX_ACTIVITY_TABLE_SIZE ((2+1)+(2+1)+(2+1)+(2+1)+(4+1)+(4+1)) /* includes spaces between bytes */ 154 155#define DEF_NUM_STORED_FILTERS 1 156#define MIN_NUM_STORED_FILTERS 1 157#define MAX_NUM_STORED_FILTERS 8 158 159#define TWD_HW_ACCESS_METHOD_MIN 0 160#define TWD_HW_ACCESS_METHOD_MAX 2 161#define TWD_HW_ACCESS_METHOD_DEF 1 162 163#define TWD_SITE_FRAG_COLLECT_MIN 2 164#define TWD_SITE_FRAG_COLLECT_MAX 10 165#define TWD_SITE_FRAG_COLLECT_DEF 3 166 167#define TWD_RX_MEM_BLKS_NUM 64 /* The number of Rx memory blocks configured to FW */ 168#define TWD_TX_MIN_MEM_BLKS_NUM 64 /* The MINIMUM number of Tx memory blocks configured to FW */ 169 170#define TWD_RX_BLOCKS_RATIO_MIN 0 171#define TWD_RX_BLOCKS_RATIO_MAX 100 172#define TWD_RX_BLOCKS_RATIO_DEF 50 173 174#define TWD_TX_FLASH_ENABLE_MIN TI_FALSE 175#define TWD_TX_FLASH_ENABLE_MAX TI_TRUE 176#define TWD_TX_FLASH_ENABLE_DEF TI_TRUE 177 178#define TWD_USE_INTR_TRHESHOLD_MIN 0 179#define TWD_USE_INTR_TRHESHOLD_MAX 1 180#define TWD_USE_INTR_TRHESHOLD_DEF 0 181 182#define TWD_USE_TX_DATA_INTR_MIN 0 183#define TWD_USE_TX_DATA_INTR_MAX 1 184 185#define NUM_OF_CHANNELS_24 14 186#define NUM_OF_CHANNELS_5 180 187 188#define TWD_CALIBRATION_CHANNEL_2_4_MIN 1 189#define TWD_CALIBRATION_CHANNEL_2_4_MAX NUM_OF_CHANNELS_24 190#define TWD_CALIBRATION_CHANNEL_2_4_DEF 1 191 192#define A_5G_BAND_MIN_CHANNEL 36 193#define A_5G_BAND_MAX_CHANNEL 180 194#define A_5G_BAND_NUM_CHANNELS (A_5G_BAND_MAX_CHANNEL-A_5G_BAND_MIN_CHANNEL+1) 195 196#define TWD_CALIBRATION_CHANNEL_5_0_MIN 34 197#define TWD_CALIBRATION_CHANNEL_5_0_MAX A_5G_BAND_MAX_CHANNEL 198#define TWD_CALIBRATION_CHANNEL_5_0_DEF 36 199 200#define TWD_CALIBRATION_CHANNEL_4_9_MIN 8 201#define TWD_CALIBRATION_CHANNEL_4_9_MAX 16 202#define TWD_CALIBRATION_CHANNEL_4_9_DEF 12 203 204#define TWD_RTS_THRESHOLD_MIN 0 205#define TWD_RTS_THRESHOLD_MAX 4096 206#define TWD_RTS_THRESHOLD_DEF 4096 207 208#define TWD_BCN_RX_TIME_OUT_MIN 10 /* ms */ 209#define TWD_BCN_RX_TIME_OUT_MAX 1000 /* ms */ 210#define TWD_BCN_RX_TIME_OUT_DEF 10 /* ms */ 211 212#define TWD_RX_DISABLE_BROADCAST_MIN TI_FALSE 213#define TWD_RX_DISABLE_BROADCAST_MAX TI_TRUE 214#define TWD_RX_DISABLE_BROADCAST_DEF TI_FALSE 215 216/* Indicate if the recovery process is active or not */ 217#define TWD_RECOVERY_ENABLE_MIN TI_FALSE 218#define TWD_RECOVERY_ENABLE_MAX TI_TRUE 219#define TWD_RECOVERY_ENABLE_DEF TI_TRUE 220 221/* Indicate if working with Burst Mode or not */ 222#define BURST_MODE_ENABLE_MIN TI_FALSE 223#define BURST_MODE_ENABLE_MAX TI_TRUE 224#define BURST_MODE_ENABLE_DEF TI_FALSE 225 226#define SMART_REFLEX_STATE_MIN TI_FALSE 227#define SMART_REFLEX_STATE_MAX TI_TRUE 228#define SMART_REFLEX_STATE_DEF TI_TRUE 229 230#define SMART_REFLEX_DEBUG_MIN 0 231#define SMART_REFLEX_DEBUG_MAX 0xFFFF 232#define SMART_REFLEX_DEBUG_DEF 0 233 234#define SMART_REFLEX_CONFIG_PARAMS_DEF_TABLE "0,0,0,0,0,0,0,0,0,0,0,0,0,0" 235 236#define TWD_FRAG_THRESHOLD_MIN 256 237#define TWD_FRAG_THRESHOLD_MAX 4096 238#define TWD_FRAG_THRESHOLD_DEF 4096 239 240#define TWD_MAX_TX_MSDU_LIFETIME_MIN 0 241#define TWD_MAX_TX_MSDU_LIFETIME_MAX 3000 242#define TWD_MAX_TX_MSDU_LIFETIME_DEF 512 243 244#define TWD_MAX_RX_MSDU_LIFETIME_MIN 0 245#define TWD_MAX_RX_MSDU_LIFETIME_MAX 0xFFFFFFFF 246#define TWD_MAX_RX_MSDU_LIFETIME_DEF 512000 247 248 249#define TWD_LISTEN_INTERVAL_MIN 1 250#define TWD_LISTEN_INTERVAL_MAX 10 251#define TWD_LISTEN_INTERVAL_DEF 3 252 253/* This field indicates the number of transmit retries to attempt at 254 the rate specified in the TNETW Tx descriptor before 255 falling back to the next lowest rate. 256 If this field is set to 0xff, then rate fallback is disabled. 257 If this field is 0, then there will be 0 retries before starting fallback.*/ 258#define TWD_RATE_FB_RETRY_LIMIT_MIN 0 /* => No retries before starting RateFallBack */ 259#define TWD_RATE_FB_RETRY_LIMIT_MAX 255 /* =>0xff for disabling Rate fallback */ 260#define TWD_RATE_FB_RETRY_LIMIT_DEF 0 261 262#define TWD_TX_ANTENNA_MIN TX_ANTENNA_2 263#define TWD_TX_ANTENNA_MAX TX_ANTENNA_1 264#define TWD_TX_ANTENNA_DEF TX_ANTENNA_1 265 266#define TWD_RX_ANTENNA_MIN RX_ANTENNA_1 267#define TWD_RX_ANTENNA_MAX RX_ANTENNA_PARTIAL 268#define TWD_RX_ANTENNA_DEF RX_ANTENNA_FULL 269 270/* 271 * Tx and Rx interrupts pacing (threshold in packets, timeouts in milliseconds) 272 */ 273#define TWD_TX_CMPLT_THRESHOLD_DEF 4 /* 0 means no pacing so send interrupt on every event */ 274#define TWD_TX_CMPLT_THRESHOLD_MIN 0 275#define TWD_TX_CMPLT_THRESHOLD_MAX 30 276 277#define TWD_TX_CMPLT_TIMEOUT_DEF 5 278#define TWD_TX_CMPLT_TIMEOUT_MIN 1 279#define TWD_TX_CMPLT_TIMEOUT_MAX 100 280 281#define TWD_RX_INTR_THRESHOLD_DEF 0 /* 0 means no pacing so send interrupt on every event */ 282#define TWD_RX_INTR_THRESHOLD_MIN 0 283#define TWD_RX_INTR_THRESHOLD_MAX 30 284#define TWD_RX_INTR_THRESHOLD_DEF_WIFI_MODE 0 /* No Rx interrupt pacing so send interrupt on every event */ 285 286#define TWD_RX_INTR_TIMEOUT_DEF 1 287#define TWD_RX_INTR_TIMEOUT_MIN 1 288#define TWD_RX_INTR_TIMEOUT_MAX 100 289 290/* Rx aggregation packets number limit (max packets in one aggregation) */ 291#define TWD_RX_AGGREG_PKTS_LIMIT_DEF 4 292#define TWD_RX_AGGREG_PKTS_LIMIT_MIN 1 293#define TWD_RX_AGGREG_PKTS_LIMIT_MAX 4 294 295/* 296 * Tx power level 297 */ 298#define DBM_TO_TX_POWER_FACTOR 10 299 300/* TX_POWER is in Dbm/10 units */ 301#define MAX_TX_POWER 250 302#define MIN_TX_POWER 0 303#define DEF_TX_POWER 205 304 305 306#define MIN_DEFAULT_KEY_ID 0 307#define MAX_DEFAULT_KEY_ID 3 308 309#define KEY_RSC_LEN 8 310#define MIN_KEY_LEN 5 311#define MAX_KEY_LEN 32 312 313#define TWD_RSSI_BEACON_WEIGHT_MIN 0 314#define TWD_RSSI_BEACON_WEIGHT_MAX 100 315#define TWD_RSSI_BEACON_WEIGHT_DEF 20 316 317#define TWD_RSSI_PACKET_WEIGHT_MIN 0 318#define TWD_RSSI_PACKET_WEIGHT_MAX 100 319#define TWD_RSSI_PACKET_WEIGHT_DEF 10 320 321#define TWD_SNR_BEACON_WEIGHT_MIN 0 322#define TWD_SNR_BEACON_WEIGHT_MAX 100 323#define TWD_SNR_BEACON_WEIGHT_DEF 20 324 325#define TWD_SNR_PACKET_WEIGHT_MIN 0 326#define TWD_SNR_PACKET_WEIGHT_MAX 100 327#define TWD_SNR_PACKET_WEIGHT_DEF 10 328 329 330 331 332#define MAX_NUM_OF_AC 4 333 334/************************************/ 335/* Rates values */ 336/************************************/ 337/* The next definitions are used to decide which encryption is used by the Rx flags */ 338#define RX_FLAGS_NO_SECURITY 0 339#define RX_FLAGS_WEP 1 340#define RX_FLAGS_TKIP 2 341#define RX_FLAGS_AES 3 342 343 344#define RX_DESC_FLAGS_ENCRYPTION 8 345#define RX_PACKET_FLAGS_ENCRYPTION_SHIFT 16 346#define RX_PACKET_FLAGS_ENCRYPTION_SHIFT_FROM_DESC (RX_PACKET_FLAGS_ENCRYPTION_SHIFT - RX_DESC_FLAGS_ENCRYPTION) 347 348/* Tx packet Control-Block flags bit-mask. */ 349#define TX_CTRL_FLAG_XFER_DONE_ISSUED 0x0001 /* Xfer-Done already issued to upper driver - for WHA. */ 350#define TX_CTRL_FLAG_TX_COMPLETE_ISSUED 0x0002 /* Tx-Complete already issued to upper driver - for WHA. */ 351#define TX_CTRL_FLAG_LINK_TEST 0x0004 /* XCC link test packet */ 352#define TX_CTRL_FLAG_SENT_TO_FW 0x0008 /* Set after the packet is allowed to be sent to FW (by TxHwQueue) */ 353#define TX_CTRL_FLAG_PKT_IN_RAW_BUF 0x0010 /* The input packet is in a raw buffer (as opposed to OS packet) */ 354#define TX_CTRL_FLAG_MULTICAST 0x0020 /* A multicast ethernet packet */ 355#define TX_CTRL_FLAG_BROADCAST 0x0040 /* A broadcast ethernet packet */ 356 357#define TX_PKT_TYPE_MGMT 1 /* Management Packet */ 358#define TX_PKT_TYPE_EAPOL 2 /* EAPOL packet (Ethernet) */ 359#define TX_PKT_TYPE_ETHER 3 /* Data packet from the Network interface */ 360#define TX_PKT_TYPE_WLAN_DATA 4 /* Driver generated WLAN Data Packet (currently used for IAPP packet) */ 361 362 363#define ALIGN_4BYTE_MASK 0x3 /* Masked LS bits for 4-bytes aligned addresses or lengths. */ 364#define SHIFT_BETWEEN_TU_AND_USEC 10 /* Shift factor to convert between TU (1024 uSec) and uSec. */ 365 366/* Packet header + extensions structure ranges between 24 and 48 bytes as follows: 367 * ------------------------------------------------------------------------------ 368 * Alignment Padding: 0/2 bytes, added for 4 bytes alignment of this structure. 369 * Mac-Header: 24 bytes, 802.11 basic header. 370 * Qos header: 0/2 bytes, for QoS-data or QoS-Null the two QoS bytes are added. 371 * Security Pad: 0/0/4/8 bytes, for None/WEP/TKIP/AES. 372 * LLC/SNAP: 0/8 bytes, added only for data packets. 373 * HT control: 0/4 added only for packte support QoS and HT 374 */ 375#define MAX_HEADER_SIZE 48 376 377/* Data body max length */ 378#define MAX_DATA_BODY_LENGTH 4096 379 380 381 382/* The weight in % of the new packet relative to the previous average value of RSSI */ 383#define RSSI_DEFAULT_WEIGHT 20 384 385#define RSSI_DEFAULT_THRESHOLD -80 386#define SNR_DEFAULT_THRESHOLD 0 387 388/* 389 * 'No beacon' roaming trigger configuration 390 * Number of consecutive beacons (or DTIM periods) missed before 391 * 'Out of Sync' event is raised 392 */ 393#define OUT_OF_SYNC_DEFAULT_THRESHOLD 10 394/* 395 * IBSS - Number of consecutive beacons (or DTIM periods) missed before 396 * 'Out of Sync' event is raised 397 */ 398#define OUT_OF_SYNC_IBSS_THRESHOLD 200 399/* Period of time between 'Out of sync' and 'No beacon' events */ 400#define NO_BEACON_DEFAULT_TIMEOUT 100 /* in tu-s*/ 401 402/* Consecutive NACK roaming trigger configuration */ 403#define NO_ACK_DEFAULT_THRESHOLD 20 404 405/* Low Rx rate roaming trigger configuration */ 406#define LOW_RATE_DEFAULT_THRESHOLD 2 407 408#define MEASUREMENT_NOISE_HISTOGRAM_NUM_OF_RANGES 8 409#define MAX_CHANNELS_IN_REG_DOMAIN 40 410 411#define CTS_TO_SELF_DISABLE 0 412#define CTS_TO_SELF_ENABLE 1 413 414#define MAX_TEMPLATE_SIZE 256 415 416/* Scan constants */ 417#define MAX_NUMBER_OF_CHANNELS_PER_SCAN 16 418#define SCAN_MAX_NUM_OF_NORMAL_CHANNELS_PER_COMMAND MAX_NUMBER_OF_CHANNELS_PER_SCAN 419#define SCAN_MAX_NUM_OF_SPS_CHANNELS_PER_COMMAND 16 420#define SCAN_DEFAULT_MIN_CHANNEL_DWELL_TIME 30000 421#define SCAN_DEFAULT_MAX_CHANNEL_DWELL_TIME 60000 422#define SCAN_DEFAULT_EARLY_TERMINATION_EVENT SCAN_ET_COND_DISABLE 423#define SCAN_DEFAULT_EARLY_TERMINATION_NUM_OF_FRAMES 0 424 425#define NUM_OF_NOISE_HISTOGRAM_COUNTERS 8 426 427#define TX_DESCRIPTOR_SIZE sizeof(TxIfDescriptor_t) 428 429#define CTRL_BLK_ENTRIES_NUM 128 430 431#define HT_CAP_AMPDU_PARAMETERS_FIELD_OFFSET 2 432#define HT_CAP_HT_EXTENDED_FIELD_OFFSET 19 433#define HT_CAP_AMPDU_MAX_RX_FACTOR_BITMASK 0x3 434#define HT_CAP_AMPDU_MIN_START_SPACING_BITMASK 0x7 435#define HT_CAP_GREENFIELD_FRAME_FORMAT_BITMASK 0x0010 436#define HT_CAP_SHORT_GI_FOR_20MHZ_BITMASK 0x0020 437#define HT_CAP_LSIG_TXOP_PROTECTION_BITMASK 0x8000 438#define HT_EXT_HT_CONTROL_FIELDS_BITMASK 0x0400 439#define HT_EXT_RD_INITIATION_BITMASK 0x0800 440#define HT_INF_RIFS_MOD_BITMASK 0x08 441#define HT_INF_OPERATION_MOD_BITMASK 0x03 442#define HT_INF_NON_GF_PRES_BITMASK 0x04 443#define HT_INF_TX_BURST_LIMIT_BITMASK 0x08 444#define HT_INF_DUAL_BEACON_BITMASK 0x40 445 446/* 447 * TWD HT capabilities, physical capabilities of the STA. 448 * The structure is defined like that in order to simplify the interface with WHA layer. 449 */ 450#define RX_TX_MCS_BITMASK_SIZE 10 451 452#define DSSS_CCK_MODE 1 453 454#define MCS_HIGHEST_SUPPORTED_RECEPTION_DATA_RATE_IN_MBIT_S 0x48 455 456#define IMPLICIT_TXBF_REC_CAPABLE 1 457#define TRANSMIT_STAGGERED_SOUNDING_CAPABLE 1 458 459/* Firmware version name length */ 460#define FW_VERSION_LEN 20 461 462/*the max table sized is : ( number of 221 * 8 bytes ) + ( non-221 * 2 bytes ) 463 Must be synchronized with the size of ACX defined in public_infoele.h interface 464 with the FW 465*/ 466#define MIB_MAX_SIZE_OF_IE_TABLE 112 467#define MIB_TEMPLATE_DATA_MAX_LEN 256 468#define MIB_MAX_MULTICAST_GROUP_ADDRS 8 469 470#define MAX_MULTICAST_GROUP_ADDRS 8 471 472/* Max numver of policies */ 473#define MAX_NUM_OF_TX_RATE_CLASS_POLICIES 8 474 475#define NUM_POWER_LEVELS 4 476#define MAX_POWER_LEVEL 1 477#define MIN_POWER_LEVEL NUM_POWER_LEVELS 478 479/* 480 * -------------------------------------------------------------- 481 * Enumerations 482 * -------------------------------------------------------------- 483 */ 484/** \enum EFileType 485 * \brief TWD input/output files 486 * 487 * \par Description 488 * Indicates which File (or part of file) to read or write 489 * 490 * \sa TFileInfo 491 */ 492typedef enum 493{ 494 FILE_TYPE_INI = 0, /**< */ 495 FILE_TYPE_NVS, /**< */ 496 FILE_TYPE_FW, /**< */ 497 FILE_TYPE_FW_NEXT /**< */ 498} EFileType; 499 500/** \enum EKeepAliveTriggerType 501 * \brief Keep Alive Trigger Types 502 * 503 * \par Description 504 * Indicates when to trigger Keep Alive 505 * 506 * \sa TKeepAliveParams 507 * 508 */ 509typedef enum 510{ 511 KEEP_ALIVE_TRIG_TYPE_NO_TX = 0, /**< */ 512 KEEP_ALIVE_TRIG_TYPE_PERIOD_ONLY /**< */ 513 514} EKeepAliveTriggerType; 515 516/** \enum ESlotTime 517 * \brief Radio (PHY) Slot Time Type 518 * 519 * \par Description 520 * Used for configuring PHY Slot Time for FW 521 * 522 * \sa TWD_CfgPreamble 523 */ 524typedef enum 525{ 526 PHY_SLOT_TIME_LONG = 0, /**< Long PHY Slot Time */ 527 PHY_SLOT_TIME_SHORT = 1 /**< Short PHY Slot Time */ 528 529} ESlotTime; 530 531/** \enum EMib 532 * \brief MIB Element Type 533 * 534 * \par Description 535 * Used for R/W MIB to FW 536 * 537 * \sa TMib 538 */ 539typedef enum 540{ 541/* 0x00 */ MIB_dot11MaxReceiveLifetime = 0, /**< */ 542/* 0x01 */ MIB_dot11SlotTime, /**< */ 543/* 0x02 */ MIB_dot11GroupAddressesTable, /**< */ 544/* 0x03 */ MIB_dot11WepDefaultKeyId, /**< */ 545/* 0x04 */ MIB_dot11CurrentTxPowerLevel, /**< */ 546/* 0x05 */ MIB_dot11RTSThreshold, /**< */ 547/* 0x06 */ MIB_ctsToSelf, /**< */ 548/* 0x07 */ MIB_arpIpAddressesTable, /**< */ 549/* 0x08 */ MIB_templateFrame, /**< */ 550/* 0x09 */ MIB_rxFilter, /**< */ 551/* 0x0A */ MIB_beaconFilterIETable, /**< */ 552/* 0x0B */ MIB_beaconFilterEnable, /**< */ 553/* 0x0C */ MIB_sleepMode, /**< */ 554/* 0x0D */ MIB_wlanWakeUpInterval, /**< */ 555/* 0x0E */ MIB_beaconLostCount, /**< */ 556/* 0x0F */ MIB_rcpiThreshold, /**< */ 557/* 0x10 */ MIB_statisticsTable, /**< */ 558/* 0x11 */ MIB_ibssPsConfig, /**< */ 559/* 0x12 */ MIB_txRatePolicy, /**< */ 560/* 0x13 */ MIB_countersTable, /**< */ 561/* 0x14 */ MIB_btCoexsitenceMode, /**< */ 562/* 0x15 */ MIB_btCoexistenceParameters, /**< */ 563 564 /* must be last!!! */ 565 MIB_lastElem = 0xFFFF /**< */ 566 567} EMib; 568 569/** \enum ETwdParam 570 * \brief TWD Control parameter ID 571 * 572 * \par Description 573 * FW Parmaeter Information Identifier 574 * 575 * \sa TWD_SetParam, TWD_GetParam 576 */ 577typedef enum 578{ 579/* 0x01 */ TWD_RTS_THRESHOLD_PARAM_ID = 0x01, /**< */ 580/* 0x02 */ TWD_FRAG_THRESHOLD_PARAM_ID, /**< */ 581/* 0x03 */ TWD_COUNTERS_PARAM_ID, /**< */ 582/* 0x04 */ TWD_LISTEN_INTERVAL_PARAM_ID, /**< */ 583/* 0x05 */ TWD_BEACON_INTERVAL_PARAM_ID, /**< */ 584/* 0x06 */ TWD_TX_POWER_PARAM_ID, /**< */ 585/* 0x07 */ TWD_CLK_RUN_ENABLE_PARAM_ID, /**< */ 586/* 0x08 */ TWD_QUEUES_PARAM_ID, /**< */ 587/* 0x09 */ TWD_TX_RATE_CLASS_PARAM_ID, /**< */ 588/* 0x0A */ TWD_MAX_TX_MSDU_LIFE_TIME_PARAM_ID, /**< */ 589/* 0x0B */ TWD_MAX_RX_MSDU_LIFE_TIME_PARAM_ID, /**< */ 590/* 0x0C */ TWD_CTS_TO_SELF_PARAM_ID, /**< */ 591/* 0x0D */ TWD_RX_TIME_OUT_PARAM_ID, /**< */ 592/* 0x0E */ TWD_BCN_BRC_OPTIONS_PARAM_ID, /**< */ 593/* 0x0F */ TWD_AID_PARAM_ID, /**< */ 594/* 0x10 */ TWD_RSN_HW_ENC_DEC_ENABLE_PARAM_ID, /**< */ 595/* 0x11 */ TWD_RSN_KEY_ADD_PARAM_ID, /**< */ 596/* 0x12 */ TWD_RSN_KEY_REMOVE_PARAM_ID, /**< */ 597/* 0x13 */ TWD_RSN_DEFAULT_KEY_ID_PARAM_ID, /**< */ 598/* 0x14 */ TWD_RSN_SECURITY_MODE_PARAM_ID, /**< */ 599/* 0x15 */ TWD_RSN_SECURITY_ALARM_CB_SET_PARAM_ID, /**< */ 600/* 0x16 */ TWD_ACX_STATISTICS_PARAM_ID, /**< */ 601/* 0x17 */ TWD_MEDIUM_OCCUPANCY_PARAM_ID, /**< */ 602/* 0x18 */ TWD_DISABLE_POWER_MANAGEMENT_AUTO_CONFIG_PARAM_ID, /**< */ 603/* 0x19 */ TWD_ENABLE_POWER_MANAGEMENT_AUTO_CONFIG_PARAM_ID, /**< */ 604/* 0x1A */ TWD_SG_ENABLE_PARAM_ID, /**< */ 605/* 0x1B */ TWD_SG_CONFIG_PARAM_ID, /**< */ 606#ifdef XCC_MODULE_INCLUDED 607/* 0x1C */ TWD_RSN_XCC_SW_ENC_ENABLE_PARAM_ID, /**< */ 608/* 0x1D */ TWD_RSN_XCC_MIC_FIELD_ENABLE_PARAM_ID, /**< */ 609#endif /* XCC_MODULE_INCLUDED*/ 610/* 0x1E */ TWD_TX_OP_LIMIT_PARAM_ID, /**< */ 611/* 0x1F */ TWD_NOISE_HISTOGRAM_PARAM_ID, /**< */ 612/* 0x20 */ TWD_TSF_DTIM_MIB_PARAM_ID, /**< */ 613/* 0x21 */ TWD_REVISION_PARAM_ID, /**< */ 614/* 0x22 */ TWD_CURRENT_CHANNEL_PARAM_ID, /**< */ 615/* 0x23 */ TWD_RADIO_TEST_PARAM_ID, /**< */ 616/* 0x24 */ TWD_RSSI_LEVEL_PARAM_ID, /**< */ 617/* 0x25 */ TWD_SNR_RATIO_PARAM_ID, /**< */ 618/* 0x26 */ TWD_COEX_ACTIVITY_PARAM_ID, /**< */ 619/* 0x27 */ TWD_FM_COEX_PARAM_ID, /**< */ 620 621 /* must be last!!! */ 622/* 0x28 */ TWD_LAST_PARAM_ID /**< */ 623} ETwdParam; 624 625/** \enum ETwdCallbackOwner 626 * \brief TWD Callback Module owner ID 627 * 628 * \par Description 629 * The Owner ID defines a specific TWD Module 630 * 631 * \sa ETwdEventId, TWD_RegisterCb 632 */ 633typedef enum 634{ 635 TWD_OWNER_DRIVER_TX_XFER = 0x0100, /**< TX Xfer Owner ID */ 636 TWD_OWNER_RX_XFER = 0x0200, /**< RX Xfer Owner ID */ 637 TWD_OWNER_SELF = 0x0300, /**< Self Owner ID */ 638 TWD_OWNER_MAC_SERVICES = 0x0400, /**< MAC Services Owner ID */ 639 TWD_OWNER_TX_RESULT = 0x0500, /**< TX Result Owner ID */ 640 TWD_OWNER_SELF_CONFIG = 0x0600, /**< Self configuration of Owner ID */ 641 TWD_OWNER_RX_QUEUE = 0x0700, /**< RX Queue Owner ID */ 642 TWD_OWNER_TX_HW_QUEUE = 0x0800 /**< TX HW Queue Owner ID */ 643 644} ETwdCallbackOwner; 645 646/** \enum ETwdIntCallbackId 647 * \brief TWD Internal Callbacks ID 648 * 649 * \par Description 650 * The Owner ID defines a specific TWD Internal CB 651 * 652 * \sa ETwdEventId 653 */ 654typedef enum 655{ 656 TWD_INT_SEND_PACKET_TRANSFER = 0x00 , /**< Tx Data Path Send Callback */ 657 TWD_INT_SEND_PACKET_COMPLETE , /**< Tx Data Path Complete Callback */ 658 TWD_INT_UPDATE_BUSY_MAP , /**< Tx Data Path Update-Busy-Map Callback */ 659 660 /* Rx Data Path Callbacks */ 661 TWD_INT_RECEIVE_PACKET = 0x10 , /**< Rx Data Path Receive Packet Callback */ 662 TWD_INT_REQUEST_FOR_BUFFER , /**< Rx Data Path Request for buffer Callback */ 663 664 /* TWD Callbacks */ 665 TWD_INT_COMMAND_COMPLETE = 0x20 , /**< TWD internal Command Complete Callback */ 666 TWD_INT_EVENT_FAILURE /**< TWD internal Event Failure handle Callback */ 667 668} ETwdIntCallbackId; 669 670/** \enum ETwdOwnEventId 671 * \brief Event Mail Box ID 672 * 673 * \par Description 674 * Clients That expects an event should register for it, 675 * and Mask/UnMask Events with this ID 676 * 677 * \sa 678 */ 679/* Note: changes here should be reflected also in eventTable in eventMbox.c !!! */ 680typedef enum 681{ 682 /*Regular events*/ 683/* 0 */ TWD_OWN_EVENT_RSSI_SNR_TRIGGER_0 = 0, /**< */ 684/* 1 */ TWD_OWN_EVENT_RSSI_SNR_TRIGGER_1, /**< */ 685/* 2 */ TWD_OWN_EVENT_RSSI_SNR_TRIGGER_2, /**< */ 686/* 3 */ TWD_OWN_EVENT_RSSI_SNR_TRIGGER_3, /**< */ 687/* 4 */ TWD_OWN_EVENT_RSSI_SNR_TRIGGER_4, /**< */ 688/* 5 */ TWD_OWN_EVENT_RSSI_SNR_TRIGGER_5, /**< */ 689/* 6 */ TWD_OWN_EVENT_RSSI_SNR_TRIGGER_6, /**< */ 690/* 7 */ TWD_OWN_EVENT_RSSI_SNR_TRIGGER_7, /**< */ 691/* 8 */ TWD_OWN_EVENT_MEASUREMENT_START, /**< */ 692/* 9 */ TWD_OWN_EVENT_MEASUREMENT_COMPLETE, /**< */ 693/* 10 */ TWD_OWN_EVENT_SCAN_CMPLT, /**< */ 694/* 11 */ TWD_OWN_EVENT_SPS_SCAN_CMPLT, /**< */ 695/* 12 */ TWD_OWN_EVENT_AP_DISCOVERY_COMPLETE, /**< */ 696/* 13 */ TWD_OWN_EVENT_PS_REPORT, /**< */ 697/* 14 */ TWD_OWN_EVENT_PSPOLL_DELIVERY_FAILURE, /**< */ 698/* 15 */ TWD_OWN_EVENT_DISCONNECT_COMPLETE, /**< */ 699/* 16 */ TWD_OWN_EVENT_JOIN_CMPLT, /**< */ 700/* 17 */ TWD_OWN_EVENT_SWITCH_CHANNEL_CMPLT, /**< */ 701/* 18 */ TWD_OWN_EVENT_BSS_LOSE, /**< */ 702/* 19 */ TWD_OWN_EVENT_BSS_REGAIN, /**< */ 703/* 20 */ TWD_OWN_EVENT_MAX_TX_RETRY, /**< */ 704/* 21 */ RESERVED21, /**< */ 705/* 22 */ TWD_OWN_EVENT_SOFT_GEMINI_SENSE, /**< */ 706/* 23 */ TWD_OWN_EVENT_SOFT_GEMINI_PREDIC, /**< */ 707/* 24 */ TWD_OWN_EVENT_SOFT_GEMINI_AVALANCHE, /**< */ 708/* 25 */ TWD_OWN_EVENT_PLT_RX_CALIBRATION_COMPLETE, /**< */ 709/* 26 */ TWD_DBG_EVENT, /**< */ 710/* 27 */ TWD_HEALTH_CHECK_REPLY_EVENT, /**< */ 711/* 28 */ TWD_OWN_EVENT_PERIODIC_SCAN_COMPLETE, /**< */ 712/* 29 */ TWD_OWN_EVENT_PERIODIC_SCAN_REPORT, /**< */ 713/* 30 */ TWD_BA_SESSION_TEAR_DOWN_EVENT, /**< */ 714/* 31 */ TWD_OWN_EVENT_ALL, /**< */ 715/* 32 */ TWD_OWN_EVENT_MAX /**< */ 716 717} ETwdOwnEventId; 718 719/** \enum ETwdEventId 720 * \brief TNETW Driver Event ID 721 * 722 * \par Description 723 * The TWD Event ID is used by user for registering a TWD Internal CB 724 * which will handle a TWD Event. 725 * Each field in this enum is an ID of TWD Event, and is combined of two IDs: 726 * TWD CB Owner (Module) ID and TWD Internal CB ID. Therefore, the CB is registered accordeing to 727 * Module (Owner) and Internal CB Id. 728 * 729 * \sa TWD_RegisterCb, ETwdCallbackOwner, ETwdIntCallbackId 730 */ 731typedef enum 732{ 733 /* Internal Failure Event Callbacks */ 734 TWD_EVENT_FAILURE = TWD_OWNER_SELF | TWD_INT_EVENT_FAILURE, /**< Failure Internal Event ID */ 735 TWD_EVENT_COMMAND_COMPLETE = TWD_OWNER_SELF | TWD_INT_COMMAND_COMPLETE, /**< Command Complete Internal Event ID */ 736 737 /* Tx Data Path Callbacks */ 738 TWD_EVENT_TX_XFER_SEND_PKT_TRANSFER = TWD_OWNER_DRIVER_TX_XFER | TWD_INT_SEND_PACKET_TRANSFER, /**< TX Data Path Send Packet Event ID */ 739 TWD_EVENT_TX_RESULT_SEND_PKT_COMPLETE = TWD_OWNER_TX_RESULT | TWD_INT_SEND_PACKET_COMPLETE, /**< TX Data Path Send Packet Complete Event ID */ 740 TWD_EVENT_TX_HW_QUEUE_UPDATE_BUSY_MAP = TWD_OWNER_TX_HW_QUEUE | TWD_INT_UPDATE_BUSY_MAP, /**< TX Data Path Update-Busy-Map Event ID */ 741 742 /* Rx Data Path Callbacks */ 743 TWD_EVENT_RX_REQUEST_FOR_BUFFER = TWD_OWNER_RX_XFER | TWD_INT_REQUEST_FOR_BUFFER, /**< RX Data Path Request for Buffer Internal Event ID */ 744 TWD_EVENT_RX_RECEIVE_PACKET = TWD_OWNER_RX_QUEUE | TWD_INT_RECEIVE_PACKET /**< RX Data Path Receive Packet Internal Event ID */ 745 746} ETwdEventId; 747 748#ifdef TI_DBG 749/** \enum ETwdPrintInfoType 750 * \brief TWD print functions codes 751 * 752 * \par Description 753 * Used for Debug - determines which Tx Info to print 754 * 755 * \sa TWD_PrintTxInfo 756 */ 757typedef enum 758{ 759/* 0 */ TWD_PRINT_TX_CTRL_BLK_TBL = 0, /**< Print TX Control Block Information */ 760/* 1 */ TWD_PRINT_TX_HW_QUEUE_INFO, /**< Print TX HW Queue Information */ 761/* 2 */ TWD_PRINT_TX_XFER_INFO, /**< Print TX XFER Information */ 762/* 3 */ TWD_PRINT_TX_RESULT_INFO, /**< Print TX Result Information */ 763/* 4 */ TWD_CLEAR_TX_RESULT_INFO /**< Clear TX Result Information */ 764 765} ETwdPrintInfoType; 766#endif 767 768/** \enum EIpVer 769 * \brief IP Version 770 * 771 * \par Description 772 * 773 * \sa TWD_PrintTxInfo 774 */ 775typedef enum 776{ 777/* 0 */ IP_VER_4 = 0, /**< */ 778/* 1 */ IP_VER_6 /**< */ 779 780} EIpVer; 781 782/** \enum EKeyType 783 * \brief Key Type 784 * 785 * \par Description 786 * Security Key Type 787 * 788 * \sa TSecurityKeys 789 */ 790typedef enum 791{ 792/* 0 */ KEY_NULL = 0, /**< */ 793/* 1 */ KEY_WEP, /**< */ 794/* 2 */ KEY_TKIP, /**< */ 795/* 3 */ KEY_AES, /**< */ 796/* 4 */ KEY_XCC, /**< */ 797#ifdef GEM_SUPPORTED 798 /* 5 */ KEY_GEM 799#endif 800 801} EKeyType; 802 803/** \enum ERegistryTxRate 804 * \brief TX Rate Type 805 * 806 * \par Description 807 * 808 * \sa 809 */ 810/* Make it same as "rate_e" */ 811typedef enum 812{ 813/* This value is reserved if this enum is used for MgmtCtrlTxRate - the auto mode is only valid for data packets */ 814/* 0 */ REG_RATE_AUTO_BIT = 0, /**< */ 815/* 1 */ REG_RATE_1M_BIT, /**< */ 816/* 2 */ REG_RATE_2M_BIT, /**< */ 817/* 3 */ REG_RATE_5_5M_CCK_BIT, /**< */ 818/* 4 */ REG_RATE_11M_CCK_BIT, /**< */ 819/* 5 */ REG_RATE_22M_PBCC_BIT, /**< */ 820/* 6 */ REG_RATE_6M_OFDM_BIT, /**< */ 821/* 7 */ REG_RATE_9M_OFDM_BIT, /**< */ 822/* 8 */ REG_RATE_12M_OFDM_BIT, /**< */ 823/* 9 */ REG_RATE_18M_OFDM_BIT, /**< */ 824/* 10 */ REG_RATE_24M_OFDM_BIT, /**< */ 825/* 11 */ REG_RATE_36M_OFDM_BIT, /**< */ 826/* 12 */ REG_RATE_48M_OFDM_BIT, /**< */ 827/* 13 */ REG_RATE_54M_OFDM_BIT, /**< */ 828/* 14 */ REG_RATE_MCS0_OFDM_BIT, /**< */ 829/* 15 */ REG_RATE_MCS1_OFDM_BIT, /**< */ 830/* 16 */ REG_RATE_MCS2_OFDM_BIT, /**< */ 831/* 17 */ REG_RATE_MCS3_OFDM_BIT, /**< */ 832/* 18 */ REG_RATE_MCS4_OFDM_BIT, /**< */ 833/* 19 */ REG_RATE_MCS5_OFDM_BIT, /**< */ 834/* 20 */ REG_RATE_MCS6_OFDM_BIT, /**< */ 835/* 21 */ REG_RATE_MCS7_OFDM_BIT /**< */ 836 837} ERegistryTxRate; 838 839/** \enum EFailureEvent 840 * \brief Failure Event 841 * 842 * \par Description 843 * Used as a parameter for Failure Event CB - 844 * Inicates Failure Event ID, according which the Failure 845 * Event's data is driven 846 * 847 * \sa TWD_RegisterOwnCb, TFailureEventCb 848 */ 849typedef enum 850{ 851/* -1 */ NO_FAILURE = -1, /**< No Failure Event */ 852/* 0 */ NO_SCAN_COMPLETE_FAILURE = 0, /**< No Scan Complete Failure Event */ 853/* 1 */ MBOX_FAILURE, /**< Mail Box Failure Event */ 854/* 2 */ HW_AWAKE_FAILURE, /**< HW Awake Failure Event */ 855/* 3 */ TX_STUCK, /**< TX STUCK Failure Event */ 856/* 4 */ DISCONNECT_TIMEOUT, /**< Disconnect Timeout Failure Event */ 857/* 5 */ POWER_SAVE_FAILURE, /**< Power Save Failure Event */ 858/* 6 */ MEASUREMENT_FAILURE, /**< Measurement Failure Event */ 859/* 7 */ BUS_FAILURE, /**< Bus Failure Event */ 860/* 8 */ HW_WD_EXPIRE, /**< HW Watchdog Expire Event */ 861/* 9 */ RX_XFER_FAILURE, /**< Rx pkt xfer failure */ 862 863/* must be last!!! */ 864/* 10 */ MAX_FAILURE_EVENTS /**< Maximum number of Failure Events */ 865 866} EFailureEvent; 867 868/** \enum ETemplateType 869 * \brief Template Type 870 * 871 * \par Description 872 * Used for setting/Getting a Template to/from FW 873 * 874 * \sa TWD_CmdTemplate, TWD_WriteMibTemplateFrame, TSetTemplate TWD_GetTemplate 875 */ 876typedef enum 877{ 878/* 0 */ NULL_DATA_TEMPLATE = 0, /**< NULL Data Template */ 879/* 1 */ BEACON_TEMPLATE, /**< Beacon Template */ 880/* 2 */ PROBE_REQUEST_TEMPLATE, /**< PROBE Request Template */ 881/* 3 */ PROBE_RESPONSE_TEMPLATE, /**< PROBE Response Template */ 882/* 4 */ QOS_NULL_DATA_TEMPLATE, /**< Quality Of Service NULL Data Template */ 883/* 5 */ PS_POLL_TEMPLATE, /**< Power Save Poll Template */ 884/* 6 */ KEEP_ALIVE_TEMPLATE, /**< Keep Alive Template */ 885/* 7 */ DISCONN_TEMPLATE /**< Disconn (Deauth/Disassoc) Template */ 886} ETemplateType; 887 888 889 890 891typedef enum 892{ 893 KEY_WEP_DEFAULT = 0, 894 KEY_WEP_ADDR = 1, 895 KEY_AES_GROUP = 4, 896 KEY_AES_PAIRWISE = 5, 897 KEY_WEP_GROUP = 6, 898 KEY_TKIP_MIC_GROUP = 10, 899 KEY_TKIP_MIC_PAIRWISE = 11 900} KeyType_enum; 901 902 903/** \enum ECipherSuite 904 * \brief CHIPHER Suite 905 * 906 * \par Description 907 * Available cipher suites for admission control 908 * 909 * \sa 910 */ 911typedef enum 912{ 913/* 0 */ TWD_CIPHER_NONE = 0, /**< no cipher suite */ 914/* 1 */ TWD_CIPHER_WEP, /**< WEP-40 cipher suite */ 915/* 2 */ TWD_CIPHER_TKIP, /**< TKIP cipher suite */ 916/* 3 */ TWD_CIPHER_AES_WRAP, /**< AES WRAP cipher suite */ 917/* 4 */ TWD_CIPHER_AES_CCMP, /**< AES CCMP cipher suite */ 918/* 5 */ TWD_CIPHER_WEP104, /**< WEP-104 cipher suite */ 919/* 6 */ TWD_CIPHER_CKIP, /**< CKIP cipher suite */ 920#ifdef GEM_SUPPORTED 921 /* 7 */ TWD_CIPHER_GEM, /**< GEM cipher suite */ 922#endif 923 TWD_CIPHER_MAX, 924 925 TWD_CIPHER_UNKNOWN = 255 /**< UNKNOWN chpiher suite */ 926 927} ECipherSuite; 928 929/** \enum E80211PsMode 930 * \brief 802.11 Power Save Mode 931 * 932 * \par Description 933 * 934 * \sa TWD_Scan, TWD_SetPsMode 935 */ 936typedef enum 937{ 938/* 0 */ POWER_SAVE_OFF = 0, /**< power save 802.11 OFF */ 939/* 1 */ POWER_SAVE_ON, /**< power save 802.11 ON */ 940/* 2 */ POWER_SAVE_KEEP_CURRENT /**< power save 802.11 don't change */ 941 942} E80211PsMode; 943 944/** \enum E80211PsStatus 945 * \brief Set Power Save mode status 946 * 947 * \par Description 948 * 949 * \sa 950 */ 951typedef enum 952{ 953/* 1 */ POWER_SAVE_802_11_SUCCESS = 1, /**< power save mode Success */ 954/* 2 */ POWER_SAVE_802_11_FAIL, /**< power save mode Fail */ 955/* 3 */ POWER_SAVE_802_11_NOT_ALLOWED, /**< power save mode Not Allowed */ 956/* 4 */ POWER_SAVE_802_11_PENDING, /**< power save mode Pending */ 957/* 5 */ POWER_SAVE_802_11_IS_CURRENT /**< power save mode Is Current */ 958 959} E80211PsStatus; 960 961/** \enum EElpCtrlMode 962 * \brief ELP Control Mode 963 * 964 * \par Description 965 * 966 * \sa 967 */ 968typedef enum 969{ 970/* 0 */ ELPCTRL_MODE_NORMAL = 0, /**< ALP Control mode Normal */ 971/* 1 */ ELPCTRL_MODE_KEEP_AWAKE /**< ALP Control mode Keep Awake */ 972 973} EElpCtrlMode; 974 975/** \enum EPreamble 976 * \brief Preamble Type 977 * 978 * \par Description 979 * 980 * \sa TWD_CfgPreamble 981 */ 982typedef enum 983{ 984 PREAMBLE_LONG = 0, /**< Preamble type Long */ 985 PREAMBLE_SHORT = 1, /**< Preamble type Short */ 986 987 PREAMBLE_UNSPECIFIED = 0xFF /**< Preamble type Not Specified */ 988 989} EPreamble; 990 991/** \enum ENoiseHistogramCmd 992 * \brief Noise Histogram Type 993 * 994 * \par Description 995 * 996 * \sa TNoiseHistogram, TWD_CmdNoiseHistogram 997 */ 998typedef enum 999{ 1000 STOP_NOISE_HIST = 0, /**< Stop Noise Histogram */ 1001 START_NOISE_HIST = 1 /**< Start Noise Histogram */ 1002 1003} ENoiseHistogramCmd; 1004 1005/** \enum ETnetWakeOn 1006 * \brief ACX Wake Up Condition 1007 * 1008 * \par Description 1009 * 1010 * \sa TPowerMgmtConfig, TWD_CfgWakeUpCondition 1011 */ 1012typedef enum 1013{ 1014 1015/* 0 */ TNET_WAKE_ON_BEACON = 0, /**< Indicate the wake on event of the HW - beacon. 1016 * In this event the HW configure to be awake on every beacon. 1017 */ 1018 1019/* 1 */ TNET_WAKE_ON_DTIM, /**< Indicate the wake on event of the HW - DTIM. In this event 1020 * the HW configure to be awake on every DITM (configure by the AP). 1021 */ 1022 1023/* 2 */ TNET_WAKE_ON_N_BEACON, /**< Indicate the wake on event of the HW - listen interval. 1024 * In this event the HW configure to be awake on every 1025 * configured number of beacons. 1026 */ 1027 1028/* 3 */ TNET_WAKE_ON_N_DTIM, /**< Indicate the wake on event of the HW - listen interval. 1029 * In this event the HW configure to be awake on every 1030 * configured number of beacons. 1031 */ 1032 1033/* 4 */ TNET_WAKE_ON_HOST /**< Indicate the wake on event of the HW - Host access only 1034 */ 1035 1036} ETnetWakeOn; 1037 1038/** \enum ETxAntenna 1039 * \brief TX Antenna Types 1040 * 1041 * \par Description 1042 * 1043 * \sa TGeneralInitParams, TTwdParamContents 1044 */ 1045typedef enum 1046{ 1047 TX_ANTENNA_2 = 0, /**< */ 1048 TX_ANTENNA_1 = 1 /**< */ 1049 1050} ETxAntenna; 1051 1052/** \enum ERxAntenna 1053 * \brief RX Antenna Types 1054 * 1055 * \par Description 1056 * 1057 * \sa TGeneralInitParams, TTwdParamContents 1058 */ 1059typedef enum 1060{ 1061/* 0 */ RX_ANTENNA_1 = 0, /**< */ 1062/* 1 */ RX_ANTENNA_2, /**< */ 1063/* 2 */ RX_ANTENNA_FULL, /**< */ 1064/* 3 */ RX_ANTENNA_PARTIAL /**< */ 1065 1066} ERxAntenna; 1067 1068/** \enum EPowerPolicy 1069 * \brief Save Power Level Policy 1070 * 1071 * \par Description 1072 * 1073 * \sa TWD_CfgSleepAuth 1074 */ 1075typedef enum 1076{ 1077/* 0 */ POWERAUTHO_POLICY_ELP = 0, /**< */ 1078/* 1 */ POWERAUTHO_POLICY_PD, /**< */ 1079/* 2 */ POWERAUTHO_POLICY_AWAKE, /**< */ 1080/* 3 */ POWERAUTHO_POLICY_NUM /**< */ 1081 1082} EPowerPolicy; 1083 1084/** \enum ESoftGeminiEnableModes 1085 * \brief Soft-Gemini Enable Modes 1086 * 1087 * \par Description 1088 * 1089 * \sa 1090 */ 1091typedef enum 1092{ 1093/* 0 */ SG_DISABLE = 0, /**< */ 1094/* 1 */ SG_PROTECTIVE, /**< */ 1095/* 2 */ SG_OPPORTUNISTIC, /**< */ 1096 1097 1098} ESoftGeminiEnableModes; 1099/** \enum ESoftGeminiEnableProfile 1100 * \brief Soft-Gemini Profile Modes for S60 configuration 1101 * 1102 * \par Description 1103 * 1104 * \sa 1105 */ 1106typedef enum 1107{ 1108 BtCoexProfData = 0, 1109 BtCoexProfDataLowLatency, 1110 BtCoexProfA2DP 1111}ESoftGeminiEnableProfile; 1112 1113 1114/** \enum EMibTemplateType 1115 * \brief MIB Template type 1116 * 1117 * \par Description 1118 * 1119 * \sa 1120 */ 1121typedef enum 1122{ 1123/* 0 */ TEMPLATE_TYPE_BEACON = 0, /**< BEACON template */ 1124/* 1 */ TEMPLATE_TYPE_PROBE_REQUEST, /**< PROB template */ 1125/* 2 */ TEMPLATE_TYPE_NULL_FRAME, /**< NULL FRAM template */ 1126/* 3 */ TEMPLATE_TYPE_PROBE_RESPONSE, /**< PROB Response template */ 1127/* 4 */ TEMPLATE_TYPE_QOS_NULL_FRAME, /**< QOS Null Frame template */ 1128/* 5 */ TEMPLATE_TYPE_PS_POLL /**< Power Save Poll template */ 1129 1130} EMibTemplateType; 1131 1132 1133/** \enum ERxFailure 1134 * \brief RX Failure/Error 1135 * 1136 * \par Description 1137 * 1138 * \sa 1139 */ 1140typedef enum 1141{ 1142/* 0 */ RX_FAILURE_NONE = 0, /**< No Failure */ 1143/* 1 */ RX_FAILURE_DECRYPT, /**< DeCrypt Failure */ 1144/* 2 */ RX_FAILURE_MIC_ERROR, /**< MIC Error */ 1145} ERxFailure; 1146 1147/** \enum ETwdChannelWidth 1148 * \brief TWD Channel Width 1149 * 1150 * \par Description 1151 * Used for Configure HT Capabilities Settings 1152 * 1153 * \sa TWD_SetDefaults, TTwdHtCapabilities 1154 */ 1155typedef enum 1156{ 1157/* 0 */ CHANNEL_WIDTH_20MHZ = 0, /**< 20MHZ Channel Width */ 1158/* 1 */ CHANNEL_WIDTH_40MHZ_20MHZ /**< 40-20MHZ Channel Width */ 1159} ETwdChannelWidth; 1160 1161/** \enum ETwdRxSTBC 1162 * \brief RX STBC Spatial Stream Supported 1163 * 1164 * \par Description 1165 * Indicates how many RX STBC Spatial Stream are Supported 1166 * Used for Configure HT Capabilities Settings 1167 * 1168 * \sa TWD_SetDefaults, TTwdHtCapabilities 1169 */ 1170typedef enum 1171{ 1172/* 0 */ RXSTBC_NOT_SUPPORTED = 0, /**< No Spatial Stream Supported */ 1173/* 1 */ RXSTBC_SUPPORTED_ONE_SPATIAL_STREAM, /**< One Spatial Stream Supported */ 1174/* 2 */ RXSTBC_SUPPORTED_ONE_AND_TWO_SPATIAL_STREAMS, /**< One and Two Spatial Stream Supported */ 1175/* 3 */ RXSTBC_SUPPORTED_ONE_TWO_AND_THREE_SPATIAL_STREAMS /**< One, Two and Three Spatial Stream Supported */ 1176 1177} ETwdRxSTBC; 1178 1179/** \enum ETwdMaxAMSDU 1180 * \brief Maximum MSDU Octets 1181 * 1182 * \par Description 1183 * Used for Configure HT Capabilities Settings 1184 * 1185 * \sa TWD_SetDefaults, TTwdHtCapabilities 1186 */ 1187typedef enum 1188{ 1189/* 0 */ MAX_MSDU_3839_OCTETS = 0, /**< Maximum MSDU Octets Number: 3839 */ 1190/* 1 */ MAX_MSDU_7935_OCTETS /**< Maximum MSDU Octets Number: 7935 */ 1191 1192} ETwdMaxAMSDU; 1193 1194/** \enum ETwdMaxAMPDU 1195 * \brief Maximum MPDU Octets 1196 * 1197 * \par Description 1198 * Indicates What is the Maximum MPDU Octets Number 1199 * Used for Configure HT Capabilities Settings 1200 * 1201 * \sa TWD_SetDefaults, TTwdHtCapabilities 1202 */ 1203typedef enum 1204{ 1205/* 0 */ MAX_MPDU_8191_OCTETS = 0, /**< Maximum MPDU Octets Number: 8191 */ 1206/* 1 */ MAX_MPDU_16383_OCTETS, /**< Maximum MPDU Octets Number: 16383 */ 1207/* 2 */ MAX_MPDU_32767_OCTETS, /**< Maximum MPDU Octets Number: 32767 */ 1208/* 3 */ MAX_MPDU_65535_OCTETS /**< Maximum MPDU Octets Number: 65535 */ 1209 1210} ETwdMaxAMPDU; 1211 1212/** \enum ETwdAMPDUSpacing 1213 * \brief TWD AMPDU Spacing 1214 * 1215 * \par Description 1216 * Indicates What is the Time Spacing of AMPDU 1217 * Used for Configure HT Capabilities Settings 1218 * 1219 * \sa TWD_SetDefaults, TTwdHtCapabilities 1220 */ 1221typedef enum 1222{ 1223/* 0 */ AMPDU_SPC_NO_RESTRCITION = 0, /**< No Restriction on AMPDU Time Spacing */ 1224/* 1 */ AMPDU_SPC_1_4_MICROSECONDS, /**< 1/4 Microsecond AMPDU Time Spacing */ 1225/* 2 */ AMPDU_SPC_1_2_MICROSECONDS, /**< 1/2 Microsecond AMPDU Time Spacing */ 1226/* 3 */ AMPDU_SPC_1_MICROSECOND, /**< 1 Microsecond AMPDU Time Spacing */ 1227/* 4 */ AMPDU_SPC_2_MICROSECONDS, /**< 2 Microsecond AMPDU Time Spacing */ 1228/* 5 */ AMPDU_SPC_4_MICROSECONDS, /**< 4 Microsecond AMPDU Time Spacing */ 1229/* 6 */ AMPDU_SPC_8_MICROSECONDS, /**< 8 Microsecond AMPDU Time Spacing */ 1230/* 7 */ AMPDU_SPC_16_MICROSECONDS /**< 16 Microsecond AMPDU Time Spacing */ 1231 1232} ETwdAMPDUSpacing; 1233 1234/** \enum ETwdMcsSupport 1235 * \brief TWD MCS Support 1236 * 1237 * \par Description 1238 * BIT Mapp which Indicates What is the Tx/rx MCS Support Enabled 1239 * Used for Configure HT Capabilities Settings 1240 * 1241 * \sa TWD_SetDefaults, TTwdHtCapabilities 1242 */ 1243typedef enum 1244{ 1245/* 1 */ MCS_SUPPORT_MCS_0 = BIT_0, /**< BIT 0 */ 1246/* 2 */ MCS_SUPPORT_MCS_1 = BIT_1, /**< BIT 1 */ 1247/* 3 */ MCS_SUPPORT_MCS_2 = BIT_2, /**< BIT 2 */ 1248/* 4 */ MCS_SUPPORT_MCS_3 = BIT_3, /**< BIT 3 */ 1249/* 5 */ MCS_SUPPORT_MCS_4 = BIT_4, /**< BIT 4 */ 1250/* 6 */ MCS_SUPPORT_MCS_5 = BIT_5, /**< BIT 5 */ 1251/* 7 */ MCS_SUPPORT_MCS_6 = BIT_6, /**< BIT 6 */ 1252/* 8 */ MCS_SUPPORT_MCS_7 = BIT_7 /**< BIT 7 */ 1253 1254} ETwdMcsSupport; 1255 1256/** \enum ETwdPCOTransTime 1257 * \brief TWD PCO Transition Time 1258 * 1259 * \par Description 1260 * Indicates What is the PCO Transition Time 1261 * Used for Configure HT Capabilities Settings 1262 * 1263 * \sa TWD_SetDefaults, TTwdHtCapabilities 1264 */ 1265typedef enum 1266{ 1267/* 0 */ PCO_TRANS_TIME_NO_TRANSITION = 0, /**< No PCO Transition Time */ 1268/* 1 */ PCO_TRANS_TIME_400_MICROSECONDS, /**< PCO Transition Time: 400 Microsecond */ 1269/* 2 */ PCO_TRANS_TIME_1_5_MILLISECONDS, /**< PCO Transition Time: 1.5 Millisecond */ 1270/* 3 */ PCO_TRANS_TIME_5_MILLISECONDS /**< PCO Transition Time: 5 Millisecond */ 1271 1272} ETwdPCOTransTime; 1273 1274/** \enum ETwdHTCapabilitiesBitMask 1275 * \brief TWD HT Capabilities Bit Mask Mapping 1276 * 1277 * \par Description 1278 * Mapps the Bit Mask which are used for Making (Enabling/Disabling) 1279 * HT Capabilities 1280 * 1281 * \sa TWD_SetDefaults, TTwdHtCapabilities 1282 */ 1283typedef enum 1284{ 1285/* 1 */ CAP_BIT_MASK_GREENFIELD_FRAME_FORMAT = BIT_0, /**< BIT 0 */ 1286/* 2 */ CAP_BIT_MASK_SHORT_GI_FOR_20MHZ_PACKETS = BIT_1, /**< BIT 1 */ 1287/* 3 */ CAP_BIT_MASK_SHORT_GI_FOR_40MHZ_PACKETS = BIT_2, /**< BIT 2 */ 1288/* 4 */ CAP_BIT_MASK_SUPPORT_FOR_STBC_IN_TRANSMISSION = BIT_3, /**< BIT 3 */ 1289/* 5 */ CAP_BIT_MASK_DELAYED_BLOCK_ACK = BIT_4, /**< BIT 4 */ 1290/* 6 */ CAP_BIT_MASK_DSSS_CCK_IN_40_MHZ = BIT_5, /**< BIT 5 */ 1291/* 7 */ CAP_BIT_MASK_LSIG_TXOP_PROTECTION = BIT_6, /**< BIT 6 */ 1292/* 8 */ CAP_BIT_MASK_PCO = BIT_7, /**< BIT 7 */ 1293/* 9 */ CAP_BIT_MASK_LDPC_CODING = BIT_8 /**< BIT 8 */ 1294 1295} ETwdHTCapabilitiesBitMask; 1296 1297/** \enum ETwdMCSFeedback 1298 * \brief TWD MCS FeedBack 1299 * 1300 * \par Description 1301 * Indicates what is the MCS FeedBack Policy 1302 * Used for Configure HT Capabilities Settings 1303 * 1304 * \sa TWD_SetDefaults, TTwdHtCapabilities 1305 */ 1306typedef enum 1307{ 1308/* 0 */ MCS_FEEDBACK_NO = 0, /**< */ 1309/* 1 */ MCS_FEEDBACK_RESERVED, /**< */ 1310/* 2 */ MCS_FEEDBACK_UNSOLICTED_ONLY, /**< */ 1311/* 3 */ MCS_FEEDBACK_BOTH_SOLICTED_AND_UNSOLICTED /**< */ 1312} ETwdMCSFeedback; 1313 1314/** \enum ETwdTxMcsSet 1315 * \brief TWD TX MCS Set 1316 * 1317 * \par Description 1318 * Indicates Whether to set Tx MCS 1319 * 1320 * \sa 1321 */ 1322typedef enum 1323{ 1324 TX_MCS_SET_NO = 0, /**< Don't Set Tx MCS */ 1325 TX_MCS_SET_YES = 1 /**< Set Tx MCS */ 1326} ETwdTxMcsSet; 1327 1328/** \enum ETwdTxRxNotEqual 1329 * \brief TWD TX RX Not Equal 1330 * 1331 * \par Description 1332 * Indicates Whether the TX and RX channels are equal 1333 * 1334 * \sa 1335 */ 1336typedef enum 1337{ 1338 TX_RX_NOT_EQUAL_NO = 0, /**< TX and RX Channels are not equal */ 1339 TX_RX_NOT_EQUAL_YES = 1 /**< TX and RX Channels are equal */ 1340} ETwdTxRxNotEqual; 1341 1342/** \enum ETwdHtcSupport 1343 * \brief TWD HTc Support 1344 * 1345 * \par Description 1346 * Indicates Whether the HT Capability is Supported 1347 * 1348 * \sa 1349 */ 1350typedef enum 1351{ 1352 HTC_SUPPORT_NO = 0, /**< HT Capability is not Supported */ 1353 HTC_SUPPORT_YES = 1 /**< HT Capability is Supported */ 1354} ETwdHtcSupport; 1355 1356/** \enum ESendCompleteStatus 1357 * \brief Send complete status 1358 * 1359 * \par Description 1360 * Indicates the current Success/Failure Status of Completion of Send Operation 1361 * 1362 * \sa 1363 */ 1364typedef enum 1365{ 1366/* 0 */ SEND_COMPLETE_SUCCESS = 0, /**< Send Complete Success: Completion of Send Operation is OK 1367 */ 1368/* 1 */ SEND_COMPLETE_RETRY_EXCEEDED, /**< Send Complete Retry Exceeded: 1369 * Completion of Send Operation filed because it Exceeded Allowed retries Number 1370 */ 1371/* 2 */ SEND_COMPLETE_LIFETIME_EXCEEDED, /**< Send Complete Lifetiem Exceeded: 1372 * Completion of Send Operation failed because it Exceeded Allowed Lifetime 1373 */ 1374/* 3 */ SEND_COMPLETE_NO_LINK, /**< Send Complete No Link: 1375 * Completion of Send Operation failed because No Link was found 1376 */ 1377/* 4 */ SEND_COMPLETE_MAC_CRASHED /**< Send Complete MAC Crashed: 1378 * Completion of Send Operation failed because MAC Crashed 1379 */ 1380} ESendCompleteStatus; 1381 1382/** \enum EPacketType 1383 * \brief Packet type 1384 * 1385 * \par Description 1386 * 1387 * \sa 1388 */ 1389typedef enum 1390{ 1391/* 0 */ PACKET_DATA = 0, /**< */ 1392/* 1 */ PACKET_CTRL, /**< */ 1393/* 2 */ PACKET_MGMT /**< */ 1394 1395} EPacketType; 1396 1397/** \enum ETxHwQueStatus 1398 * \brief Status returned by txHwQueue_AllocResources 1399 * 1400 * \par Description 1401 * 1402 * \sa 1403 */ 1404typedef enum 1405{ 1406 TX_HW_QUE_STATUS_SUCCESS, /* Resources available on current queue */ 1407 TX_HW_QUE_STATUS_STOP_CURRENT, /* No resources, stop current queue and requeue the packet */ 1408 TX_HW_QUE_STATUS_STOP_NEXT /* Resources available for this packet but not for another one, 1409 so just stop the current queue */ 1410} ETxHwQueStatus; 1411 1412/** \enum ERxBufferStatus 1413 * \brief Status returned by TRequestForBufferCb 1414 * 1415 * \par Description 1416 * 1417 * \sa 1418 */ 1419typedef enum 1420{ 1421 RX_BUF_ALLOC_PENDING, 1422 RX_BUF_ALLOC_COMPLETE, 1423 RX_BUF_ALLOC_OUT_OF_MEM 1424 1425}ERxBufferStatus; 1426 1427 1428/* 1429 * -------------------------------------------------------------- 1430 * Structures 1431 * -------------------------------------------------------------- 1432 */ 1433/** 1434 * \brief Get File Callback 1435 * 1436 * \param hCbHndl - Handle to CB Object 1437 * \return void 1438 * 1439 * \par Description 1440 * The callback function type for GetFile users 1441 * 1442 * \sa TFileInfo 1443 */ 1444typedef void (*TGetFileCbFunc)(TI_HANDLE hCbHndl); 1445 1446/** \struct TFileInfo 1447 * \brief File Information 1448 * 1449 * \par Description 1450 * Contains all needed information and structures for Getting file 1451 * 1452 * \sa TWD_InitFw 1453 */ 1454typedef struct 1455{ 1456 EFileType eFileType; /**< Requested file type */ 1457 TI_UINT8 *pBuffer; /**< Pointer to Buffer into the file (or file portion) is copied from user space */ 1458 TI_UINT32 uLength; /**< Length of data currently held in pBuffer */ 1459 TI_UINT32 uOffset; /**< Offset in File of data currently held in pBuffer */ 1460 TI_UINT32 uAddress; /**< Offset in File of data currently held in pBuffer */ 1461 TI_BOOL bLast; /**< TRUE indicates that we reached end of file */ 1462 void *hOsFileDesc; /**< OAL file-descriptor handle for repeated access to same file (FW) */ 1463 TGetFileCbFunc fCbFunc; /**< CB function to call if file read is finished in a later context (future option) */ 1464 TI_HANDLE hCbHndl; /**< Handle to provide when calling fCbFunc */ 1465 TI_UINT32 uChunksLeft; /**< Chunks Left to read from File (used if file is read in chunks) */ 1466 TI_UINT32 uChunkBytesLeft; /**< Number of bytes of Last read chunk, which were not yet handled */ 1467 TI_UINT32 uCrcCalc; /**< Current Calculated CRC */ 1468} TFileInfo; 1469 1470/** \struct T80211Header 1471 * \brief 802.11 MAC header 1472 * 1473 * \par Description 1474 * 1475 * \sa 1476 */ 1477typedef struct 1478{ 1479 TI_UINT16 fc; /**< */ 1480 TI_UINT16 dur; /**< */ 1481 TMacAddr address1; /**< */ 1482 TMacAddr address2; /**< */ 1483 TMacAddr address3; /**< */ 1484 TI_UINT16 seq; /**< */ 1485 TI_UINT16 qos; /**< */ 1486 1487} T80211Header; 1488 1489/** \struct TKeepAliveParams 1490 * \brief Keep Alive Parameters 1491 * 1492 * \par Description 1493 * 1494 * \sa TWD_CfgKeepAlive 1495 */ 1496typedef struct 1497{ 1498 TI_UINT8 index; /**< */ 1499 TI_UINT8 enaDisFlag; /**< */ 1500 TI_UINT32 interval; /**< */ 1501 EKeepAliveTriggerType trigType; /**< */ 1502 1503} TKeepAliveParams; 1504 1505/** \struct TPsRxStreaming 1506 * \brief Power Save RX Streaming 1507 * 1508 * \par Description 1509 * The configuration of Rx streaming delivery in PS mode per TID 1510 * 1511 * \sa TWD_CfgKeepAlive 1512 */ 1513typedef struct 1514{ 1515 TI_UINT32 uTid; /**< The configured TID (0-7) */ 1516 TI_UINT32 uStreamPeriod; /**< The expected period between two packets of the delivered stream */ 1517 TI_UINT32 uTxTimeout; /**< Start sending triggers if no Tx traffic triggers arrive for this priod */ 1518 TI_BOOL bEnabled; /**< If TRUE enable this TID streaming, if FALSE disable it. */ 1519 1520} TPsRxStreaming; 1521 1522/** \struct TDmaParams 1523 * \brief DMA Parameters 1524 * 1525 * \par Description 1526 * Struct which holds DMA Rx/Tx Queues and Bufffers params 1527 * 1528 * \sa 1529 */ 1530typedef struct 1531{ 1532 TI_UINT32 NumRxBlocks; /**< Allocated RX memory blocks number */ 1533 TI_UINT32 NumTxBlocks; /**< Allocated TX memory blocks number */ 1534 TI_UINT8 NumStations; /**< Number of Stations */ 1535 void *fwTxResultInterface; /**< RX minimum Memory block number */ 1536 TI_UINT8 *fwRxCBufPtr; /**< Pointer to FW RX Control Buffer */ 1537 TI_UINT8 *fwTxCBufPtr; /**< Pointer to FW TX Control Buffer */ 1538 void *fwRxControlPtr; /**< Pointer to FW TX Control */ 1539 void *fwTxControlPtr; /**< Pointer to FW RX Control */ 1540 TI_UINT32 PacketMemoryPoolStart; /**< RX Memory block offset */ 1541} TDmaParams; 1542 1543/** \struct TSecurityKeys 1544 * \brief Security Key 1545 * 1546 * \par Description 1547 * Struct which holds Security Key Parameters 1548 * Used for handling DMA 1549 * 1550 * \sa 1551 */ 1552typedef struct 1553{ 1554 EKeyType keyType; /**< Security Key Type (WEP, TKIP etc.) */ 1555 TI_UINT32 encLen; /**< Security Key length in bytes */ 1556 TI_UINT8 encKey[MAX_KEY_LEN]; /**< Security Key Encoding */ 1557 TI_UINT8 micRxKey[MAX_KEY_LEN]; /**< MIC RX Security Key */ 1558 TI_UINT8 micTxKey[MAX_KEY_LEN]; /**< MIC TX Security Key */ 1559 TI_UINT32 keyIndex; /**< Security Key Index (id=0 is broadcast key) */ 1560 TMacAddr macAddress; /**< Security Key MAC Address */ 1561 TI_UINT8 keyRsc[KEY_RSC_LEN]; /**< Security Key RSC */ 1562 1563} TSecurityKeys; 1564 1565/** \struct TxPktParams_t 1566 * \brief TX Packet Parameters 1567 * 1568 * \par Description 1569 * Tx Control-Block Packet parameters that are not included in the Tx-descriptor 1570 * 1571 * \sa 1572 */ 1573typedef struct 1574{ 1575 void * pInputPkt; /**< The input packet to the Tx path, either OS packet or raw buffer (see RAW_BUF_PKT flag) */ 1576 TI_UINT32 uInputPktLen; /**< The input packet length in bytes (for freeing it in case of raw buffer) */ 1577 TI_UINT32 uDriverDelay; /**< The time in uSec the pkt was delayed in the driver until Xfer */ 1578 TI_UINT8 uPktType; /**< See TX_PKT_TYPE_xxxx above */ 1579 TI_UINT8 uHeadroomSize; /**< Only for WHA - headroom in bytes before the payload in the packet buffer */ 1580 TI_UINT16 uFlags; /**< See TX_CTRL_FLAG__xxxx above */ 1581 1582} TTxPktParams; 1583 1584 1585/** \struct TTxCtrlBlk 1586 * \brief TX Control Block Entry 1587 * 1588 * \par Description 1589 * Contains the Tx packet parameters required for the Tx process, including 1590 * the Tx descriptor and the attributes required for HW-queue calculations. 1591 * TX Control Block Entry is allocated for each packet sent from the upper 1592 * driver and freed upon Tx-complete. 1593 * The entry index is the descriptor-ID. It is written in the descriptor and 1594 * copied back into the tx-complete results 1595 * 1596 * \sa SendPacketTranferCB_t, SendPacketDebugCB_t, TWD_txCtrlBlk_alloc, TWD_txCtrlBlk_free, TWD_txCtrlBlk_GetPointer, TWD_txXfer_sendPacket 1597 */ 1598typedef struct _TTxCtrlBlk 1599{ 1600 TTxnStruct tTxnStruct; /**< The transaction structure for packet queueing and transaction via the bus driver */ 1601 TxIfDescriptor_t tTxDescriptor; /**< The packet descriptor copied to the FW */ 1602 TI_UINT8 aPktHdr[MAX_HEADER_SIZE]; /**< The packet header + extensions (see description of MAX_HEADER_SIZE above) */ 1603 TTxPktParams tTxPktParams; /**< Per packet parameters not included in the descriptor */ 1604 struct _TTxCtrlBlk *pNextFreeEntry; /**< Pointer to the next free entry */ 1605 1606} TTxCtrlBlk; 1607 1608 1609/** \struct TTemplateParams 1610 * \brief Template Parameters 1611 * 1612 * \par Description 1613 * 1614 * \sa TWD_GetTemplate 1615 */ 1616typedef struct 1617{ 1618 TI_UINT32 Size; /**< Template size */ 1619 TI_UINT32 uRateMask; /**< The rates bitmap for the frame */ 1620 TI_UINT8 Buffer[MAX_TEMPLATE_SIZE]; /**< Buffer which holds Template */ 1621 1622} TTemplateParams; 1623 1624/** \struct TFwInfo 1625 * \brief FW Information 1626 * 1627 * \par Description 1628 * 1629 * \sa TWD_GetFWInfo 1630 */ 1631typedef struct 1632{ 1633 TI_UINT8 fwVer[FW_VERSION_LEN]; /**< Firmware version - null terminated string */ 1634 TMacAddr macAddress; /**< MAC Address */ 1635 TI_UINT8 txPowerTable[NUMBER_OF_SUB_BANDS_E][NUM_OF_POWER_LEVEL]; /**< Maximun Dbm in Dbm/10 units */ 1636 TI_UINT32 uHardWareVersion; /**< HW Version */ 1637 1638} TFwInfo; 1639 1640/** \struct TJoinBss 1641 * \brief Join BSS Parameters 1642 * 1643 * \par Description 1644 * 1645 * \sa TWD_CmdJoinBss 1646 */ 1647typedef struct 1648{ 1649 ScanBssType_e bssType; /**< */ 1650 TI_UINT16 beaconInterval; /**< */ 1651 TI_UINT16 dtimInterval; /**< */ 1652 TI_UINT8 channel; /**< */ 1653 TI_UINT8* pBSSID; /**< */ 1654 TI_UINT8* pSSID; /**< */ 1655 TI_UINT8 ssidLength; /**< */ 1656 TI_UINT32 basicRateSet; /**< */ 1657 ERadioBand radioBand; /**< */ 1658 /* Current Tx-Session index as configured to FW in last Join command */ 1659 TI_UINT16 txSessionCount; /**< */ 1660 1661} TJoinBss; 1662 1663/** \struct TSetTemplate 1664 * \brief Set Template Parameters 1665 * 1666 * \par Description 1667 * 1668 * \sa TWD_CmdTemplate, TWD_WriteMibTemplateFrame 1669 */ 1670typedef struct 1671{ 1672 ETemplateType type; /**< Template Type */ 1673 TI_UINT8 index; /**< only valid for keep-alive templates */ 1674 TI_UINT8* ptr; /**< Pointer to Template Data */ 1675 TI_UINT32 len; /**< Pointer to Template Length */ 1676 ERadioBand eBand; /**< only valid for probe request templates */ 1677 TI_UINT32 uRateMask;/**< The rate mask to use for this frame */ 1678 1679} TSetTemplate; 1680 1681/** \struct TNoiseHistogram 1682 * \brief Noise Histogram Parameters 1683 * 1684 * \par Description 1685 * 1686 * \sa TWD_CmdNoiseHistogram 1687 */ 1688typedef struct 1689{ 1690 ENoiseHistogramCmd cmd; /**< Noise Histogram Command (Start/Atop) */ 1691 TI_UINT16 sampleInterval; /**< Sample Interval (in microsec) */ 1692 TI_UINT8 ranges [MEASUREMENT_NOISE_HISTOGRAM_NUM_OF_RANGES]; /**< Noise Histogram Ranges */ 1693 1694} TNoiseHistogram; 1695 1696/** \struct TInterogateCmdHdr 1697 * \brief Interrogate Command Header 1698 * 1699 * \par Description 1700 * 1701 * \sa TNoiseHistogramResults, TMediumOccupancy, TTsfDtim 1702 */ 1703typedef struct 1704{ 1705 TI_UINT16 id; /**< */ 1706 TI_UINT16 len; /**< */ 1707 1708} TInterogateCmdHdr; 1709 1710/** \struct TNoiseHistogramResults 1711 * \brief Noise Histogram Results 1712 * 1713 * \par Description 1714 * Used for Getting Noise Histogram Parameters from FW 1715 * 1716 * \sa 1717 */ 1718typedef struct 1719{ 1720 TInterogateCmdHdr noiseHistResCmdHdr; /**< Results Header */ 1721 TI_UINT32 counters[NUM_OF_NOISE_HISTOGRAM_COUNTERS]; /**< Counters */ 1722 TI_UINT32 numOfLostCycles; /**< Number of Lost Cycles */ 1723 TI_UINT32 numOfTxHwGenLostCycles; /**< Number of Tx Hw Gen Lost Cycles */ 1724 TI_UINT32 numOfRxLostCycles; /**< Number of RX Hw Gen Lost Cycles */ 1725 1726} TNoiseHistogramResults; 1727 1728/** \struct TMediumOccupancy 1729 * \brief Medium Occupancy Parameters 1730 * 1731 * \par Description 1732 * Used for Getting Medium Occupancy (Channal Load) from FW 1733 * or print Medium Occupancy (Channal Load) Debug Information 1734 * 1735 * \sa 1736 */ 1737typedef struct 1738{ 1739 TInterogateCmdHdr mediumOccupCmdHdr; /**< Command Header */ 1740 TI_UINT32 MediumUsage; /**< Medium Occupancy Usage Time */ 1741 TI_UINT32 Period; /**< Medium Occupancy Period Time */ 1742 1743} TMediumOccupancy; 1744 1745/** \struct TTsfDtim 1746 * \brief Beacon TSF and DTIM count 1747 * 1748 * \par Description 1749 * Used for Getting updated current TSF and last Beacon TSF and DTIM Count from FW 1750 * for Scan Purposes 1751 * 1752 * \sa 1753 */ 1754typedef struct 1755{ 1756 TInterogateCmdHdr tsf_dtim_mibCmdHdr; /**< Command Header */ 1757 TI_UINT32 CurrentTSFHigh; /**< Current TSF High (of INT64) Value */ 1758 TI_UINT32 CurrentTSFLow; /**< Current TSF Low (of INT64) Value */ 1759 TI_UINT32 lastTBTTHigh; /**< Last TBTT High (of INT64) Value */ 1760 TI_UINT32 lastTBTTLow; /**< Last TBTT Low (of INT64) Value */ 1761 TI_UINT8 LastDTIMCount; /**< Last DTIM Count */ 1762 TI_UINT8 Reserved[3]; /**< Reserved */ 1763 1764} TTsfDtim; 1765 1766/** \struct TBcnBrcOptions 1767 * \brief Beacon broadcast options 1768 * 1769 * \par Description 1770 * Used for Getting/Configuring updated Beacon broadcast options from/to FW 1771 * 1772 * \sa TWD_SetDefaults 1773 */ 1774typedef struct 1775{ 1776 TI_UINT16 BeaconRxTimeout; /**< Beacon RX Timeout */ 1777 TI_UINT16 BroadcastRxTimeout; /**< Broadcast RX Timeout */ 1778 TI_UINT8 RxBroadcastInPs; /**< RX Broadcast In Power Save */ 1779 1780} TBcnBrcOptions; 1781 1782/** \struct TBeaconFilterIeTable 1783 * \brief Beacon Filter Information Elements Table 1784 * 1785 * \par Description 1786 * Used for Getting/Configuring Beacon Filter IE Table From/To FW 1787 * 1788 * \sa TWD_SetDefaults 1789 */ 1790typedef struct 1791{ 1792 TI_UINT8 numberOfIEs; /**< Number of IE Tables */ 1793 TI_UINT8 IETable[BEACON_FILTER_TABLE_MAX_SIZE]; /**< The IE table */ 1794 TI_UINT8 IETableSize; /**< number of elements in IE table */ 1795 1796} TBeaconFilterIeTable; 1797 1798/** \struct TBeaconFilterInitParams 1799 * \brief Beacon Filter Init Parameters 1800 * 1801 * \par Description 1802 * Used for Init Beacon Filter IE Table in FW 1803 * 1804 * \sa 1805 */ 1806typedef struct 1807{ 1808 TI_UINT8 desiredState; /**< Desigred state (required/not required) */ 1809 TI_UINT8 numOfStored; /**< Number of desigred Beacon Filters stored in FW */ 1810 TI_UINT8 numOfElements; /**< Number of Beacon Filter Elements stored in FW */ 1811 TI_UINT8 IETableSize; /**< The IE Table size */ 1812 TI_UINT8 reserve[3]; /**< Reserved */ 1813 TI_UINT8 IETable[BEACON_FILTER_IE_TABLE_MAX_SIZE]; /**< The IE table */ 1814 1815} TBeaconFilterInitParams; 1816 1817/** \struct TPowerMgmtConfig 1818 * \brief Power Management Configuration Parameters 1819 * 1820 * \par Description 1821 * Used for Configuring Wake-Up Conditions or Beacon Broadcast Options to FW 1822 * 1823 * \sa TWD_CfgWakeUpCondition, TWD_CfgBcnBrcOptions 1824 */ 1825typedef struct 1826{ 1827 /* power management options */ 1828 TI_UINT8 beaconListenInterval; /**< Beacon Listen Interavl: 1829 * specify how often the TNET wakes up to listen to beacon frames. 1830 * the value is expressed in units of "beacon interval" 1831 */ 1832 TI_UINT8 beaconFiltering; /**< Beacon Filtering Desigred state (required/not required) */ 1833 TI_UINT8 DTIMListenInterval; /**< DTIM Listen Interavl: 1834 * specify how often the TNET wakes up to listen to DTIM frames. the value 1835 * is expressed in units of "dtim interval" 1836 */ 1837 TI_UINT8 NConsecutiveBeaconMiss; /**< Consecutive Beacon Miss */ 1838 TI_UINT8 hangoverPeriod; /**< Hang Over Period */ 1839 TI_UINT8 HwPsPollResponseTimeout; /**< Power-Save Polling Response Time Out */ 1840 TI_UINT32 BaseBandWakeUpTime; /**< Base Band Wakeup Time */ 1841 TI_UINT32 beaconReceiveTime; /**< Beacon Receive Time */ 1842 TI_BOOL beaconMissInterruptEnable; /**< Enable/Disable Beacon Miss Interrupt */ 1843 TI_BOOL rxBroadcast; /**< Enable/Disable receive of broadcast packets in Power-Save mode */ 1844 TI_BOOL hwPsPoll; /**< Enable/Disable Power-Save Polling */ 1845 /* Power Management Configuration IE */ 1846 TI_BOOL ps802_11Enable; /**< Enable/Disable 802.11 Power-Save */ 1847 TI_UINT8 needToSendNullData; /**< Indicates if need to send NULL data */ 1848 TI_UINT8 numNullPktRetries; /**< Number of NULL Packets allowed retries */ 1849 TI_UINT8 hangOverPeriod; /**< HangOver period: 1850 * Indicates what is the time in TUs during which the WiLink remains awake 1851 * after sending an MPDU with the Power Save bit set (indicating that the 1852 * station is to go into Power Save mode). Setting bit 0 does not affect 1853 * the hangover period 1854 */ 1855 TI_UINT16 NullPktRateModulation; /**< Null Packet Rate Modulation */ 1856 /* PMConfigStruct */ 1857 TI_BOOL ELPEnable; /**< Enable/Disable ELP */ 1858 TI_UINT32 BBWakeUpTime; /**< Base Band Wakeup Time */ 1859 TI_UINT32 PLLlockTime; /**< PLL Lock Time */ 1860 /* AcxBcnBrcOptions */ 1861 TBcnBrcOptions BcnBrcOptions; /**< Beacon broadcast options */ 1862 /* ACXWakeUpCondition */ 1863 ETnetWakeOn tnetWakeupOn; /**< ACX Wake Up Condition */ 1864 TI_UINT8 listenInterval; /**< ACX Listen Interval */ 1865 /* No answer after Ps-Poll work-around */ 1866 TI_UINT8 ConsecutivePsPollDeliveryFailureThreshold; /**< Power-Save Polling Delivery Failure Threshold */ 1867 1868} TPowerMgmtConfig; 1869 1870/** \struct TPowerSaveParams 1871 * \brief Power Save Parameters 1872 * 1873 * \par Description 1874 * 1875 * \sa 1876 */ 1877typedef struct 1878{ 1879 /* powerMgmtConfig IE */ 1880 TI_BOOL ps802_11Enable; /**< Enable/Disable 802.11 Power-Save */ 1881 TI_UINT8 needToSendNullData; /**< Indicates if need to send NULL data */ 1882 TI_UINT8 numNullPktRetries; /**< Number of NULL Packets allowed retries */ 1883 TI_UINT8 hangOverPeriod; /**< HangOver period: 1884 * Indicates what is the time in TUs during which the WiLink remains awake 1885 * after sending an MPDU with the Power Save bit set (indicating that the 1886 * station is to go into Power Save mode). Setting bit 0 does not affect 1887 * the hangover period 1888 */ 1889 EHwRateBitFiled NullPktRateModulation; /**< Null Packet Rate Modulation */ 1890 1891} TPowerSaveParams; 1892 1893/** \struct TAcQosParams 1894 * \brief AC QoS Parameters 1895 * 1896 * \par Description 1897 * Used for Configuring AC Parameters (For Quality Of Service) to FW 1898 * 1899 * \sa TWD_CfgAcParams 1900 */ 1901typedef struct 1902{ 1903 TI_UINT8 ac; /**< Access Category - The TX queue's access category */ 1904 TI_UINT8 cwMin; /**< The contention window minimum size (in slots) */ 1905 TI_UINT16 cwMax; /**< The contention window maximum size (in slots) */ 1906 TI_UINT8 aifsn; /**< The AIF value (in slots) */ 1907 TI_UINT16 txopLimit; /**< The TX Op Limit (in microseconds) */ 1908 1909} TAcQosParams; 1910 1911/** \struct TMeasurementParams 1912 * \brief AC Queues Parameters 1913 * 1914 * \par Description 1915 * Used When Send Start Measurment Command to FW 1916 * 1917 * \sa TWD_CmdMeasurement 1918 */ 1919typedef struct 1920{ 1921 TI_UINT32 ConfigOptions; /**< RX Filter Configuration Options */ 1922 TI_UINT32 FilterOptions; /**< RX Filter Options */ 1923 TI_UINT32 duration; /**< Specifies the measurement process duration in microseconds. The value of 0 means 1924 * infinite duration in which only a STOP_MEASUREMENT command can stop the measurement 1925 * process 1926 */ 1927 Channel_e channel; /**< Channel number on which the measurement is performed */ 1928 RadioBand_e band; /**< Specifies the band to which the channel belongs */ 1929 EScanResultTag eTag; /**< Scan Result Tag */ 1930 1931} TMeasurementParams; 1932 1933/** \struct TApDiscoveryParams 1934 * \brief AP Discovery Parameters 1935 * 1936 * \par Description 1937 * Used When Performing AP Discovery 1938 * 1939 * \sa TWD_CmdApDiscovery 1940 */ 1941typedef struct 1942{ 1943 TI_UINT32 ConfigOptions; /**< RX Configuration Options for measurement */ 1944 TI_UINT32 FilterOptions; /**< RX Filter Configuration Options for measurement */ 1945 TI_UINT32 scanDuration; /**< This field specifies the amount of time, in time units (TUs), to perform the AP discovery */ 1946 TI_UINT16 scanOptions; /**< This field specifies whether the AP discovery is performed by an active scan or a passive scan 1947 * 0 - ACTIVE, 1 - PASSIVE 1948 */ 1949 TI_UINT8 numOfProbRqst; /**< This field indicates the number of probe requests to send per channel, when active scan is specified 1950 * Note: for XCC measurement this value should be set to 1 1951 */ 1952 TI_UINT8 txPowerDbm; /**< TX power level to be used for sending probe requests when active scan is specified. 1953 * If 0, leave normal TX power level for this channel 1954 */ 1955 EHwRateBitFiled txdRateSet; /**< This EHwBitRate format field specifies the rate and modulation to transmit the probe request when 1956 * an active scan is specifie 1957 */ 1958 ERadioBand eBand; /**< Specifies the band to which the channel belongs */ 1959} TApDiscoveryParams; 1960 1961/** \struct TRroamingTriggerParams 1962 * \brief Roaming Trigger Parameters 1963 * 1964 * \par Description 1965 * 1966 * \sa TWD_CfgMaxTxRetry, TWD_CfgConnMonitParams 1967 */ 1968typedef struct 1969{ 1970 /* ACXConsNackTriggerParameters */ 1971 TI_UINT8 maxTxRetry; /**< The number of frames transmission failures before issuing the "Max Tx Retry" event */ 1972 1973 /* ACXBssLossTsfSynchronize */ 1974 TI_UINT16 TsfMissThreshold; /**< The number of consecutive beacons that can be lost before the WiLink raises the 1975 * SYNCHRONIZATION_TIMEOUT event 1976 */ 1977 TI_UINT16 BssLossTimeout; /**< The delay (in time units) between the time at which the device issues the SYNCHRONIZATION_TIMEOUT 1978 * event until, if no probe response or beacon is received a BSS_LOSS event is issued 1979 */ 1980} TRroamingTriggerParams; 1981 1982/** \struct TSwitchChannelParams 1983 * \brief Switch Channel Parameters 1984 * 1985 * \par Description 1986 * Used for Switch channel Command 1987 * 1988 * \sa TWD_CmdSwitchChannel 1989 */ 1990typedef struct 1991{ 1992 TI_UINT8 channelNumber; /**< The new serving channel */ 1993 TI_UINT8 switchTime; /**< Relative time of the serving channel switch in TBTT units */ 1994 TI_UINT8 txFlag; /**< 1: Suspend TX till switch time; 0: Do not suspend TX */ 1995 TI_UINT8 flush; /**< 1: Flush TX at switch time; 0: Do not flush */ 1996 1997} TSwitchChannelParams; 1998 1999/** \struct TRxCounters 2000 * \brief RX Counters 2001 * 2002 * \par Description 2003 * Used for Getting RX Counters from FW 2004 * 2005 * \sa 2006 */ 2007typedef struct 2008{ 2009 TI_UINT32 RecvError; /**< Number of frames that a NIC receives but does not indicate to the protocols due to errors */ 2010 TI_UINT32 RecvNoBuffer; /**< Number of frames that the NIC cannot receive due to lack of NIC receive buffer space */ 2011 TI_UINT32 FragmentsRecv; /**< Number of Fragments Received */ 2012 TI_UINT32 FrameDuplicates; /**< Number of Farme Duplicates */ 2013 TI_UINT32 FcsErrors; /**< Number of frames that a NIC receives but does not indicate to the protocols due to errors */ 2014 2015} TRxCounters; 2016 2017/** \struct TApPowerConstraint 2018 * \brief AP Power Constraint 2019 * 2020 * \par Description 2021 * 2022 * \sa 2023 */ 2024typedef struct 2025{ 2026 INFO_ELE_HDR /**< Information Element Header */ 2027 int8 powerConstraintOnBss; /**< The attenuation from the regulatory power constraint as declared by the AP 2028 * Units: dBm ; Range: -20 - 30 2029 */ 2030} TApPowerConstraint; 2031 2032/* 2033 * TConfigCmdCbParams, TInterrogateCmdCbParams: 2034 * Note that this structure is used by the GWSI 2035 * both for setting (writing to the device) and 2036 * for retreiving (Reading from the device), 2037 * while being called with a completion CB 2038 */ 2039/** \struct TConfigCmdCbParams 2040 * \brief Config Command CB Parameters 2041 * 2042 * \par Description 2043 * The CB Parameters (Completino CB, Handle to CB Parameters and buffer of Input/Output Parameters) 2044 * are used for Setting Parameters 2045 * 2046 * \sa TWD_SetParam 2047 */ 2048typedef struct 2049{ 2050 void* fCb; /**< Completion CB function */ 2051 TI_HANDLE hCb; /**< CB handle */ 2052 void* pCb; /**< CBuffer contains the content to be written or the retrieved content */ 2053 2054} TConfigCmdCbParams; 2055 2056/** \struct TInterrogateCmdCbParams 2057 * \brief Interrogate Command Parameters 2058 * 2059 * \par Description 2060 * Interrogate Command Parameters are the same as configuration Command CB Parameters 2061 * 2062 * \sa TWD_SetParam 2063 */ 2064typedef TConfigCmdCbParams TInterrogateCmdCbParams; 2065 2066/** \struct TRxTimeOut 2067 * \brief RX Time Out 2068 * 2069 * \par Description 2070 * 2071 * \sa 2072 */ 2073typedef struct 2074{ 2075 TI_UINT16 psPoll; /**< The maximum time that the device will wait to receive traffic from the AP after transmission of PS-poll */ 2076 TI_UINT16 UPSD; /**< The maximum time that the device will wait to receive traffic from the AP after transmission from UPSD 2077 * enabled queue 2078 */ 2079} TRxTimeOut; 2080 2081/** \struct TQueueTrafficParams 2082 * \brief RX Time Out 2083 * 2084 * \par Description 2085 * 2086 * \sa 2087 */ 2088typedef struct 2089{ 2090 TI_UINT8 queueID; /**< The TX queue ID number (0-7) */ 2091 TI_UINT8 channelType; /**< Channel access type for the queue Refer to ChannelType_enum */ 2092 TI_UINT8 tsid; /**< for EDCA - the AC Index (0-3, refer to AccessCategory_enum). 2093 * For HCCA - HCCA Traffic Stream ID (TSID) of the queue (8-15) 2094 */ 2095 TI_UINT32 dot11EDCATableMSDULifeTime; /**< 802.11 EDCA Table MSDU Life Time */ 2096 TI_UINT8 psScheme; /**< The power save scheme of the specified queue. Refer to PSScheme_enum */ 2097 TI_UINT8 ackPolicy; /**< ACK policy per AC */ 2098 TI_UINT32 APSDConf[2]; /**< APSD Configuration */ 2099 2100} TQueueTrafficParams; 2101 2102 2103 2104/** \struct TFmCoexParams 2105 * \brief FM Coexistence Parameters 2106 * 2107 * \par Description 2108 * Used for Setting/Printing FM Coexistence Parameters 2109 * 2110 * \sa 2111 */ 2112typedef struct 2113{ 2114 TI_UINT8 uEnable; /* enable(1) / disable(0) the FM Coex feature */ 2115 2116 TI_UINT8 uSwallowPeriod; /* Swallow period used in COEX PLL swallowing mechanism, 2117 Range: 0-0xFF, 0xFF = use FW default 2118 */ 2119 2120 TI_UINT8 uNDividerFrefSet1; /* The N divider used in COEX PLL swallowing mechanism for Fref of 38.4/19.2 Mhz. 2121 Range: 0-0xFF, 0xFF = use FW default 2122 */ 2123 2124 TI_UINT8 uNDividerFrefSet2; /* The N divider used in COEX PLL swallowing mechanism for Fref of 26/52 Mhz. 2125 Range: 0-0xFF, 0xFF = use FW default 2126 */ 2127 2128 TI_UINT16 uMDividerFrefSet1; /* The M divider used in COEX PLL swallowing mechanism for Fref of 38.4/19.2 Mhz. 2129 Range: 0-0x1FF, 0xFFFF = use FW default 2130 */ 2131 2132 TI_UINT16 uMDividerFrefSet2; /* The M divider used in COEX PLL swallowing mechanism for Fref of 26/52 Mhz. 2133 Range: 0-0x1FF, 0xFFFF = use FW default 2134 */ 2135 2136 TI_UINT32 uCoexPllStabilizationTime;/* The time duration in uSec required for COEX PLL to stabilize. 2137 0xFFFFFFFF = use FW default 2138 */ 2139 2140 TI_UINT16 uLdoStabilizationTime; /* The time duration in uSec required for LDO to stabilize. 2141 0xFFFFFFFF = use FW default 2142 */ 2143 2144 TI_UINT8 uFmDisturbedBandMargin; /* The disturbed frequency band margin around the disturbed 2145 frequency center (single sided). 2146 For example, if 2 is configured, the following channels 2147 will be considered disturbed channel: 2148 80 +- 0.1 MHz, 91 +- 0.1 MHz, 98 +- 0.1 MHz, 102 +- 0.1 MHz 2149 0xFF = use FW default 2150 */ 2151 2152 TI_UINT8 uSwallowClkDif; /* The swallow clock difference of the swallowing mechanism. 2153 0xFF = use FW default 2154 */ 2155 2156} TFmCoexParams; 2157 2158 2159/** \struct TMibBeaconFilterIeTable 2160 * \brief MIB Beacon Filter IE table 2161 * 2162 * \par Description 2163 * Used for Read/Write the MIB/IE Beacon Filter 2164 * NOTE: This struct is only meant to be used as a pointer reference to an actual buffer. 2165 * Table size is not a constant and is derived from the buffer size given with the 2166 * user command 2167 * 2168 * \sa TWD_WriteMibBeaconFilterIETable 2169 */ 2170typedef struct 2171{ 2172 /* Number of information elements in table */ 2173 TI_UINT8 iNumberOfIEs; /**< Input Number of IE Tables */ 2174 TI_UINT8 iIETable[MIB_MAX_SIZE_OF_IE_TABLE]; /**< Input IE Table */ 2175 2176} TMibBeaconFilterIeTable; 2177 2178/** \struct TMibCounterTable 2179 * \brief MIB Counter Table 2180 * 2181 * \par Description 2182 * Used for Getting Counters of MIB Table 2183 * 2184 * \sa 2185 */ 2186typedef struct 2187{ 2188 TI_UINT32 PLCPErrorCount; /**< The number of PLCP errors since the last time this information element was interrogated. 2189 * This field is automatically cleared when it is interrogated 2190 */ 2191 TI_UINT32 FCSErrorCount; /**< The number of FCS errors since the last time this information element was interrogated. 2192 * This field is automatically cleared when it is interrogated 2193 */ 2194 TI_UINT32 SeqNumMissCount; /**< The number of missed sequence numbers in the squentially values of frames seq numbers */ 2195} TMibCounterTable; 2196 2197/** \struct TMibWlanWakeUpInterval 2198 * \brief MIB WLAN Wake-Up Interval 2199 * 2200 * \par Description 2201 * 2202 * \sa 2203 */ 2204typedef struct 2205{ 2206 TI_UINT32 WakeUpInterval; /**< Wake Up Interval */ 2207 TI_UINT8 ListenInterval; /**< Listen interval in unit of the beacon/DTIM */ 2208 2209} TMibWlanWakeUpInterval; 2210 2211/** \struct TMibTemplateFrame 2212 * \brief MIB Template Frame 2213 * 2214 * \par Description 2215 * Used for Writing MIB Frame Template to FW 2216 * 2217 * \sa TWD_WriteMibTemplateFrame 2218 */ 2219typedef struct 2220{ 2221 EMibTemplateType FrameType; /**< MIB Farme Template type */ 2222 TI_UINT32 Rate; /**< Frame Rate */ 2223 TI_UINT16 Length; /**< Frame Length */ 2224 TI_UINT8 Data [MIB_TEMPLATE_DATA_MAX_LEN]; /**< Frame Template Data */ 2225 2226} TMibTemplateFrame; 2227 2228/** \struct TMibArpIpAddressesTable 2229 * \brief MIB ARP Address Table 2230 * 2231 * \par Description 2232 * Used for Writing MIB ARP Table Template to FW 2233 * 2234 * \sa TWD_WriteMib 2235 */ 2236typedef struct 2237{ 2238 TI_UINT32 FilteringEnable; /**< Enable/Disable Filtering */ 2239 TIpAddr addr; /**< IP Address Table */ 2240 2241} TMibArpIpAddressesTable; 2242 2243/** \struct TMibGroupAdressTable 2244 * \brief MIB Group Address Table 2245 * 2246 * \par Description 2247 * Used for Writing MIB Group Table Template to FW 2248 * 2249 * \sa TWD_WriteMib 2250 */ 2251typedef struct 2252{ 2253 TMacAddr aGroupTable[MIB_MAX_MULTICAST_GROUP_ADDRS]; /**< Table of Multicast Group Addresses */ 2254 TI_UINT8 bFilteringEnable; /**< Enable/Disable Filtering */ 2255 TI_UINT8 nNumberOfAddresses; /**< Number of Multicast Addresses */ 2256 2257} TMibGroupAdressTable; 2258 2259/** \struct TTxRateClass 2260 * \brief TX Rate Class 2261 * 2262 * \par Description 2263 * Used for Set/Get TX Rate Policy Class to/from FW 2264 * 2265 * \sa 2266 */ 2267typedef struct 2268{ 2269 TI_UINT32 txEnabledRates; /**< A Bit Mask which indicates which Rates are enabled */ 2270 TI_UINT8 shortRetryLimit; /**< */ 2271 TI_UINT8 longRetryLimit; /**< */ 2272 TI_UINT8 flags; /**< */ 2273 TI_UINT8 reserved; /**< for alignment with the FW API */ 2274 2275} TTxRateClass; 2276 2277/** \struct TTxRatePolicy 2278 * \brief TX Rate Policy 2279 * 2280 * \par Description 2281 * Used for Set/Get TX Rate Policy to/from FW 2282 * 2283 * \sa 2284 */ 2285typedef struct 2286{ 2287 TI_UINT32 numOfRateClasses; /**< */ 2288 TTxRateClass rateClass[MAX_NUM_OF_TX_RATE_CLASS_POLICIES]; /**< */ 2289 2290} TTxRatePolicy; 2291 2292/** \struct TCoexActivity 2293 * \brief CoexActivity Parameters 2294 * 2295 * \par Description 2296 * 2297 * \sa 2298 */ 2299typedef struct { 2300 uint8 coexIp; /* 0-BT, 1-WLAN (according to CoexIp_e in FW) */ 2301 uint8 activityId; /* According to BT/WLAN activity numbering in FW */ 2302 uint8 defaultPriority; /* 0-255, activity default priority */ 2303 uint8 raisedPriority; /* 0-255, activity raised priority */ 2304 uint16 minService; /* 0-65535, The minimum service requested either in 2305 requests or in milliseconds depending on activity ID */ 2306 uint16 maxService; /* 0-65535, The maximum service allowed either in 2307 requests or in milliseconds depending on activity ID */ 2308} TCoexActivity; 2309 2310/** \struct THalCoexActivityTable 2311 * \brief CoexActivity Table Initialization Parameters 2312 * 2313 * \par Description 2314 * 2315 * \sa 2316 */ 2317typedef struct 2318{ 2319 uint32 numOfElements; 2320 TCoexActivity entry[COEX_ACTIVITY_TABLE_MAX_NUM]; 2321 2322} THalCoexActivityTable; 2323 2324/** \union TMibData 2325 * \brief MIB Data 2326 * 2327 * \par Description 2328 * Union which defines all MIB Data types 2329 * Used for write MIB Configuration to FW 2330 * 2331 * \sa TWD_WriteMib 2332 */ 2333typedef union 2334{ 2335 TMacAddr StationId; /**< Station ID MAC Address */ 2336 TI_UINT32 MaxReceiveLifeTime; /**< HAl Control Max Rx MSDU Life Time, in TUs Units */ 2337 TI_UINT32 SlotTime; /**< Radio (PHY) Slot Time Type */ 2338 TMibGroupAdressTable GroupAddressTable; /**< MIB Group Address Table */ 2339 TI_UINT8 WepDefaultKeyId; /**< WEP Defualt Security Key ID */ 2340 TI_UINT8 PowerLevel; /**< */ 2341 TI_UINT16 RTSThreshold; /**< */ 2342 TI_UINT32 CTSToSelfEnable; /**< Enable/Disable CTS to Self */ 2343 TMibArpIpAddressesTable ArpIpAddressesTable; /**< MIB ARP Address Table */ 2344 TMibTemplateFrame TemplateFrame; /**< MIB Template Frame */ 2345 TI_UINT8 RxFilter; /**< */ 2346 TMibWlanWakeUpInterval WlanWakeUpInterval; /**< MIB WLAN Wake-Up Interval */ 2347 TMibCounterTable CounterTable; /**< MIB Counter Table */ 2348 TMibBeaconFilterIeTable BeaconFilter; /**< MIB Beacon Filter IE table */ 2349 TTxRatePolicy txRatePolicy; /**< TX Rate Policy */ 2350 2351} TMibData; 2352 2353/** \struct TMib 2354 * \brief MIB Structure 2355 * 2356 * \par Description 2357 * Used for writing MIB Configuration to FW 2358 * 2359 * \sa TWD_WriteMib, TWD_WriteMibTemplateFrame, TWD_WriteMibBeaconFilterIETable, TWD_WriteMibTxRatePolicy 2360 */ 2361typedef struct 2362{ 2363 EMib aMib; /**< MIB Element Type */ 2364 TI_UINT16 Length; /**< MIB Data Length */ 2365 TMibData aData; /**< MIB Data */ 2366 2367} TMib; 2368 2369/** \union TTwdParamContents 2370 * \brief TWD Parameters Content 2371 * 2372 * \par Description 2373 * All FW Parameters contents 2374 * 2375 * \sa TWD_SetParam 2376 */ 2377typedef union 2378{ 2379 TI_UINT16 halCtrlRtsThreshold; /**< */ 2380 TI_UINT8 halCtrlCtsToSelf; /**< */ 2381 TRxTimeOut halCtrlRxTimeOut; /**< */ 2382 TI_UINT16 halCtrlFragThreshold; /**< */ 2383 TI_UINT16 halCtrlListenInterval; /**< */ 2384 TI_UINT16 halCtrlCurrentBeaconInterval; /**< */ 2385 TI_UINT8 halCtrlTxPowerDbm; /**< */ 2386 ETxAntenna halCtrlTxAntenna; /**< */ 2387 ERxAntenna halCtrlRxAntenna; /**< */ 2388 TI_UINT8 halCtrlAifs; /**< */ 2389 TI_BOOL halCtrlTxMemPoolQosAlgo; /**< */ 2390 TI_BOOL halCtrlClkRunEnable; /**< */ 2391 TRxCounters halCtrlCounters; /**< */ 2392 2393 TMib* pMib; /**< */ 2394 TI_UINT8 halCtrlCurrentChannel; /**< */ 2395 2396 /* AC Qos parameters */ 2397 TQueueTrafficParams *pQueueTrafficParams; /**< */ 2398 2399 /* Security related parameters */ 2400#ifdef XCC_MODULE_INCLUDED 2401 TI_BOOL rsnXCCSwEncFlag; /**< */ 2402 TI_BOOL rsnXCCMicFieldFlag; /**< */ 2403#endif 2404 ECipherSuite rsnEncryptionStatus; /**< */ 2405 TI_UINT8 rsnHwEncDecrEnable; /**< 0- disable, 1- enable */ 2406 TSecurityKeys *pRsnKey; /**< */ 2407 TI_UINT8 rsnDefaultKeyID; /**< */ 2408 2409 /* Measurements section */ 2410 TMediumOccupancy mediumOccupancy; /**< */ 2411 TI_BOOL halTxOpContinuation; /**< */ 2412 2413 TTsfDtim fwTsfDtimInfo; /**< */ 2414 2415 TInterrogateCmdCbParams interogateCmdCBParams; /**< */ 2416 TConfigCmdCbParams configureCmdCBParams; /**< */ 2417 2418 TTxRatePolicy *pTxRatePlicy; /**< */ 2419 2420 /* WARNING!!! This section is used to set/get internal params only. */ 2421 TI_UINT16 halCtrlAid; /**< */ 2422 2423 ESoftGeminiEnableModes SoftGeminiEnable; /**< */ 2424 TSoftGeminiParams SoftGeminiParam; /**< */ 2425 2426 TFmCoexParams tFmCoexParams; /**< */ 2427 2428 TI_UINT32 halCtrlMaxRxMsduLifetime; /**< */ 2429 2430 /* Beacon Broadcast options */ 2431 TBcnBrcOptions BcnBrcOptions; /**< */ 2432 2433 /* PLT tests */ 2434 TI_STATUS PltRxCalibrationStatus; /**< */ 2435 2436 /* CoexActivity */ 2437 TCoexActivity tTwdParamsCoexActivity; /**< */ 2438} TTwdParamContents; 2439 2440/** \struct TTwdParamInfo 2441 * \brief TWD Parameters Information 2442 * 2443 * \par Description 2444 * 2445 * \sa TWD_SetParam 2446 */ 2447typedef struct 2448{ 2449 TI_UINT32 paramType; /**< FW Parameter Information Identifier */ 2450 TI_UINT32 paramLength; /**< FW Parameter Length */ 2451 TTwdParamContents content; /**< FW Parameter content */ 2452 2453} TTwdParamInfo; 2454 2455/** \struct TRxXferReserved 2456 * \brief RX Xfer Reserved 2457 * 2458 * \par Description 2459 * 2460 * \sa 2461 */ 2462typedef struct 2463{ 2464 ProcessIDTag_e packetType; /**< */ 2465 TI_UINT8 rxLevel; /**< */ 2466 TI_INT8 rssi; /**< */ 2467 TI_UINT8 SNR; /**< */ 2468 TI_UINT8 band; /**< */ 2469 TI_UINT32 TimeStamp; /**< */ 2470 EScanResultTag eScanTag; /**< */ 2471 2472} TRxXferReserved; 2473 2474/** \struct TRxAttr 2475 * \brief RX Attributes 2476 * 2477 * \par Description 2478 * 2479 * \sa 2480 */ 2481typedef struct 2482{ 2483 PacketClassTag_enum ePacketType; /**< */ 2484 TI_STATUS status; /**< */ 2485 ERate Rate; /**< */ 2486 TI_UINT8 SNR; /**< */ 2487 TI_INT8 Rssi; /**< */ 2488 TI_UINT8 channel; /**< */ 2489 TI_UINT32 packetInfo; /**< */ 2490 ERadioBand band; /**< */ 2491 TI_UINT32 TimeStamp; /**< */ 2492 EScanResultTag eScanTag; /**< */ 2493 2494} TRxAttr; 2495 2496 2497/** \struct TGeneralInitParams 2498 * \brief General Initialization Parameters 2499 * 2500 * \par Description 2501 * 2502 * \sa 2503 */ 2504typedef struct 2505{ 2506 TI_UINT16 halCtrlListenInterval; /**< */ 2507 TI_UINT8 halCtrlCalibrationChannel2_4; /**< */ 2508 TI_UINT8 halCtrlCalibrationChannel5_0; /**< */ 2509 TI_UINT16 halCtrlRtsThreshold; /**< */ 2510 TI_UINT16 halCtrlFragThreshold; /**< */ 2511 TI_UINT32 halCtrlMaxTxMsduLifetime; /**< */ 2512 TI_UINT32 halCtrlMaxRxMsduLifetime; /**< */ 2513 ETxAntenna halCtrlTxAntenna; /**< */ 2514 ERxAntenna halCtrlRxAntenna; /**< */ 2515 TI_UINT8 halCtrlMacClock; /**< */ 2516 TI_UINT8 halCtrlArmClock; /**< */ 2517 TI_UINT16 halCtrlBcnRxTime; /**< */ 2518 TI_BOOL halCtrlRxEnergyDetection; /**< */ 2519 TI_BOOL halCtrlTxEnergyDetection; /**< */ 2520 TI_BOOL halCtrlEepromLessEnable; /**< */ 2521 TI_BOOL halCtrlRxDisableBroadcast; /**< */ 2522 TI_BOOL halCtrlRecoveryEnable; /**< */ 2523 TI_BOOL halCtrlFirmwareDebug; /**< */ 2524 TI_BOOL WiFiWmmPS; /**< */ 2525 TRxTimeOut rxTimeOut; /**< */ 2526 TI_UINT8 halCtrlRateFallbackRetry; /**< */ 2527 TI_BOOL b11nEnable; /**< */ 2528 2529 TI_UINT16 TxCompletePacingThreshold; /**< */ 2530 TI_UINT16 TxCompletePacingTimeout; /**< */ 2531 TI_UINT16 RxIntrPacingThreshold; /**< */ 2532 TI_UINT16 RxIntrPacingTimeout; /**< */ 2533 2534 TI_UINT32 uRxAggregPktsLimit; /**< */ 2535 TI_UINT8 hwAccessMethod; /**< */ 2536 TI_UINT8 maxSitesFragCollect; /**< */ 2537 TI_UINT8 packetDetectionThreshold; /**< */ 2538 TI_UINT32 nullTemplateSize; /**< */ 2539 TI_UINT32 disconnTemplateSize; /**< */ 2540 TI_UINT32 beaconTemplateSize; /**< */ 2541 TI_UINT32 probeRequestTemplateSize; /**< */ 2542 TI_UINT32 probeResponseTemplateSize; /**< */ 2543 TI_UINT32 PsPollTemplateSize; /**< */ 2544 TI_UINT32 qosNullDataTemplateSize; /**< */ 2545 TI_UINT32 tddRadioCalTimout; /**< */ 2546 TI_UINT32 CrtRadioCalTimout; /**< */ 2547 TI_UINT32 UseMboxInterrupt; /**< */ 2548 TI_UINT32 TraceBufferSize; /**< */ 2549 TI_BOOL bDoPrint; /**< */ 2550 TI_UINT8 StaMacAddress[MAC_ADDR_LEN]; /**< */ 2551 TI_BOOL TxFlashEnable; /**< */ 2552 TI_UINT8 RxBroadcastInPs; /**< */ 2553 TI_UINT8 ConsecutivePsPollDeliveryFailureThreshold; /**< */ 2554 TI_UINT8 TxBlocksThresholdPerAc[MAX_NUM_OF_AC];/**< */ 2555 TI_UINT16 BeaconRxTimeout; /**< */ 2556 TI_UINT16 BroadcastRxTimeout; /**< */ 2557 2558 TI_UINT8 uRssiBeaconAverageWeight; /**< */ 2559 TI_UINT8 uRssiPacketAverageWeight; /**< */ 2560 TI_UINT8 uSnrBeaconAverageWeight; /**< */ 2561 TI_UINT8 uSnrPacketAverageWeight; /**< */ 2562 2563 TI_UINT32 uHostClkSettlingTime; /**< */ 2564 TI_UINT8 uHostFastWakeupSupport; /**< */ 2565 THalCoexActivityTable halCoexActivityTable; /**< */ 2566 TFmCoexParams tFmCoexParams; /**< */ 2567 2568} TGeneralInitParams; 2569 2570/** \struct TPowerSrvInitParams 2571 * \brief Power Service Init Parameters 2572 * 2573 * \par Description 2574 * 2575 * \sa 2576 */ 2577typedef struct 2578{ 2579 TI_UINT8 numNullPktRetries; /**< */ 2580 TI_UINT8 hangOverPeriod; /**< */ 2581 TI_UINT16 reserve; /**< */ 2582 2583} TPowerSrvInitParams; 2584 2585/** \struct TScanSrvInitParams 2586 * \brief Scan Service Init Parameters 2587 * 2588 * \par Description 2589 * 2590 * \sa 2591 */ 2592typedef struct 2593{ 2594 TI_UINT32 numberOfNoScanCompleteToRecovery; /**< The number of consecutive no scan complete that will trigger a recovery notification */ 2595 TI_UINT32 uTriggeredScanTimeOut; /**< i.e. split scan. Time out for starting triggered scan between 2 channels */ 2596 2597} TScanSrvInitParams; 2598 2599/** \struct TArpIpFilterInitParams 2600 * \brief ARP IP Filter Init Parameters 2601 * 2602 * \par Description 2603 * 2604 * \sa 2605 */ 2606typedef struct 2607{ 2608 TI_UINT32 isFilterEnabled; /**< */ 2609 TIpAddr addr; /**< */ 2610 2611} TArpIpFilterInitParams; 2612 2613/** \struct TMacAddrFilterInitParams 2614 * \brief AMC Address Filter Init Parameters 2615 * 2616 * \par Description 2617 * 2618 * \sa 2619 */ 2620typedef struct 2621{ 2622 TI_UINT8 isFilterEnabled; /**< */ 2623 TI_UINT8 numOfMacAddresses; /**< */ 2624 TI_UINT16 reserve; /**< */ 2625 TMacAddr macAddrTable[MAX_MULTICAST_GROUP_ADDRS]; /**< */ 2626 2627} TMacAddrFilterInitParams; 2628 2629/** \struct RateMangeParams_t 2630 * \brief Rate Maangement params structure 2631 * 2632 * \par Description 2633 * 2634 * \sa 2635 */ 2636typedef struct 2637{ 2638 rateAdaptParam_e paramIndex; 2639 uint16 RateRetryScore; 2640 uint16 PerAdd; 2641 uint16 PerTh1; 2642 uint16 PerTh2; 2643 uint16 MaxPer; 2644 uint8 InverseCuriosityFactor; 2645 uint8 TxFailLowTh; 2646 uint8 TxFailHighTh; 2647 uint8 PerAlphaShift; 2648 uint8 PerAddShift; 2649 uint8 PerBeta1Shift; 2650 uint8 PerBeta2Shift; 2651 uint8 RateCheckUp; 2652 uint8 RateCheckDown; 2653 uint8 RateRetryPolicy[13]; 2654}RateMangeParams_t; 2655 2656/* 2657 * IMPORTANT NOTE: 2658 * =============== 2659 * This structure encapsulates the initialization data required by the TnetwDrv layer. 2660 * All structures in it are arranged so no padding will be added by the compiler!! 2661 * This is required to avoid missalignment when compiled by customers using GWSI API!! 2662 */ 2663/** \struct TTwdInitParams 2664 * \brief TWD Init Parameters 2665 * 2666 * \par Description 2667 * All TWD Initialization Parameters 2668 * 2669 * \sa TWD_SetDefaults 2670 */ 2671typedef struct 2672{ 2673 TGeneralInitParams tGeneral; /**< General Initialization Parameters */ 2674 TPowerSrvInitParams tPowerSrv; /**< Power Service Initialization Parameters */ 2675 TScanSrvInitParams tScanSrv; /**< Scan Service Initialization Parameters */ 2676 TArpIpFilterInitParams tArpIpFilter; /**< ARP IP filter Initialization Parameters */ 2677 TMacAddrFilterInitParams tMacAddrFilter; /**< MAC Address Initialization Parameters */ 2678 IniFileRadioParam tIniFileRadioParams; /**< Radio Initialization Parameters */ 2679 IniFileGeneralParam tPlatformGenParams; /**< Radio Initialization Parameters */ 2680 ACXSmartReflexConfigParams_t tSmartReflexParams; /**< Smart Refelx Parameters */ 2681 ACXSmartReflexDebugParams_t tSmartReflexDebugParams; /**< Smart Refelx Debug Parameters */ 2682 ACXSmartReflexState_t tSmartReflexState; /**< Smart Refelx state */ 2683 RateMangeParams_t tRateMngParams; 2684 2685} TTwdInitParams; 2686 2687/** \struct TTwdHtCapabilities 2688 * \brief TWD HT Capabilities 2689 * 2690 * \par Description 2691 * 2692 * \sa TWD_SetDefaults, TWD_GetTwdHtCapabilities 2693 */ 2694typedef struct 2695{ 2696 TI_BOOL b11nEnable; /**< Enable/Disable 802.11n flag */ 2697 TI_UINT8 uChannelWidth; /**< */ 2698 TI_UINT8 uRxSTBC; /**< */ 2699 TI_UINT8 uMaxAMSDU; /**< */ 2700 TI_UINT8 uMaxAMPDU; /**< */ 2701 TI_UINT8 uAMPDUSpacing; /**< */ 2702 TI_UINT8 aRxMCS[RX_TX_MCS_BITMASK_SIZE]; /**< */ 2703 TI_UINT8 aTxMCS[RX_TX_MCS_BITMASK_SIZE]; /**< */ 2704 TI_UINT16 uRxMaxDataRate; /**< */ 2705 TI_UINT8 uPCOTransTime; /**< */ 2706 TI_UINT32 uHTCapabilitiesBitMask; /**< */ 2707 TI_UINT8 uMCSFeedback; /**< */ 2708} TTwdHtCapabilities; 2709 2710typedef struct 2711{ 2712 int32 SNRCorrectionHighLimit; 2713 int32 SNRCorrectionLowLimit; 2714 int32 PERErrorTH; 2715 int32 attemptEvaluateTH; 2716 int32 goodAttemptTH; 2717 int32 curveCorrectionStep; 2718 2719 }RateMangeReadParams_t; 2720 2721 2722/* 2723 * -------------------------------------------------------------- 2724 * APIs 2725 * -------------------------------------------------------------- 2726 */ 2727/** @ingroup Control 2728 * \brief Send Packet Transfer CB 2729 * 2730 * \param CBObj - object handle 2731 * \param pPktCtrlBlk - Pointer to Input Packet Control Block 2732 * \return void 2733 * 2734 * \par Description 2735 * The Transfer-Done callback 2736 * User registers the CB for Send Packet Transfer done 2737 * 2738 * \sa TWD_RegisterCb 2739 */ 2740typedef void (* TSendPacketTranferCb)(TI_HANDLE CBObj, TTxCtrlBlk *pPktCtrlBlk); 2741/** @ingroup Control 2742 * \brief Send Packet Debug CB 2743 * 2744 * \param CBObj - object handle 2745 * \param pPktCtrlBlk - Pointer to Input Packet Control Block 2746 * uDebugInfo - Debug Information 2747 * \return void 2748 * 2749 * \par Description 2750 * The Transfer-Done Debug callback 2751 * 2752 * \sa 2753 */ 2754typedef void (* TSendPacketDebugCb) (TI_HANDLE CBObj, TTxCtrlBlk *pPktCtrlBlk, TI_UINT32 uDebugInfo); 2755/** @ingroup Control 2756 * \brief Send Packet Debug CB 2757 * 2758 * \param CBObj - object handle 2759 * \param pPktCtrlBlk - Pointer to Input Packet Control Block 2760 * uDebugInfo - Debug Information 2761 * \return void 2762 * 2763 * \par Description 2764 * 2765 * \sa TWD_RegisterCb 2766 */ 2767typedef ERxBufferStatus (*TRequestForBufferCb) (TI_HANDLE hObj, void **pRxBuffer, TI_UINT16 aLength, TI_UINT32 uEncryptionFlag, PacketClassTag_e ePacketClassTag); 2768/** @ingroup Control 2769 * \brief Send Packet Debug CB 2770 * 2771 * \param hObj - object handle 2772 * \param pBuffer - Pointer to Received buffer frame 2773 * \return void 2774 * 2775 * \par Description 2776 * This function CB will be called when Received packet from RX Queue 2777 * User registers the CB for RX Buffer Request 2778 * 2779 * \sa TWD_RegisterCb 2780 */ 2781typedef void (*TPacketReceiveCb) (TI_HANDLE hObj, 2782 const void *pBuffer); 2783/** @ingroup Control 2784 * \brief Failure Event CB 2785 * 2786 * \param handle - object handle 2787 * \param eFailureEvent - Failure Event Type 2788 * \return void 2789 * 2790 * \par Description 2791 * Callback clled for Failure event 2792 * User registers the CB for Health-Moitoring 2793 * 2794 * \sa TWD_RegisterCb 2795 */ 2796typedef void (*TFailureEventCb) (TI_HANDLE handle, EFailureEvent eFailureEvent); 2797 2798/** \union TTwdCB 2799 * \brief TWD Callback 2800 * 2801 * \par Description 2802 * Union which holds all TWD Internal Callbacks which are registered by user 2803 * per Module and Event IDs 2804 * 2805 * \sa TWD_RegisterCb 2806 */ 2807typedef union 2808{ 2809 TSendPacketTranferCb sendPacketCB; /**< Transfer-Done callback */ 2810 TSendPacketDebugCb sendPacketDbgCB; /**< Transfer-Done Debug callback */ 2811 TRequestForBufferCb requestBufferCB; /**< Transfer-Done Debug callback */ 2812 TPacketReceiveCb recvPacketCB; /**< RX Buffer Request callback */ 2813 TFailureEventCb failureEventCB; /**< Failure Event callback */ 2814}TTwdCB; 2815 2816 2817/** @ingroup Control 2818 * \brief Scan Service complete CB 2819 * 2820 * \param hCb - handle to the scan object 2821 * \param eTag - the scan results type tag 2822 * \param uResultCount - number of results received during this scan 2823 * \param SPSStatus - bitmap indicating which channels were attempted (if this is an SPS scan) 2824 * \param TSFError - whether a TSF error occurred (if this is an SPS scan) 2825 * \param ScanStatus - scan SRV status (OK / NOK) 2826 * \param PSMode - Power Save Mode 2827 * \return void 2828 * 2829 * \par Description 2830 * This function CB will be called when Scan Service is complete 2831 * User registers the Scan Service Complete CB 2832 * 2833 * \sa TWD_RegisterScanCompleteCb 2834 */ 2835typedef void (*TScanSrvCompleteCb) (TI_HANDLE hCb, 2836 EScanResultTag eTag, 2837 TI_UINT32 uResultCount, 2838 TI_UINT16 SPSStatus, 2839 TI_BOOL TSFError, 2840 TI_STATUS ScanStatus, 2841 TI_STATUS PSMode); 2842/** @ingroup Control 2843 * \brief TWD Callback 2844 * 2845 * \param hCb - handle to object 2846 * \param status - completion status 2847 * \return void 2848 * 2849 * \par Description 2850 * Initialising Complete Callaback (exapmle: Init HW/FW CB etc.) 2851 * User can use its own Complete CB which will be called when 2852 * the suitable module id & event number will arrive 2853 * 2854 * \sa TWD_Init 2855 */ 2856typedef void (*TTwdCallback) (TI_HANDLE hCb, TI_STATUS status); 2857/** @ingroup Control 2858 * \brief TWD Callback 2859 * 2860 * \param hCb - handle to object 2861 * \param msrReply - Pointer to input measurement (which ended) Reply 2862 * \return void 2863 * 2864 * \par Description 2865 * The function prototype for the measurement complete callback 2866 * User can use its own measurement complete CB 2867 * which will be called when measurement end 2868 * 2869 * \sa TWD_StartMeasurement 2870 */ 2871typedef void (*TMeasurementSrvCompleteCb) (TI_HANDLE hCb, TMeasurementReply* msrReply); 2872/** @ingroup Control 2873 * \brief Command Response Callback 2874 * 2875 * \param hCb - handle to object 2876 * \param status - status of Command ended 2877 * \return void 2878 * 2879 * \par Description 2880 * The function prototype for the Command Response CB 2881 * Enables user to implement and use its own Response CB 2882 * which will be called when TWD Command end 2883 * 2884 * \sa TWD_StartMeasurement, TWD_StopMeasurement, TWD_Scan, TWD_StopScan, TWD_StartPeriodicScan, TWD_StopPeriodicScan 2885 */ 2886typedef void (*TCmdResponseCb) (TI_HANDLE hCb, TI_UINT16 status); 2887/** @ingroup Control 2888 * \brief Command Response Callback 2889 * 2890 * \param hCb - handle to object 2891 * \param status - status of Command ended 2892 * \return void 2893 * 2894 * \par Description 2895 * The function prototype for the Power Save Set Response CB 2896 * Enables user to implement and use its own Response CB which 2897 * will be called when Power Save Set Command end 2898 * 2899 * \sa TWD_SetPsMode 2900 */ 2901typedef void (*TPowerSaveResponseCb)(TI_HANDLE hCb, TI_UINT8 status); 2902/** @ingroup Control 2903 * \brief Command Complete Callback 2904 * 2905 * \param hCb - handle to object 2906 * \param PsMode - Power Save Mode 2907 * \param status - status of Command ended 2908 * \return void 2909 * 2910 * \par Description 2911 * The function prototype for the Power Save Set Complete CB 2912 * Enables user to implement and use its own Complete CB which 2913 * will be called when Power Save Set Command end (for success/faild notification) 2914 * 2915 * \sa TWD_SetPsMode 2916 */ 2917typedef void (*TPowerSaveCompleteCb )(TI_HANDLE hCb, TI_UINT8 PsMode, TI_UINT8 status); 2918/** @ingroup Control 2919 * \brief Create TWD Module 2920 * 2921 * \param hOs - OS module object handle 2922 * \return TWD Module object handle on success or NULL on failure 2923 * 2924 * \par Description 2925 * Calling this function Creates a TWD object and all its sub-modules. 2926 * 2927 * \sa TWD_Destroy, TWD_Init 2928 */ 2929TI_HANDLE TWD_Create (TI_HANDLE hOs); 2930/** @ingroup Control 2931 * \brief Destroy TWD Module 2932 * 2933 * \param hTWD - hTWD module object handle 2934 * \return TI_OK on success or TI_NOK on failure 2935 * 2936 * \par Description 2937 * Calling this function Destroys TWD object and all its sub-modules. 2938 * 2939 * \sa TWD_Create 2940 */ 2941TI_STATUS TWD_Destroy (TI_HANDLE hTWD); 2942/** Control 2943 * \brief Init TWD module 2944 * 2945 * \param hTWD - TWD module object handle 2946 * \param hReport - Report module object handle 2947 * \param hUser - Master (User) module object handle 2948 * \param hTimer - Timer module object handle 2949 * \param hContext - context-engine module object handle 2950 * \param hTxnQ - TxnQueue module object handle 2951 * \param fInitHwCb - Init HW callback called when init HW phase is done 2952 * \param fInitFwCb - Init FW callback called when init FW phase is done 2953 * \param fConfigFwCb - Configuration FW callback called when configuring FW phase is done 2954 * \param fStopCb - Stop callback called when TWD is stopped 2955 * \param fInitFailCb - Fail callback called when TWD is Failed 2956 * \return void 2957 * 2958 * \par Description 2959 * Start hardware Init and Config process. 2960 * This is the first function that must be called after TWD_Create. 2961 * 2962 * \sa TWD_Create, TWD_Stop 2963 */ 2964void TWD_Init (TI_HANDLE hTWD, 2965 TI_HANDLE hReport, 2966 TI_HANDLE hUser, 2967 TI_HANDLE hTimer, 2968 TI_HANDLE hContext, 2969 TI_HANDLE hTxnQ, 2970 TTwdCallback fInitHwCb, 2971 TTwdCallback fInitFwCb, 2972 TTwdCallback fConfigFwCb, 2973 TTwdCallback fStopCb, 2974 TTwdCallback fInitFailCb); 2975/** @ingroup Control 2976 * \brief Init HW module 2977 * 2978 * \param hTWD - TWD module object handle 2979 * \param pbuf - Pointer to Input NVS Buffer 2980 * \param length - Length of NVS Buffer 2981 * \return TI_OK on success or TI_NOK on failure 2982 * 2983 * \par Description 2984 * Performs the HW init process. 2985 * 2986 * \sa 2987 */ 2988TI_STATUS TWD_InitHw (TI_HANDLE hTWD, TI_UINT8 *pbuf, TI_UINT32 length); 2989/** @ingroup Control 2990 * \brief Set Defults to TWD Init Params 2991 * 2992 * \param hTWD - TWD module object handle 2993 * \param pInitParams - Pointer to Input init default parameters 2994 * \return TI_OK on success or TI_NOK on failure 2995 * 2996 * \par Description 2997 * 2998 * \sa 2999 */ 3000TI_STATUS TWD_SetDefaults (TI_HANDLE hTWD, TTwdInitParams *pInitParams); 3001/** @ingroup Control 3002 * \brief Init FW 3003 * 3004 * \param hTWD - TWD module object handle 3005 * \param pFileInfo - Pointer to Input Buffer contains part of FW Image to Download 3006 * The Following Field should be filled: 3007 * pFileInfo->pBuffer 3008 * pFileInfo->uLength 3009 * pFileInfo->uAddress 3010 * pFileInfo->bLast 3011 * \return TI_OK on success or TI_NOK on failure 3012 * 3013 * \par Description 3014 * Performs FW Download, and Run FW 3015 * 3016 * \sa 3017 */ 3018TI_STATUS TWD_InitFw (TI_HANDLE hTWD, TFileInfo *pFileInfo); 3019/** @ingroup Control 3020 * \brief Open UART Bus Txn 3021 * 3022 * \param hTWD - TWD module object handle 3023 * \param pParams - Pointer to Input parameters 3024 * \return TI_OK on success or TI_NOK on failure 3025 * 3026 * \par Description 3027 * 3028 * \sa 3029 */ 3030TI_STATUS TWD_BusOpen (TI_HANDLE hTWD, void* pParams); 3031/** @ingroup Control 3032 * \brief Close UART Bus Txn 3033 * 3034 * \param hTWD - TWD module object handle 3035 * \return TI_OK on success or TI_NOK on failure 3036 * 3037 * \par Description 3038 * 3039 * \sa 3040 */ 3041TI_STATUS TWD_BusClose (TI_HANDLE hTWD); 3042/** @ingroup Control 3043 * \brief Halt firmware 3044 * 3045 * \param hTWD - TWD module object handle 3046 * \return TI_OK on success or TI_NOK on failure 3047 * 3048 * \par Description 3049 * 3050 * \sa 3051 */ 3052TI_STATUS TWD_Stop (TI_HANDLE hTWD); 3053/** @ingroup Control 3054 * \brief Enable external events from FW 3055 * 3056 * \param hTWD - TWD module object handle 3057 * \return void 3058 * 3059 * \par Description 3060 * Enable external events from FW upon driver start or recovery completion 3061 * 3062 * \sa 3063 */ 3064void TWD_EnableExternalEvents (TI_HANDLE hTWD); 3065/** @ingroup Control 3066 * \brief Registers TWD internal callback function 3067 * 3068 * \param hTWD - TWD module object handle 3069 * \param event - event on which the registrated CB will be called 3070 * \param fCb - Pointer to Registered CB function 3071 * \param pData - Pointer to Registered CB data 3072 * \return TI_OK on success or TI_NOK on failure 3073 * 3074 * \par Description 3075 * This CB enables user to register TWD Internal CB functions of different Modules, 3076 * with their data. 3077 * The function identifies which TWD Module owns the Registered CB, and what the specific Registered CB 3078 * according to event input parameter. 3079 * Once the Module and specific CB function are identified, the CB is registerd in the TWD Module 3080 * by calling suitable registration CB function 3081 * 3082 * \sa 3083 */ 3084TI_STATUS TWD_RegisterCb (TI_HANDLE hTWD, TI_UINT32 event, TTwdCB *fCb, void *pData); 3085/** @ingroup Control 3086 * \brief Exit from init mode 3087 * 3088 * \param hTWD - TWD module object handle 3089 * \return TI_OK on success or TI_NOK on failure 3090 * 3091 * \par Description 3092 * Exit From Init Mode enable sending command to the MboxQueue (which store a command), 3093 * while the interrupts are masked. 3094 * The interrupt would be enable at the end of the init process 3095 * 3096 * \sa 3097 */ 3098TI_STATUS TWD_ExitFromInitMode (TI_HANDLE hTWD); 3099/** @ingroup Control 3100 * \brief Finalize FW init and download 3101 * 3102 * \param hTWD - TWD module object handle 3103 * \return void 3104 * 3105 * \par Description 3106 * Init all the remaining initialization after the FW download has finished 3107 * 3108 * \sa 3109 */ 3110void TWD_FinalizeDownload (TI_HANDLE hTWD); 3111/** @ingroup Control 3112 * \brief Finalize of faulty FW init and download 3113 * 3114 * \param hTWD - TWD module object handle 3115 * \return void 3116 * 3117 * \par Description 3118 * Call the upper layer failure callback after Init or FW download has finished with failure. 3119 * 3120 * \sa 3121 */ 3122void TWD_FinalizeOnFailure (TI_HANDLE hTWD); 3123/** @ingroup Control 3124 * \brief Perform FW Configuration 3125 * 3126 * \param hTWD - TWD module object handle 3127 * \return TI_OK on success or TI_NOK on failure 3128 * 3129 * \par Description 3130 * Configure the FW from the TWD DB - after configuring all HW objects 3131 * 3132 * \sa 3133 */ 3134TI_STATUS TWD_ConfigFw (TI_HANDLE hTWD); 3135/** @ingroup Control 3136 * \brief Handle FW interrupt from ISR context 3137 * 3138 * \param hTWD - TWD module object handle 3139 * \return TI_OK on success or TI_NOK on failure 3140 * 3141 * \par Description 3142 * This is the FW-interrupt ISR context. The driver task is scheduled to hadnle FW-Events 3143 * 3144 * \sa 3145 */ 3146TI_STATUS TWD_InterruptRequest (TI_HANDLE hTWD); 3147/** @ingroup Control 3148 * \brief Enable Recovery 3149 * 3150 * \param hTWD - TWD module object handle 3151 * \return TRUE if recovery Enables, FALSE otherwise 3152 * 3153 * \par Description 3154 * Return Recovery E/D status 3155 * 3156 * \sa 3157 */ 3158TI_BOOL TWD_RecoveryEnabled (TI_HANDLE hTWD); 3159/** @ingroup Measurement 3160 * \brief Starts a measurement 3161 * 3162 * \param hTWD - TWD module object handle 3163 * \param pMsrRequest - Pointer to Input structure which contains the measurement parameters 3164 * \param uTimeToRequestExpiryMs - The time (in milliseconds) the measurement SRV has to start the request 3165 * \param fResponseCb - The Command response CB Function 3166 * \param hResponseCb - Handle to Command response CB Function Obj 3167 * \param fCompleteCb - The Command Complete CB Function 3168 * \param hCompleteCb - Handle to Command Complete CB Function Obj 3169 * \return TI_OK on success or TI_NOK on failure 3170 * 3171 * \par Description 3172 * Starts a measurement operation 3173 * 3174 * \sa 3175 */ 3176TI_STATUS TWD_StartMeasurement (TI_HANDLE hTWD, 3177 TMeasurementRequest *pMsrRequest, 3178 TI_UINT32 uTimeToRequestExpiryMs, 3179 TCmdResponseCb fResponseCb, 3180 TI_HANDLE hResponseCb, 3181 TMeasurementSrvCompleteCb fCompleteCb, 3182 TI_HANDLE hCompleteCb); 3183/** @ingroup Measurement 3184 * \brief Stops a measurement 3185 * 3186 * \param hTWD - TWD module object handle 3187 * \param bSendNullData - Indicates whether to send NULL data when exiting driver mode 3188 * \param fResponseCb - Pointer to Command response CB function 3189 * \param hResponseCb - Handle to Command response CB parameters 3190 * \return TI_OK on success or TI_NOK on failure 3191 * 3192 * \par Description 3193 * Stops a measurement operation in progress 3194 * 3195 * \sa 3196 */ 3197TI_STATUS TWD_StopMeasurement (TI_HANDLE hTWD, 3198 TI_BOOL bSendNullData, 3199 TCmdResponseCb fResponseCb, 3200 TI_HANDLE hResponseCb); 3201/** @ingroup Measurement 3202 * \brief Start scan 3203 * 3204 * \param hTWD - TWD module object handle 3205 * \param pScanParams - Pointer to Input Scan specific parameters 3206 * \param eScanTag - Scan tag, used for result and scan complete tracking 3207 * \param bHighPriority - Indicates whether to perform a high priority (overlaps DTIM) scan 3208 * \param bDriverMode - Indicates whether to try to enter driver mode (with PS on) before issuing the scan command 3209 * \param bScanOnDriverModeError - Indicates whether to proceed with the scan if requested to enter driver mode and failed 3210 * \param ePsRequest - Parameter sent to PowerSaveServer. 3211 * Should indicates PS ON or "keep current" only when driver mode is requested, 3212 * Otherwise should indicate OFF 3213 * \param bSendNullData - Indicates whether to send Null data when exiting driver mode on scan complete 3214 * \param fResponseCb - The Response CB Function which called after downloading the command 3215 * \param hResponseCb - Handle to the Response CB Function Obj (Notice : last 2 params are NULL in Legacy run) 3216 * \return TI_OK on success or TI_NOK on failure 3217 * 3218 * \par Description 3219 * Start scan. enter driver mode (PS) only if station is connected 3220 * 3221 * \sa 3222 */ 3223TI_STATUS TWD_Scan (TI_HANDLE hTWD, 3224 TScanParams *pScanParams, 3225 EScanResultTag eScanTag, 3226 TI_BOOL bHighPriority, 3227 TI_BOOL bDriverMode, 3228 TI_BOOL bScanOnDriverModeError, 3229 E80211PsMode ePsRequest, 3230 TI_BOOL bSendNullData, 3231 TCmdResponseCb fResponseCb, 3232 TI_HANDLE hResponseCb); 3233/** @ingroup Measurement 3234 * \brief Stop scan 3235 * 3236 * \param hTWD - TWD module object handle 3237 * \param eScanTag - Scan tag, used to track scan complete and result 3238 * \param bSendNullData - Indicates whether to send Null data when exiting driver mode 3239 * \param fScanCommandResponseCb - The Response CB Function which called after downloading the command 3240 * \param hCb - Handle to the Response CB Function Obj (Notice : last 2 params are NULL in Legacy run) 3241 * \return TI_OK on success or TI_NOK on failure 3242 * 3243 * \par Description 3244 * Sends a Stop Scan command to FW, no matter if we are in scan progress or not 3245 * 3246 * \sa 3247 */ 3248TI_STATUS TWD_StopScan (TI_HANDLE hTWD, 3249 EScanResultTag eScanTag, 3250 TI_BOOL bSendNullData, 3251 TCmdResponseCb fScanCommandResponseCb, 3252 TI_HANDLE hCb); 3253/** @ingroup Measurement 3254 * \brief Stop Scan on FW Reset 3255 * 3256 * \param hTWD - TWD module object handle 3257 * \return TI_OK on success or TI_NOK on failure 3258 * 3259 * \par Description 3260 * Stop scan operation when a FW reset (recovery) situation is detected (by all processes 3261 * other than scan) 3262 * 3263 * \sa 3264 */ 3265TI_STATUS TWD_StopScanOnFWReset (TI_HANDLE hTWD); 3266/** @ingroup Measurement 3267 * \brief Start Connection Periodic Scan operation 3268 * 3269 * \param hTWD - TWD module object handle 3270 * \param pPeriodicScanParams - Pointer to Input Parameters Structures for the Periodic Scan operation 3271 * \param eScanTag - Scan tag, used for scan complete and result tracking 3272 * \param uPassiveScanDfsDwellTimeMs - Passive dwell time for DFS channels (in milli-secs) 3273 * \param fResponseCb - Response CB Function which is called after downloading the command 3274 * \param hResponseCb - Handle to Response CB Function Obj (Notice : last 2 params are NULL in Legacy run) 3275 * \return TI_OK on success or TI_NOK on failure 3276 * 3277 * \par Description 3278 * Perform Connection Scan periodically 3279 * 3280 * \sa 3281 */ 3282TI_STATUS TWD_StartConnectionScan (TI_HANDLE hTWD, 3283 TPeriodicScanParams *pPeriodicScanParams, 3284 EScanResultTag eScanTag, 3285 TI_UINT32 uPassiveScanDfsDwellTimeMs, 3286 TCmdResponseCb fResponseCb, 3287 TI_HANDLE hResponseCb); 3288/** @ingroup Measurement 3289 * \brief Stop Periodic Scan operation 3290 * 3291 * \param hTWD - TWD module object handle 3292 * \param eScanTag - scan tag, used for scan complete and result tracking 3293 * \param fResponseCb - Response CB Function which is called after downloading the command 3294 * \param hResponseCb - Handle to Response CB Function Obj (Notice : last 2 params are NULL in Legacy run) 3295 * \return TI_OK on success or TI_NOK on failure 3296 * 3297 * \par Description 3298 * Stop Periodic Connection Scan 3299 * 3300 * \sa 3301 */ 3302TI_STATUS TWD_StopPeriodicScan (TI_HANDLE hTWD, 3303 EScanResultTag eScanTag, 3304 TCmdResponseCb fResponseCb, 3305 TI_HANDLE hResponseCb); 3306/** @ingroup Measurement 3307 * \brief Register CB for Scan Complete 3308 * 3309 * \param hTWD - TWD module object handle 3310 * \param fScanCompleteCb - The Complete CB Function 3311 * \param hScanCompleteCb - Handle to the Complete CB Function Obj 3312 * \return TI_OK on success or TI_NOK on failure 3313 * 3314 * \par Description 3315 * Registers a Complete CB Function for Scan Complete notifications 3316 * 3317 * \sa 3318 */ 3319TI_STATUS TWD_RegisterScanCompleteCb (TI_HANDLE hTWD, 3320 TScanSrvCompleteCb fScanCompleteCb, 3321 TI_HANDLE hScanCompleteCb); 3322/** @ingroup Misc 3323 * \brief Set Parameters in FW 3324 * 3325 * \param hTWD - TWD module object handle 3326 * \param pParamInfo - Pointer to Input TWD Parameters Information Structure 3327 * \return TI_OK on success or TI_NOK on failure 3328 * 3329 * \par Description 3330 * Set/Configure Parameters Information in FW via Mail BOX 3331 * 3332 * \sa TTwdParamInfo 3333 */ 3334TI_STATUS TWD_SetParam (TI_HANDLE hTWD, TTwdParamInfo *pParamInfo); 3335/** @ingroup Misc 3336 * \brief Get Parameters from FW 3337 * 3338 * \param hTWD - TWD module object handle 3339 * \param pParamInfo - Pointer to Input TWD Parameters Information Structure 3340 * \return TI_OK on success or TI_NOK on failure 3341 * 3342 * \par Description 3343 * Get Parameters Information from FW via Mail BOX 3344 * 3345 * \sa 3346 */ 3347TI_STATUS TWD_GetParam (TI_HANDLE hTWD, TTwdParamInfo *pParamInfo); 3348/** @ingroup Control 3349 * \brief Callback which Checks MBOX 3350 * 3351 * \param hTWD - TWD module object handle 3352 * \param uMboxStatus - Mailbox status 3353 * \param pItrParamBuf - Pointer to Interrogate parameters buffer 3354 * \return TI_OK on success or TI_NOK on failure 3355 * 3356 * \par Description 3357 * Perform FW validation by calling CB function which is used for handling MBOX error. 3358 * If command MBOX queue identify MBOX error or timeout, it will call 3359 * a failure-callback with MBOX_FAILURE type (FW failed) 3360 * 3361 * \sa 3362 */ 3363TI_STATUS TWD_CheckMailboxCb (TI_HANDLE hTWD, TI_UINT16 uMboxStatus, void *pItrParamBuf); 3364/** @ingroup Control 3365 * \brief Write MIB 3366 * 3367 * \param hTWD - TWD module object handle 3368 * \param pMib - Pointer to Input MIB Structure 3369 * \return TI_OK on success or TI_NOK on failure 3370 * 3371 * \par Description 3372 * Write configuration information to FW 3373 * 3374 * \sa TWD_ReadMib 3375 */ 3376TI_STATUS TWD_WriteMib (TI_HANDLE hTWD, TMib* pMib); 3377/** @ingroup Control 3378 * \brief Read MIB 3379 * 3380 * \param hTWD - TWD module object handle 3381 * \param hCb - Handle to Request MIB CB Function Obj 3382 * \param fCb - Pinter to Request MIB CB Function 3383 * \param pCb - Pointer to read parameters 3384 * \return TI_OK on success or TI_NOK on failure 3385 * 3386 * \par Description 3387 * Read configuration information from FW 3388 * 3389 * \sa TWD_WriteMib 3390 */ 3391TI_STATUS TWD_ReadMib (TI_HANDLE hTWD, TI_HANDLE hCb, void* fCb, void* pCb); 3392/** @ingroup Control 3393 * \brief TWD Debug 3394 * 3395 * \param hTWD - TWD module object handle 3396 * \param funcType - TWD Function Debuged 3397 * \param pParam - Pointer to Input parameters of Debug function 3398 * \return TI_OK on success or TI_NOK on failure 3399 * 3400 * \par Description 3401 * Use for Debug TWD 3402 * 3403 * \sa 3404 */ 3405TI_STATUS TWD_Debug (TI_HANDLE hTWD, TI_UINT32 funcType, void *pParam); 3406/** @ingroup Control 3407 * \brief Register event 3408 * 3409 * \param hTWD - TWD module object handle 3410 * \param event - Event ID 3411 * \param fCb - Event Callback function pointer 3412 * \param hCb - Event Callback object handle 3413 * \return TI_OK on success or TI_NOK on failure 3414 * 3415 * \par Description 3416 * Register FW event callback function 3417 * 3418 * \sa 3419 */ 3420TI_STATUS TWD_RegisterEvent (TI_HANDLE hTWD, TI_UINT32 event, void *fCb, TI_HANDLE hCb); 3421/** @ingroup Control 3422 * \brief Disable event 3423 * 3424 * \param hTWD - TWD module object handle 3425 * \param event - Event ID 3426 * \return TI_OK on success or TI_NOK on failure 3427 * 3428 * \par Description 3429 * Disable specific FW event 3430 * Note: Currently not in use 3431 * 3432 * \sa 3433 */ 3434TI_STATUS TWD_DisableEvent (TI_HANDLE hTWD, TI_UINT32 event); 3435/** @ingroup Control 3436 * \brief Enable event 3437 * 3438 * \param hTWD - TWD module object handle 3439 * \param event - Event ID 3440 * \return TI_OK on success or TI_NOK on failure 3441 * 3442 * \par Description 3443 * Enable specific FW event 3444 * 3445 * \sa 3446 */ 3447TI_STATUS TWD_EnableEvent (TI_HANDLE hTWD, TI_UINT32 event); 3448/** @ingroup Control 3449 * \brief Convert RSSI to RX Level 3450 * 3451 * \param hTWD - TWD module object handle 3452 * \param iRssiVal - RSSI Input Value 3453 * \return TI_OK on success or TI_NOK on failure 3454 * 3455 * \par Description 3456 * Note: Currently not in use! 3457 * 3458 * \sa 3459 */ 3460TI_INT8 TWD_ConvertRSSIToRxLevel (TI_HANDLE hTWD, TI_INT32 iRssiVal); 3461/** @ingroup Control 3462 * \brief Complete TWD Stop 3463 * 3464 * \param hTWD - TWD module object handle 3465 * \return void 3466 * 3467 * \par Description 3468 * 3469 * \sa TWD_Stop, TWD_Init 3470 */ 3471void TWD_StopComplete (TI_HANDLE hTWD); 3472/** @ingroup Control 3473 * \brief Disable Interrupts 3474 * 3475 * \param hTWD - TWD module object handle 3476 * \return void 3477 * 3478 * \par Description 3479 * Disable the FW Event client of the context thread handler 3480 * 3481 * \sa 3482 */ 3483void TWD_DisableInterrupts (TI_HANDLE hTWD); 3484/** @ingroup Control 3485 * \brief Enable Interrupts 3486 * 3487 * \param hTWD - TWD module object handle 3488 * \return void 3489 * 3490 * \par Description 3491 * Enable the FW Event client of the context thread handler 3492 * 3493 * \sa 3494 */ 3495void TWD_EnableInterrupts (TI_HANDLE hTWD); 3496/** @ingroup Control 3497 * \brief Translate host to FW time (Usec) 3498 * 3499 * \param hTWD - TWD module object handle 3500 * \param uHostTime - The host time in MS to translate 3501 * 3502 * \return FW Time in Usec 3503 * 3504 * \par Description 3505 * 3506 * \sa 3507 */ 3508TI_UINT32 TWD_TranslateToFwTime (TI_HANDLE hTWD, TI_UINT32 uHostTime); 3509/** @ingroup BSS 3510 * \brief Get TWD HT Capabilities 3511 * 3512 * \param hTWD - TWD module object handle 3513 * \param pTwdHtCapabilities - Pointer read structure Output 3514 * \return TI_OK 3515 * 3516 * \par Description 3517 * 3518 * 3519 * \sa 3520 */ 3521void TWD_GetTwdHtCapabilities (TI_HANDLE hTWD, TTwdHtCapabilities **pTwdHtCapabilities); 3522#ifdef TI_DBG 3523/** @ingroup Measurement 3524 * \brief Prints Scan Server Debug status 3525 * 3526 * \param hTWD - TWD module object handle 3527 * \return TI_OK on success or TI_NOK on failure 3528 * 3529 * \par Description 3530 * 3531 * \sa 3532 */ 3533TI_STATUS TWD_PrintMacServDebugStatus (TI_HANDLE hTWD); 3534 3535/** @ingroup Test 3536 * \brief Prints Tx Info 3537 * 3538 * \param hTWD - TWD module object handle 3539 * \param ePrintInfo - Information type 3540 * \return TI_OK on success or TI_NOK on failure 3541 * 3542 * \par Description 3543 * Call the requested print function - used for Debug Test 3544 * 3545 * \sa 3546 */ 3547TI_STATUS TWD_PrintTxInfo (TI_HANDLE hTWD, ETwdPrintInfoType ePrintInfo); 3548#endif 3549 3550/*-----*/ 3551/* Get */ 3552/*-----*/ 3553 3554/** @ingroup Control 3555 * \brief Get number of Commands in CMD Queue 3556 * 3557 * \param hTWD - TWD module object handle 3558 * \return Maximum Number of Commands currently in CMD Queue 3559 * 3560 * \par Description 3561 * 3562 * \sa 3563 */ 3564TI_UINT32 TWD_GetMaxNumberOfCommandsInQueue (TI_HANDLE hTWD); 3565/** @ingroup Power_Management 3566 * \brief Get Power Save Status 3567 * 3568 * \param hTWD - TWD module object handle 3569 * \return TI_OK on success or TI_NOK on failure 3570 * 3571 * \par Description 3572 * 3573 * \sa 3574 */ 3575TI_BOOL TWD_GetPsStatus (TI_HANDLE hTWD); 3576 3577 3578/** @ingroup Control 3579 * \brief Get FW Information 3580 * 3581 * \param hTWD - TWD module object handle 3582 * \return TFwInfo - Pointer to Output FW Information Structure 3583 * 3584 * \par Description 3585 * Gets the TFwInfo pointer 3586 * 3587 * \sa TFwInfo 3588 */ 3589TFwInfo* TWD_GetFWInfo (TI_HANDLE hTWD); 3590/** @ingroup BSS 3591 * \brief Get Group Address Table 3592 * 3593 * \param hTWD - TWD module object handle 3594 * \param pEnabled - Pointer to Output Indicatore if MAC Address Filter is Enabled 3595 * \param pNumGroupAddrs - Pointer to Output Number of Group Address 3596 * \param pGroupAddr - Pointer to Output Group Address Table 3597 * \return TI_OK on success or TI_NOK on failure 3598 * 3599 * \par Description 3600 * 3601 * \sa TWD_WriteMib, TMacAddr 3602 */ 3603TI_STATUS TWD_GetGroupAddressTable (TI_HANDLE hTWD, TI_UINT8* pEnabled, TI_UINT8* pNumGroupAddrs, TMacAddr *pGroupAddr); 3604/** @ingroup Control 3605 * \brief Read Memory 3606 * 3607 * \param hTWD - TWD module object handle 3608 * \param pMemDebug - Pointer to read Output 3609 * \param fCb - Pointer to function Callback 3610 * \param hCb - Handle to function Callback Parameters 3611 * \return TI_OK on success or TI_NOK on failure 3612 * 3613 * \par Description 3614 * 3615 * \sa 3616 */ 3617TI_STATUS TWD_readMem (TI_HANDLE hTWD, TFwDebugParams* pMemDebug, void* fCb, TI_HANDLE hCb); 3618/** @ingroup Control 3619 * \brief Write Memory 3620 * 3621 * \param hTWD - TWD module object handle 3622 * \param pMemDebug - Pointer to write Input 3623 * \param fCb - Pointer to function Callback 3624 * \param hCb - Handle to function Callback Parameters 3625 * \return TI_OK on success or TI_NOK on failure 3626 * 3627 * \par Description 3628 * 3629 * \sa 3630 */ 3631TI_STATUS TWD_writeMem (TI_HANDLE hTWD, TFwDebugParams* pMemDebug, void* fCb, TI_HANDLE hCb); 3632 3633/** @ingroup Control 3634 * \brief Check if addr is a valid memory address 3635 * 3636 * \param hTWD - TWD module object handle 3637 * \param pMemDebug - Pointer to addr & length 3638 * \return TI_TRUE on success or TI_FALSE on failure 3639 * 3640 * \par Description 3641 * 3642 * \sa 3643 */ 3644TI_BOOL TWD_isValidMemoryAddr (TI_HANDLE hTWD, TFwDebugParams* pMemDebug); 3645 3646/** @ingroup Control 3647 * \brief Check if addr is a valid register address 3648 * 3649 * \param hTWD - TWD module object handle 3650 * \param pMemDebug - Pointer to addr & length 3651 * \return TI_TRUE on success or TI_FALSE on failure 3652 * 3653 * \par Description 3654 * 3655 * \sa 3656 */ 3657TI_BOOL TWD_isValidRegAddr (TI_HANDLE hTWD, TFwDebugParams* pMemDebug); 3658 3659/*-----*/ 3660/* Set */ 3661/*-----*/ 3662 3663/** @ingroup Power_Management 3664 * \brief Set Power Save Mode 3665 * 3666 * \param hTWD - TWD module object handle 3667 * \param ePsMode - Power Save Mode 3668 * \param bSendNullDataOnExit - Indicates whether to send NULL data when exiting driver mode 3669 * \param hPowerSaveCompleteCb - Handle to PS Complete CB Parameters Obj 3670 * \param fPowerSaveCompleteCb - The PS Complete CB function 3671 * \param fPowerSaveResponseCb - The PS Response CB function 3672 * \return TI_OK on success or TI_NOK on failure 3673 * 3674 * \par Description 3675 * 3676 * \sa 3677 */ 3678TI_STATUS TWD_SetPsMode (TI_HANDLE hTWD, 3679 E80211PsMode ePsMode, 3680 TI_BOOL bSendNullDataOnExit, 3681 TI_HANDLE hPowerSaveCompleteCb, 3682 TPowerSaveCompleteCb fPowerSaveCompleteCb, 3683 TPowerSaveResponseCb fPowerSaveResponseCb); 3684/** @ingroup Radio 3685 * \brief Set Rate Modulation 3686 * 3687 * \param hTWD - TWD module object handle 3688 * \param rate - Rate Modulation Value 3689 * \return TRUE if Power Service State is Pwer Save, FALSE otherwise 3690 * 3691 * \par Description 3692 * 3693 * \sa 3694 */ 3695TI_STATUS TWD_SetNullRateModulation (TI_HANDLE hTWD, TI_UINT16 rate); 3696/** @ingroup Radio 3697 * \brief Set Radio Band 3698 * 3699 * \param hTWD - TWD module object handle 3700 * \param eRadioBand - Radio Band Type 3701 * \return TI_OK on success or TI_NOK on failure 3702 * 3703 * \par Description 3704 * 3705 * \sa 3706 */ 3707TI_STATUS TWD_SetRadioBand (TI_HANDLE hTWD, ERadioBand eRadioBand); 3708/** @ingroup Data_Path 3709 * \brief Set Security Sequance Number 3710 * 3711 * \param hTWD - TWD module object handle 3712 * \param securitySeqNumLsByte - LS Byte of Security Sequance Number 3713 * \return TI_OK on success or TI_NOK on failure 3714 * 3715 * \par Description 3716 * Update the TKIP/AES sequence-number according to the Tx data packet security-sequance-number 3717 * Note: The FW always provides the last used sequance-number so no need to check if the current 3718 * packet is data and WEP is on 3719 * 3720 * \sa 3721 */ 3722TI_STATUS TWD_SetSecuritySeqNum (TI_HANDLE hTWD, TI_UINT8 securitySeqNumLsByte); 3723/** @ingroup BSS 3724 * \brief Update DTIM & TBTT 3725 * 3726 * \param hTWD - TWD module object handle 3727 * \param uDtimPeriod - DTIM period in number of beacons 3728 * \param uBeaconInterval - Beacon perios in TUs (1024 msec) 3729 * \return void 3730 * 3731 * \par Description 3732 * Update DTIM and Beacon periods for scan timeout calculations 3733 * 3734 * \sa 3735 */ 3736void TWD_UpdateDtimTbtt (TI_HANDLE hTWD, TI_UINT8 uDtimPeriod, TI_UINT16 uBeaconInterval); 3737 3738/*---------*/ 3739/* Command */ 3740/*---------*/ 3741 3742 3743/** @ingroup Measurement 3744 * \brief Set Split scan time out 3745 * 3746 * \param hTWD - TWD module object handle 3747 * \param uTimeOut - Scan Time Out 3748 * \return TI_OK on success or TI_NOK on failure 3749 * 3750 * \par Description 3751 * Set Triggered scan time out per channel 3752 * 3753 * \sa 3754 */ 3755TI_STATUS TWD_CmdSetSplitScanTimeOut (TI_HANDLE hTWD, TI_UINT32 uTimeOut); 3756/** @ingroup BSS 3757 * \brief Join BSS 3758 * 3759 * \param hTWD - TWD module object handle 3760 * \param pJoinBssParams - Pointer to Join BSS Input parameters structure 3761 * \return TI_OK on success or TI_NOK on failure 3762 * 3763 * \par Description 3764 * 3765 * \sa 3766 */ 3767TI_STATUS TWD_CmdJoinBss (TI_HANDLE hTWD, TJoinBss *pJoinBssParams); 3768/** @ingroup Control 3769 * \brief Command Template 3770 * 3771 * \param hTWD - TWD module object handle 3772 * \param pTemplateParams - Pointer to Input Template Parameters Structure 3773 * \param fCb - Pointer to Command Callback Function 3774 * \param hCb - Handle to Command Callback Function Obj. Parameters 3775 * \return TI_OK on success or TI_NOK on failure 3776 * 3777 * \par Description 3778 * Sets a template to the FW 3779 * 3780 * \sa 3781 */ 3782/* 6.1.08 - for future WHA measurement command */ 3783TI_STATUS TWD_CmdTemplate (TI_HANDLE hTWD, TSetTemplate *pTemplateParams, void *fCb, TI_HANDLE hCb); 3784/** @ingroup Data_Path 3785 * \brief Enable Tx path 3786 * 3787 * \param hTWD - TWD module object handle 3788 * \param channel - Channel Number 3789 * \return TI_OK on success or TI_NOK on failure 3790 * 3791 * \par Description 3792 * Enable tx path on the hardware 3793 * 3794 * \sa 3795 */ 3796TI_STATUS TWD_CmdEnableTx (TI_HANDLE hTWD, TI_UINT8 channel); 3797/** @ingroup Data_Path 3798 * \brief Disable Tx path 3799 * 3800 * \param hTWD - TWD module object handle 3801 * \return TI_OK on success or TI_NOK on failure 3802 * 3803 * \par Description 3804 * 3805 * \sa 3806 */ 3807TI_STATUS TWD_CmdDisableTx (TI_HANDLE hTWD); 3808/** @ingroup Measurement 3809 * \brief Command Noise Histogram 3810 * 3811 * \param hTWD - TWD module object handle 3812 * \param pNoiseHistParams - Pointer Input Noise Histogram Parameters: 3813 * holds Start/Stop Noise Histogram Measure Indication, 3814 * Sample Interval & Sample Ranges 3815 * \return TI_OK on success or TI_NOK on failure 3816 * 3817 * \par Description 3818 * Send a Start/Stop Noise Histogram Measure Command to the FW with measure parameters 3819 * 3820 * \sa TNoiseHistogram 3821 */ 3822TI_STATUS TWD_CmdNoiseHistogram (TI_HANDLE hTWD, TNoiseHistogram *pNoiseHistParams); 3823 3824/** @ingroup Radio 3825 * \brief Command Switch Channel 3826 * 3827 * \param hTWD - TWD module object handle 3828 * \param pSwitchChannelCmd - Pointer to Switch Channel Parameters Structure 3829 * \return TI_OK on success or TI_NOK on failure 3830 * 3831 * \par Description 3832 * 3833 * \sa TSwitchChannelParams 3834 */ 3835TI_STATUS TWD_CmdSwitchChannel (TI_HANDLE hTWD, TSwitchChannelParams *pSwitchChannelCmd); 3836/** @ingroup Radio 3837 * \brief Command Switch Channel Cancel 3838 * 3839 * \param hTWD - TWD module object handle 3840 * \param channel - Channek Number 3841 * \return TI_OK on success or TI_NOK on failure 3842 * 3843 * \par Description 3844 * 3845 * \sa 3846 */ 3847TI_STATUS TWD_CmdSwitchChannelCancel (TI_HANDLE hTWD, TI_UINT8 channel); 3848/** @ingroup Control 3849 * \brief FW Disconnect 3850 * 3851 * \param hTWD - TWD module object handle 3852 * \return TI_OK on success or TI_NOK on failure 3853 * 3854 * \par Description 3855 * 3856 * \sa 3857 */ 3858TI_STATUS TWD_CmdFwDisconnect (TI_HANDLE hTWD, DisconnectType_e uDisconType, TI_UINT16 uDisconReason); 3859/** @ingroup Measurement 3860 * \brief Start Measurement Command 3861 * 3862 * \param hTWD - TWD module object handle 3863 * \param uDisconReason - 2 bytes of disconnect reason to be use in deauth/disassoc frmaes 3864 * \param uDisconType - Immediate (dont send frames) or send Deauth or send Disassoc frmae 3865 * \return TI_OK on success or TI_NOK on failure 3866 * 3867 * \par Description 3868 * send Command for start measurement to FW 3869 * 3870 * \sa TMeasurementParams 3871 */ 3872TI_STATUS TWD_CmdMeasurement (TI_HANDLE hTWD, 3873 TMeasurementParams *pMeasurementParams, 3874 void *fCommandResponseCb, 3875 TI_HANDLE hCb); 3876/** @ingroup Measurement 3877 * \brief Stop Measurement Command 3878 * 3879 * \param hTWD - TWD module object handle 3880 * \param fCb - Pointer to Callback Function 3881 * \param hCb - Handle to Callback Function Object Parameters 3882 * \return TI_OK on success or TI_NOK on failure 3883 * 3884 * \par Description 3885 * send Command for stop measurement to FW 3886 * 3887 * \sa 3888 */ 3889TI_STATUS TWD_CmdMeasurementStop (TI_HANDLE hTWD, void* fCb, TI_HANDLE hCb); 3890/** @ingroup UnKnown 3891 * \brief AP Discovery 3892 * 3893 * \param hTWD - TWD module object handle 3894 * \param pApDiscoveryParams - Pointer to Input AP Discovery Parameters Structure 3895 * \return TI_OK on success or TI_NOK on failure 3896 * 3897 * \par Description 3898 * 3899 * \sa 3900 */ 3901TI_STATUS TWD_CmdApDiscovery (TI_HANDLE hTWD, TApDiscoveryParams *pApDiscoveryParams); 3902/** @ingroup UnKnown 3903 * \brief AP Discovery Stop 3904 * 3905 * \param hTWD - TWD module object handle 3906 * \return TI_OK on success or TI_NOK on failure 3907 * 3908 * \par Description 3909 * 3910 * \sa 3911 */ 3912TI_STATUS TWD_CmdApDiscoveryStop (TI_HANDLE hTWD); 3913 3914/** @ingroup Control 3915 * \brief Helth Check 3916 * 3917 * \param hTWD - TWD module object handle 3918 * \return TI_OK on success or TI_NOK on failure 3919 * 3920 * \par Description 3921 * Trigger the FW health test command and wait for results 3922 * 3923 * \sa 3924 */ 3925TI_STATUS TWD_CmdHealthCheck (TI_HANDLE hTWD); 3926/** @ingroup UnKnown 3927 * \brief AP Discovery 3928 * 3929 * \param hTWD - TWD module object handle 3930 * \param staState - stat of the station (CONNECTED) 3931 * \return TI_OK on success or TI_NOK on failure 3932 * 3933 * \par Description 3934 * 3935 * \sa 3936 */ 3937TI_STATUS TWD_CmdSetStaState (TI_HANDLE hTWD, TI_UINT8 staState, void *fCb, TI_HANDLE hCb); 3938 3939/*-----------*/ 3940/* Configure */ 3941/*-----------*/ 3942 3943/** @ingroup UnKnown 3944 * \brief Configure ARP table 3945 * 3946 * \param hTWD - TWD module object handle 3947 * \param tIpAddr - IP Address Input Buffer 3948 * \param bEnabled - Indicates if ARP filtering is Enabled (1) or Disabled (0) 3949 * \param eIpVer - IP Version 3950 * \return TI_OK on success or TI_NOK on failure 3951 * 3952 * \par Description 3953 * Configure ARP IP Address table 3954 * 3955 * \sa 3956 */ 3957TI_STATUS TWD_CfgArpIpAddrTable (TI_HANDLE hTWD, 3958 TIpAddr tIpAddr, 3959 TI_BOOL bEnabled, 3960 EIpVer eIpVer); 3961/** @ingroup BSS 3962 * \brief Configure Group Address Table 3963 * 3964 * \param hTWD - TWD module object handle 3965 * \param uNumGroupAddrs - Number of Group Address 3966 * \param pGroupAddr - Pointer to Input Group Address Table 3967 * \param bEnabled - Indicates if MAC Address Filter is Enabled 3968 * \return TI_OK on success or TI_NOK on failure 3969 * 3970 * \par Description 3971 * 3972 * \sa TWD_WriteMib 3973 */ 3974TI_STATUS TWD_CfgGroupAddressTable (TI_HANDLE hTWD, 3975 TI_UINT8 uNumGroupAddrs, 3976 TMacAddr *pGroupAddr, 3977 TI_BOOL bEnabled); 3978/** @ingroup Data_Path 3979 * \brief Configure RX Filters 3980 * 3981 * \param hTWD - TWD module object handle 3982 * \param uRxConfigOption - RX Configuration Option 3983 * \param uRxFilterOption - RX Filter Option 3984 * \return TI_OK on success or TI_NOK on failure 3985 * 3986 * \par Description 3987 * 3988 * \sa TWD_WriteMib 3989 */ 3990TI_STATUS TWD_CfgRx (TI_HANDLE hTWD, TI_UINT32 uRxConfigOption, TI_UINT32 uRxFilterOption); 3991/** @ingroup UnKnown 3992 * \brief Configure Packet Detection Threshold 3993 * 3994 * \param hTWD - TWD module object handle 3995 * \param threshold - Threshold Value 3996 * \return TI_OK on success or TI_NOK on failure 3997 * 3998 * \par Description 3999 * 4000 * \sa ERate 4001 */ 4002TI_STATUS TWD_CfgPacketDetectionThreshold (TI_HANDLE hTWD, TI_UINT32 threshold); 4003/** @ingroup Radio 4004 * \brief Configure Slot Time 4005 * 4006 * \param hTWD - TWD module object handle 4007 * \param eSlotTimeVal - Slot Time Value 4008 * \return TI_OK on success or TI_NOK on failure 4009 * 4010 * \par Description 4011 * 4012 * \sa 4013 */ 4014TI_STATUS TWD_CfgSlotTime (TI_HANDLE hTWD, ESlotTime eSlotTimeVal); 4015/** @ingroup Radio 4016 * \brief Configure Preamble 4017 * 4018 * \param hTWD - TWD module object handle 4019 * \param ePreamble - Preamble Value 4020 * \return TI_OK on success or TI_NOK on failure 4021 * 4022 * \par Description 4023 * 4024 * \sa 4025 */ 4026TI_STATUS TWD_CfgPreamble (TI_HANDLE hTWD, EPreamble ePreamble); 4027/** @ingroup Power_Management 4028 * \brief Configure Beacon Filter State 4029 * 4030 * \param hTWD - TWD module object handle 4031 * \param uBeaconFilteringStatus - Beacon Filtering Status. Indicates whether the filter is enabled: 4032 * 1 - enabled, 0 - disabled 4033 * \param uNumOfBeaconsToBuffer - Determines the number of beacons without the unicast TIM bit set, 4034 * that the firmware buffers before signaling the host about ready frames. 4035 * When thi snumber is set to 0 and the filter is enabled, beacons without 4036 * the unicast TIM bit set are dropped. 4037 * \return TI_OK on success or TI_NOK on failure 4038 * 4039 * \par Description 4040 * Configure Beacon Filter State to the FW 4041 * 4042 * \sa 4043 */ 4044TI_STATUS TWD_CfgBeaconFilterOpt (TI_HANDLE hTWD, TI_UINT8 uBeaconFilteringStatus, TI_UINT8 uNumOfBeaconsToBuffer); 4045/** @ingroup Power_Management 4046 * \brief Configure Beacon Filter Table 4047 * 4048 * \param hTWD - TWD module object handle 4049 * \param uNumOfIe - The number of IE's in the table 4050 * \param pIeTable - Pointer to Input IE Table 4051 * \param uIeTableSize - Size of Input IE Table 4052 * \return TI_OK on success or TI_NOK on failure 4053 * 4054 * \par Description 4055 * Configure Beacon Filter Table to the FW 4056 * 4057 * \sa 4058 */ 4059TI_STATUS TWD_CfgBeaconFilterTable (TI_HANDLE hTWD, TI_UINT8 uNumOfIe, TI_UINT8 *pIeTable, TI_UINT8 uIeTableSize); 4060/** @ingroup Power_Management 4061 * \brief Configure Wake Up Condition 4062 * 4063 * \param hTWD - TWD module object handle 4064 * \param pPowerMgmtConfig - Pointer to Input Power Management Configuration Parameters 4065 * \return TI_OK on success or TI_NOK on failure 4066 * 4067 * \par Description 4068 * Configure Power Manager's Wake Up Condition 4069 * 4070 * \sa 4071 */ 4072TI_STATUS TWD_CfgWakeUpCondition (TI_HANDLE hTWD, TPowerMgmtConfig *pPowerMgmtConfig); 4073/** @ingroup UnKnown 4074 * \brief Configure Beacon Broadcast Options 4075 * 4076 * \param hTWD - TWD module object handle 4077 * \param pPowerMgmtConfig - Pointer to Input Power Management Configuration Parameters Structure 4078 * The Following Field should be filled: 4079 * pPowerMgmtConfig->BcnBrcOptions.BeaconRxTimeout 4080 * pPowerMgmtConfig->BcnBrcOptions.BroadcastRxTimeout 4081 * pPowerMgmtConfig->BcnBrcOptions.RxBroadcastInPs - if set, enables receive of broadcast packets in Power-Save mode 4082 * pPowerMgmtConfig->ConsecutivePsPollDeliveryFailureThreshold - No answer after Ps-Poll work-around 4083 * \return TI_OK on success or TI_NOK on failure 4084 * 4085 * \par Description 4086 * Configure Power Manager's Beacon Broadcast Options: 4087 * Beacon RX time Out, Broadcast RX Timeout, RX Broadcast In Power Save, 4088 * Consecutive Power Save Poll Delivery Failure Threshold 4089 * 4090 * 4091 * \sa TPowerMgmtConfig, TBcnBrcOptions 4092 */ 4093TI_STATUS TWD_CfgBcnBrcOptions (TI_HANDLE hTWD, TPowerMgmtConfig *pPowerMgmtConfig); 4094 4095/** @ingroup BSS 4096 * \brief Configure Max TX Retry 4097 * 4098 * \param hTWD - TWD module object handle 4099 * \param pRoamingTriggerCmd - Pointer to Input Configuration Parameters Structure 4100 * The Following Field should be filled: 4101 * pRoamingTriggerCmd->maxTxRetry 4102 * \return TI_OK on success or TI_NOK on failure 4103 * 4104 * \par Description 4105 * Configure the Max Tx Retry parameters 4106 * 4107 * \sa 4108 */ 4109TI_STATUS TWD_CfgMaxTxRetry (TI_HANDLE hTWD, TRroamingTriggerParams *pRoamingTriggerCmd); 4110/** @ingroup BSS 4111 * \brief Configure Connection Monitoring 4112 * 4113 * \param hTWD - TWD module object handle 4114 * \param pRoamingTriggerCmd - Pointer to Input Configuration Parameters Structure 4115 * The Following Field should be filled: 4116 * pRoamingTriggerCmd->BssLossTimeout 4117 * pRoamingTriggerCmd->TsfMissThreshold 4118 * \return TI_OK on success or TI_NOK on failure 4119 * 4120 * \par Description 4121 * Configure the Bss Lost Timeout & TSF miss threshold Parameters 4122 * 4123 * \sa 4124 */ 4125TI_STATUS TWD_CfgConnMonitParams (TI_HANDLE hTWD, TRroamingTriggerParams *pRoamingTriggerCmd); 4126/** @ingroup Power_Management 4127 * \brief Configure Sleep Auth 4128 * 4129 * \param hTWD - TWD module object handle 4130 * \param eMinPowerPolicy - Minimum Power Policy Type 4131 * \return TI_OK on success or TI_NOK on failure 4132 * 4133 * \par Description 4134 * Configure the minimum power policy to the FW 4135 * 4136 * \sa EPowerPolicy 4137 */ 4138TI_STATUS TWD_CfgSleepAuth (TI_HANDLE hTWD, EPowerPolicy eMinPowerPolicy); 4139/** @ingroup Control 4140 * \brief Configure MAC Clock 4141 * 4142 * \param hTWD - TWD module object handle 4143 * \param uMacClock - MAC Clock value 4144 * \return TI_OK on success or TI_NOK on failure 4145 * 4146 * \par Description 4147 * 4148 * \sa 4149 */ 4150TI_STATUS TWD_CfgMacClock (TI_HANDLE hTWD, TI_UINT32 uMacClock); 4151/** @ingroup Control 4152 * \brief Configure ARM Clock 4153 * 4154 * \param hTWD - TWD module object handle 4155 * \param uArmClock - ARM Clock value 4156 * \return TI_OK on success or TI_NOK on failure 4157 * 4158 * \par Description 4159 * 4160 * \sa 4161 */ 4162TI_STATUS TWD_CfgArmClock (TI_HANDLE hTWD, TI_UINT32 uArmClock); 4163/** @ingroup Data_Path 4164 * \brief Configure RX Data Filter 4165 * 4166 * \param hTWD - TWD module object handle 4167 * \param index - Index of the Rx Data filter 4168 * \param command - Command: Add/remove the filter 4169 * \param eAction - Action to take when packets match the pattern 4170 * \param uNumFieldPatterns - Number of field patterns in the filter 4171 * \param uLenFieldPatterns - Length of the field pattern series 4172 * \param pFieldPatterns - Series of field patterns 4173 * \return TI_OK on success or TI_NOK on failure 4174 * 4175 * \par Description 4176 * Add/remove Rx Data filter information element 4177 * 4178 * \sa 4179 */ 4180TI_STATUS TWD_CfgRxDataFilter (TI_HANDLE hTWD, 4181 TI_UINT8 index, 4182 TI_UINT8 command, 4183 filter_e eAction, 4184 TI_UINT8 uNumFieldPatterns, 4185 TI_UINT8 uLenFieldPatterns, 4186 TI_UINT8 *pFieldPatterns); 4187/** @ingroup Data_Path 4188 * \brief Configure Enable RX Data Filter 4189 * 4190 * \param hTWD - TWD module object handle 4191 * \param bEnabled - Indicates if Rx data filtering is enabled or Disabled 4192 * (0: data filtering disabled, Otherwise: enabled) 4193 * \param eDefaultAction - The default action taken on non-matching packets 4194 * \return TI_OK on success or TI_NOK on failure 4195 * 4196 * \par Description 4197 * Configure Enable/Disable RX Data Filter, and which default action to perform if it is enabled 4198 * 4199 * \sa 4200 */ 4201TI_STATUS TWD_CfgEnableRxDataFilter (TI_HANDLE hTWD, TI_BOOL bEnabled, filter_e eDefaultAction); 4202/** @ingroup BSS 4203 * \brief Configure RRSSI/SNR Trigger parameters 4204 * 4205 * \param hTWD - TWD module object handle 4206 * \param pRssiSnrTrigger - Pointer to RRSSI/SNR Input parameter Structure 4207 * \return TI_OK on success or TI_NOK on failure 4208 * 4209 * \par Description 4210 * 4211 * \sa 4212 */ 4213TI_STATUS TWD_CfgRssiSnrTrigger (TI_HANDLE hTWD, RssiSnrTriggerCfg_t* pRssiSnrTrigger); 4214/** @ingroup QoS 4215 * \brief Configure AC parameters 4216 * 4217 * \param hTWD - TWD module object handle 4218 * \param pAcQosParams - Pointer to Input AC Quality Of Service Parameters Structure 4219 * Fields that should be filled: 4220 * pAcQosParams->ac 4221 * pAcQosParams->aifsn 4222 * pAcQosParams->cwMax 4223 * pAcQosParams->cwMin 4224 * pAcQosParams->txopLimit 4225 * \param fCb - Pointer to Command CB Function 4226 * \param hCb - Handle to Command CB Function Obj Parameters 4227 * \return TI_OK on success or TI_NOK on failure 4228 * 4229 * \par Description 4230 * 4231 * \sa 4232 */ 4233TI_STATUS TWD_CfgAcParams (TI_HANDLE hTWD, TAcQosParams *pAcQosParams, void *fCb, TI_HANDLE hCb); 4234/** @ingroup QoS 4235 * \brief Configure Power Save RX Streaming 4236 * 4237 * \param hTWD - TWD module object handle 4238 * \param pPsRxStreaming - Pointer to Input Power Save RX Straeming Parameters Structure 4239 * Fields that should be filled: 4240 * pPsRxStreaming->uTid 4241 * pPsRxStreaming->bEnabled 4242 * pPsRxStreaming->uStreamPeriod 4243 * pPsRxStreaming->uTxTimeout 4244 * \param fCb - Pointer to Command CB Function 4245 * \param hCb - Handle to Command CB Function Obj Parameters 4246 * \return TI_OK on success or TI_NOK on failure 4247 * 4248 * \par Description 4249 * 4250 * \sa TPsRxStreaming 4251 */ 4252TI_STATUS TWD_CfgPsRxStreaming (TI_HANDLE hTWD, TPsRxStreaming *pPsRxStreaming, void *fCb, TI_HANDLE hCb); 4253/** @ingroup Power_Management 4254 * \brief Configure BET 4255 * 4256 * \param hTWD - TWD module object handle 4257 * \param Enable - 0: disable BET, Otherwirs: Enable BET 4258 * \param MaximumConsecutiveET - Max number of consecutive beacons that may be early terminated 4259 * \return TI_OK on success or TI_NOK on failure 4260 * 4261 * \par Description 4262 * 4263 * \sa 4264 */ 4265TI_STATUS TWD_CfgBet (TI_HANDLE hTWD, TI_UINT8 Enable, TI_UINT8 MaximumConsecutiveET); 4266/** @ingroup UnKnown 4267 * \brief Configure Keep Alive 4268 * 4269 * \param hTWD - TWD module object handle 4270 * \param pKeepAliveParams - Pointer to Keep Alive parameters structure 4271 * \return TI_OK on success or TI_NOK on failure 4272 * 4273 * \par Description 4274 * Configures the keep-alive paramters 4275 * 4276 * \sa 4277 */ 4278TI_STATUS TWD_CfgKeepAlive (TI_HANDLE hTWD, TKeepAliveParams *pKeepAliveParams); 4279/** @ingroup Power_Management 4280 * \brief Configure Keep Alive Enable/Disable flag 4281 * 4282 * \param hTWD - TWD module object handle 4283 * \param enaDisFlag - Indicates whether to Enable (TI_TRUE) or Disable Keep Alive 4284 * \return TI_OK on success or TI_NOK on failure 4285 * 4286 * \par Description 4287 * 4288 * \sa 4289 */ 4290TI_STATUS TWD_CfgKeepAliveEnaDis (TI_HANDLE hTWD, TI_UINT8 enaDisFlag); 4291/** @ingroup Data_Path 4292 * \brief Configure Set BA Initiator 4293 * 4294 * \param hTWD - TWD module object handle 4295 * \param uTid - TID number 4296 * \param uState - Policy : Enable / Disable 4297 * \param tRa - Mac address of: SA as receiver / RA as initiator 4298 * \param uWinSize - windows size in number of packet 4299 * \param uInactivityTimeout - as initiator inactivity timeout in time units(TU) of 1024us / as receiver reserved 4300 * \return TI_OK on success or TI_NOK on failure 4301 * 4302 * \par Description 4303 * configure BA session initiator parameters setting in the FW 4304 * called after join in order to init the parameters for negotiating BA sessions as initiator. 4305 * Parameters initialized: RA, TID, WinSize, Inactivity Timeout and state = Enable/Disable. 4306 * In case the host sends a broadcast address as RA the FW is allowed to Set or Deleted BA sessions 4307 * to any receiver for that TID. 4308 * In case of disassociate the FW allowed to establish BA session just after get that command. 4309 * That command will not need any respond from the FW. In case DELBA send to STA or from the 4310 * STA as initiator the FW doesn't send event to the host 4311 * 4312 * \sa 4313 */ 4314TI_STATUS TWD_CfgSetBaInitiator (TI_HANDLE hTWD, 4315 TI_UINT8 uTid, 4316 TI_UINT8 uState, 4317 TMacAddr tRa, 4318 TI_UINT16 uWinSize, 4319 TI_UINT16 uInactivityTimeout); 4320/** @ingroup Data_Path 4321 * \brief Configure Set BA Receiver 4322 * 4323 * \param hTWD - TWD module object handle 4324 * \param uTid - TID number 4325 * \param uState - Policy : Enable / Disable 4326 * \param tRa - Mac address of: SA as receiver / RA as initiator 4327 * \param uWinSize - windows size in number of packet 4328 * \return TI_OK on success or TI_NOK on failure 4329 * 4330 * \par Description 4331 * configure BA session receiver parameters setting in the FW 4332 * called after join in order to init the parameters for incoming BA session, as a responder. 4333 * Parameters initialized: SA, TID, winSize and state = Enable/Disable. 4334 * In case the host sends a broadcast address as SA the FW is allowed to Set/Deleted BA sessions 4335 * to any sender for that TID. 4336 * In case of disassociate the FW allowed to establish BA session just after get that command. 4337 * The events of that command will respond via the RX path from the FW: ADDBA, DELBA, BAR packets. 4338 * 4339 * \sa 4340 */ 4341TI_STATUS TWD_CfgSetBaReceiver (TI_HANDLE hTWD, 4342 TI_UINT8 uTid, 4343 TI_UINT8 uState, 4344 TMacAddr tRa, 4345 TI_UINT16 uWinSize); 4346 4347/** @ingroup Data_Path 4348 * \brief Close all BA receiver sessions 4349 * 4350 * \param hTWD - TWD module object handle 4351 * \return None 4352 * 4353 * \par Description 4354 * Close all BA receiver sessions and pass all packets in the TID queue to upper layer. 4355 * 4356 * \sa 4357 */ 4358void TWD_CloseAllBaSessions(TI_HANDLE hTWD); 4359 4360/** @ingroup BSS 4361 * \brief Set FW HT Capabilities 4362 * 4363 * \param hTWD - TWD module object handle 4364 * \param pHtCapabilitiesIe - Pointer to string of HT capability IE unparsed 4365 * \param bAllowHtOperation - TI_TRUE: HT operation allowed, Otherwise: HT operation NOT allowed 4366 * \return TI_OK on success or TI_NOK on failure 4367 * 4368 * \par Description 4369 * Parse HT capability IE and set the current AP HT Capabilities to the FW 4370 * 4371 * \sa 4372 */ 4373TI_STATUS TWD_CfgSetFwHtCapabilities (TI_HANDLE hTWD, 4374 Tdot11HtCapabilitiesUnparse *pHtCapabilitiesIe, 4375 TI_BOOL bAllowHtOperation); 4376/** @ingroup BSS 4377 * \brief Set FW HT Information 4378 * 4379 * \param hTWD - TWD module object handle 4380 * \param pHtInformationIe - Pointer to string of HT information IE unparsed 4381 * \return TI_OK on success or TI_NOK on failure 4382 * 4383 * \par Description 4384 * Parse HT Information IE and set the current AP HT Information to the FW 4385 * 4386 * \sa 4387 */ 4388TI_STATUS TWD_CfgSetFwHtInformation (TI_HANDLE hTWD, Tdot11HtInformationUnparse *pHtInformationIe); 4389 4390 4391/** @ingroup UnKnown 4392 * \brief Enable/Disabel burst mode 4393 * 4394 * \param hTWD - TWD module object handle 4395 * \param bEnabled - burst mode: Enable/Disable 4396 * \return TI_OK 4397 * 4398 * \par Description 4399 * 4400 * \sa 4401 */ 4402TI_STATUS TWD_CfgBurstMode (TI_HANDLE hTWD, TI_BOOL bEnabled); 4403 4404/*-------------*/ 4405/* Interrogate */ 4406/*-------------*/ 4407 4408/** @ingroup UnKnown 4409 * \brief Interrogate Roamming Statistics 4410 * 4411 * \param hTWD - TWD module object handle 4412 * \param fCb - Pointer to Command CB Function 4413 * \param hCb - Handle to Command CB Function Obj Parameters 4414 * \param pCb - Pointer to read parameters 4415 * \return TI_OK on success or TI_NOK on failure 4416 * 4417 * \par Description 4418 * Interrogate ACX Roamming Statistics 4419 * 4420 * \sa 4421 */ 4422TI_STATUS TWD_ItrRoammingStatisitics (TI_HANDLE hTWD, void *fCb, TI_HANDLE hCb, void *pCb); 4423/** @ingroup UnKnown 4424 * \brief Configure/Interrogate RSSI 4425 * 4426 * \param hTWD - TWD module object handle 4427 * \param fCb - Pointer to Command CB Function 4428 * \param hCb - Handle to Command CB Function Obj Parameters 4429 * \param pCb - Pointer to read parameters 4430 * \return TI_OK on success or TI_NOK on failure 4431 * 4432 * \par Description 4433 * Configure/Interrogate StationId information element to/from FW 4434 * This information element specifies the MAC Address assigned to the STATION or AP. 4435 * The RSSI is Configed to default value which is the permanent MAC address which 4436 * is stored in the adaptor's non-volatile memory. 4437 * 4438 * \sa 4439 */ 4440TI_STATUS TWD_ItrRSSI (TI_HANDLE hTWD, void *fCb, TI_HANDLE hCb, void *pCb); 4441/** @ingroup UnKnown 4442 * \brief Interrogate Memory Map 4443 * 4444 * \param hTWD - TWD module object handle 4445 * \param pMap - Pointer to Output Memory Map 4446 * \param fCb - Pointer to Callback Function 4447 * \param hCb - Handle to Callback Function Parameters Object 4448 * \return TI_OK on success or TI_NOK on failure 4449 * 4450 * \par Description 4451 * Interrogate Memory Map from FW 4452 * 4453 * \sa MemoryMap_t 4454 */TI_STATUS TWD_ItrMemoryMap (TI_HANDLE hTWD, MemoryMap_t *pMap, void *fCb, TI_HANDLE hCb); 4455/** @ingroup UnKnown 4456 * \brief Interrogate Statistics 4457 * 4458 * \param hTWD - TWD module object handle 4459 * \param fCb - Pointer to Command CB Function 4460 * \param hCb - Handle to Command CB Function Obj Parameters 4461 * \param pCb - Pointer to read parameters 4462 * \return TI_OK on success or TI_NOK on failure 4463 * 4464 * \par Description 4465 * 4466 * \sa 4467 */ 4468TI_STATUS TWD_ItrStatistics (TI_HANDLE hTWD, void *fCb, TI_HANDLE hCb, void *pCb); 4469/** @ingroup Data_Path 4470 * \brief Interrogate Data Filter Statistics 4471 * 4472 * \param hTWD - TWD module object handle 4473 * \param fCb - Pointer to Command CB Function 4474 * \param hCb - Handle to Command CB Function Obj Parameters 4475 * \param pCb - Pointer to read parameters 4476 * \return TI_OK on success or TI_NOK on failure 4477 * 4478 * \par Description 4479 * 4480 * \sa 4481 */TI_STATUS TWD_ItrDataFilterStatistics (TI_HANDLE hTWD, void *fCb, TI_HANDLE hCb, void *pCb); 4482 4483/* 4484 * -------------------------------------------------------------- 4485 * TNETW-Driver Tx API Functions 4486 * -------------------------------------------------------------- 4487 */ 4488 4489/** @ingroup Data_Path 4490 * \brief TWD TX Control Block Allocation 4491 * 4492 * \param hTWD - TWD module object handle 4493 * \return Pointer to Control Block Entry on success or NULL on failure 4494 * 4495 * \par Description 4496 * Use this function for Allocate a Control-Block for the packet Tx parameters and descriptor 4497 * 4498 * \sa 4499 */ 4500TTxCtrlBlk *TWD_txCtrlBlk_Alloc (TI_HANDLE hTWD); 4501/** @ingroup Data_Path 4502 * \brief TWD TX Control Block Free 4503 * 4504 * \param hTWD - TWD module object handle 4505 * \param pCurrentEntry - Pointer to TX Control Block Entry to Free 4506 * \return void 4507 * 4508 * \par Description 4509 * Use this function for Free a Control-Block of packet Tx parameters and descriptor 4510 * 4511 * \sa 4512 */ 4513void TWD_txCtrlBlk_Free (TI_HANDLE hTWD, TTxCtrlBlk *pCurrentEntry); 4514/** @ingroup Data_Path 4515 * \brief TWD TX Control Get Pointer 4516 * 4517 * \param hTWD - TWD module object handle 4518 * \param descId - Id of TX Control Block Descriptor 4519 * \return Pointer to Control Block Entry on success or NULL on failure 4520 * 4521 * \par Description 4522 * Use this function for Get a Pointer to a Control-Block of packet Tx parameters and descriptor 4523 * 4524 * \sa 4525 */ 4526TTxCtrlBlk *TWD_txCtrlBlk_GetPointer (TI_HANDLE hTWD, TI_UINT8 descId); 4527 4528/** @ingroup Data_Path 4529 * \brief Allocate Resources for TX HW Queue 4530 * 4531 * \param hTWD - TWD module object handle 4532 * \param pTxCtrlBlk - The Tx packet control block 4533 * \return see - ETxHwQueStatus 4534 * 4535 * \par Description 4536 * Allocates Resources (HW-blocks number required) for TX HW Queue 4537 * 4538 * \sa 4539 */ 4540ETxHwQueStatus TWD_txHwQueue_AllocResources (TI_HANDLE hTWD, TTxCtrlBlk *pTxCtrlBlk); 4541 4542/** @ingroup Data_Path 4543 * \brief TX Xfer Send Packet 4544 * 4545 * \param hTWD - TWD module object handle 4546 * \param pPktCtrlBlk - Pointer to TX Control Block Entry to Free 4547 * \return see ETxnStatus 4548 * 4549 * \par Description 4550 * Send Packet via TX Xfer 4551 * 4552 * \sa 4553 */ 4554ETxnStatus TWD_txXfer_SendPacket (TI_HANDLE hTWD, TTxCtrlBlk *pPktCtrlBlk); 4555/** @ingroup Control 4556 * \brief Watch Dog Expire Event 4557 * 4558 * \param hTWD - TWD module object handle 4559 * \return TI_OK on success or TI_NOK on failure 4560 * 4561 * \par Description 4562 * This function handles the Event of Watch Dog Expire (FW stopped) 4563 * 4564 * \sa 4565 */ 4566TI_STATUS TWD_WdExpireEvent (TI_HANDLE hTWD); 4567/* 4568 * -------------------------------------------------------------- 4569 * BIT API Functions 4570 * -------------------------------------------------------------- 4571 */ 4572/** @ingroup Control 4573 * \brief TWD Test Command Complete CB 4574 * 4575 * \param Handle - handle to object 4576 * \param eStatus - Status of Driver Test Performed 4577 * \param pTestCmdParams - Pointer to Output of Test Command Parameters 4578 * \return void 4579 * 4580 * \par Description 4581 * The function prototype for the BIT Test Command Complete CB 4582 * Enables user to implement and use its own BIT Test Command Complete CB 4583 * which will be called when Driver Test end 4584 * 4585 * \sa TWDriverTest 4586 */ 4587typedef void (*TTestCmdCB)(TI_HANDLE Handle, 4588 TI_STATUS eStatus, 4589 TI_HANDLE pTestCmdParams); 4590/** @ingroup Control 4591 * \brief TWD Test Command Complete CB 4592 * 4593 * \param Handle - handle to object 4594 * \param eStatus - Status of Driver Test Performed (Complete/Pending/Error) 4595 * \param pTestCmdParams - Pointer to Output of Test Command Parameters 4596 * \return void 4597 * 4598 * \par Description 4599 * The function implementation for the BIT Test Command Complete CB 4600 * 4601 * \sa 4602 */ 4603void TWDriverTestCB(TI_HANDLE Handle, 4604 TI_STATUS eStatus, 4605 TI_HANDLE pTestCmdParams); 4606/** @ingroup Control 4607 * \brief TWD Driver Test 4608 * 4609 * \param hTWD - handle to TWD object 4610 * \param eTestCmd - Identifier of test Command to Perform 4611 * \param pTestCmdParams - Pointer to Input/Output Test Command Parameters 4612 * \param fCb - Test Command Complete CB 4613 * \param hCb - Handle to Test Command Complete CB Parameters 4614 * \return TI_OK on success or TI_NOK on failure 4615 * 4616 * \par Description 4617 * The implementation of the BIT Test Command 4618 * 4619 * \sa 4620 */ 4621TI_STATUS TWDriverTest(TI_HANDLE hTWD, 4622 TestCmdID_enum eTestCmd, 4623 void* pTestCmdParams, 4624 TTestCmdCB fCb, 4625 TI_HANDLE hCb); 4626 4627 4628 4629/** 4630 * \brief TWD get FEM type 4631 * * 4632 * \param Handle - handle to object 4633 * \return uint8 4634 * 4635 * \par Description 4636 * The function return the Front end module that was read frm FW register * 4637 * \sa 4638 */ 4639 4640TI_UINT8 TWD_GetFEMType (TI_HANDLE hTWD); 4641 4642 4643/** 4644 * \brief TWD end function of read radio state machine 4645 * * * 4646 * \param Handle - handle to object 4647 * \return void 4648 * 4649 * \par Description 4650 * The function calling to HwInit call back function, after finish reading FEM registers * 4651 * \sa 4652 */ 4653 4654void TWD_FinalizeFEMRead(TI_HANDLE hTWD); 4655void TWD_FinalizePolarityRead(TI_HANDLE hTWD); 4656 4657/** @ingroup Data_Path 4658 * \brief TWD_CfgBurstMode 4659 * 4660 * \param hTWD - TWD module object handle 4661 * \param bEnabled - is Burst mode enabled 4662 * \return TI_OK 4663 * 4664 * \par Description 4665 * Use this function to enable/disbale the burst mode 4666 * 4667 * \sa 4668 */ 4669TI_STATUS TWD_CfgBurstMode (TI_HANDLE hTWD, TI_BOOL bEnabled); 4670TI_STATUS TWD_SetRateMngDebug(TI_HANDLE hTWD, RateMangeParams_t *pRateMngParams); 4671TI_STATUS TWD_GetRateMngDebug(TI_HANDLE hTWD, RateMangeReadParams_t *pParamInfo); 4672 4673#endif /* TWDRIVER_H */ 4674