prima: WLAN Driver Release 3.1.7.9

This is the initial release of the Prima WLAN Driver
diff --git a/CORE/BAP/inc/bapApi.h b/CORE/BAP/inc/bapApi.h
new file mode 100644
index 0000000..7de6ca2
--- /dev/null
+++ b/CORE/BAP/inc/bapApi.h
@@ -0,0 +1,2946 @@
+/*
+ * Copyright (c) 2012, Code Aurora Forum. All rights reserved.
+ *
+ * Previously licensed under the ISC license by Qualcomm Atheros, Inc.
+ *
+ *
+ * Permission to use, copy, modify, and/or distribute this software for
+ * any purpose with or without fee is hereby granted, provided that the
+ * above copyright notice and this permission notice appear in all
+ * copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
+ * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
+ * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
+ * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
+ * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+ * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+ * PERFORMANCE OF THIS SOFTWARE.
+ */
+
+#ifndef WLAN_QCT_WLANBAP_H
+#define WLAN_QCT_WLANBAP_H
+
+/*===========================================================================
+
+               W L A N   B T - A M P  P A L   L A Y E R 
+                       E X T E R N A L  A P I
+                
+                   
+DESCRIPTION
+  This file contains the external API exposed by the wlan BT-AMP PAL layer 
+  module.
+  
+      
+  Copyright (c) 2008 QUALCOMM Incorporated. All Rights Reserved.
+  Qualcomm Confidential and Proprietary
+===========================================================================*/
+
+
+/*===========================================================================
+
+                      EDIT HISTORY FOR FILE
+
+
+  This section contains comments describing changes made to the module.
+  Notice that changes are listed in reverse chronological order.
+
+
+  $Header: /cygdrive/d/Builds/M7201JSDCAAPAD52240B/WM/platform/msm7200/Src/Drivers/SD/ClientDrivers/WLAN/QCT_BTAMP_RSN/CORE/BAP/inc/bapApi.h,v 1.21 2009/03/09 08:58:26 jzmuda Exp jzmuda $ $DateTime: $ $Author: jzmuda $
+
+
+when        who    what, where, why
+--------    ---    ----------------------------------------------------------
+07/01/08    jez     Created module.
+
+===========================================================================*/
+
+
+
+/*===========================================================================
+
+                          INCLUDE FILES FOR MODULE
+
+===========================================================================*/
+
+/*----------------------------------------------------------------------------
+ * Include Files
+ * -------------------------------------------------------------------------*/
+#include "vos_api.h" 
+#include "vos_packet.h" 
+//I need the TL types and API
+#include "wlan_qct_tl.h"
+
+/* BT-AMP PAL API structure types  - FramesC generated */ 
+#include "btampHCI.h" 
+
+/*----------------------------------------------------------------------------
+ * Preprocessor Definitions and Constants
+ * -------------------------------------------------------------------------*/
+ #ifdef __cplusplus
+ extern "C" {
+ #endif 
+ 
+
+/*----------------------------------------------------------------------------
+ *  HCI Interface supported
+ * 
+ *   Here we list the HCI Commands and Events which our 802.11 BT-AMP PAL
+ *   supports.
+ * 
+ * -------------------------------------------------------------------------*/
+
+/*---------------------------------------------------------------------------
+  Supported HCI Commands 
+---------------------------------------------------------------------------*/      
+#if 0
+/** BT v3.0 Link Control commands */
+    BTAMP_TLV_HCI_CREATE_PHYSICAL_LINK_CMD,
+    BTAMP_TLV_HCI_ACCEPT_PHYSICAL_LINK_CMD,
+    BTAMP_TLV_HCI_DISCONNECT_PHYSICAL_LINK_CMD,
+    BTAMP_TLV_HCI_CREATE_LOGICAL_LINK_CMD,
+    BTAMP_TLV_HCI_ACCEPT_LOGICAL_LINK_CMD,
+    BTAMP_TLV_HCI_DISCONNECT_LOGICAL_LINK_CMD,
+    BTAMP_TLV_HCI_LOGICAL_LINK_CANCEL_CMD,
+    BTAMP_TLV_HCI_FLOW_SPEC_MODIFY_CMD,
+/*
+Host Controller and Baseband Commands
+*/
+    BTAMP_TLV_HCI_RESET_CMD,
+    BTAMP_TLV_HCI_SET_EVENT_MASK_CMD,
+    BTAMP_TLV_HCI_FLUSH_CMD,
+    BTAMP_TLV_HCI_READ_CONNECTION_ACCEPT_TIMEOUT_CMD,
+    BTAMP_TLV_HCI_WRITE_CONNECTION_ACCEPT_TIMEOUT_CMD,
+    BTAMP_TLV_HCI_READ_LINK_SUPERVISION_TIMEOUT_CMD,
+    BTAMP_TLV_HCI_WRITE_LINK_SUPERVISION_TIMEOUT_CMD,
+/* v3.0 Host Controller and Baseband Commands */
+    BTAMP_TLV_HCI_READ_LOGICAL_LINK_ACCEPT_TIMEOUT_CMD,
+    BTAMP_TLV_HCI_WRITE_LOGICAL_LINK_ACCEPT_TIMEOUT_CMD,
+    BTAMP_TLV_HCI_SET_EVENT_MASK_PAGE_2_CMD,
+    BTAMP_TLV_HCI_READ_LOCATION_DATA_CMD,
+    BTAMP_TLV_HCI_WRITE_LOCATION_DATA_CMD,
+    BTAMP_TLV_HCI_READ_FLOW_CONTROL_MODE_CMD,
+    BTAMP_TLV_HCI_WRITE_FLOW_CONTROL_MODE_CMD,
+    BTAMP_TLV_HCI_READ_BEST_EFFORT_FLUSH_TO_CMD,
+    BTAMP_TLV_HCI_WRITE_BEST_EFFORT_FLUSH_TO_CMD,
+/** opcode definition for this command from AMP HCI CR D9r4 markup */
+    BTAMP_TLV_HCI_SET_SHORT_RANGE_MODE_CMD,
+/* End of v3.0 Host Controller and Baseband Commands */
+/*
+Informational Parameters
+*/
+    BTAMP_TLV_HCI_READ_LOCAL_VERSION_INFORMATION_CMD,
+    BTAMP_TLV_HCI_READ_LOCAL_SUPPORTED_COMMANDS_CMD,
+    BTAMP_TLV_HCI_READ_BUFFER_SIZE_CMD,
+/* v3.0 Informational commands */
+    BTAMP_TLV_HCI_READ_DATA_BLOCK_SIZE_CMD,
+/*
+Status Parameters
+*/
+    BTAMP_TLV_HCI_READ_FAILED_CONTACT_COUNTER_CMD,
+    BTAMP_TLV_HCI_RESET_FAILED_CONTACT_COUNTER_CMD,
+    BTAMP_TLV_HCI_READ_LINK_QUALITY_CMD,
+    BTAMP_TLV_HCI_READ_RSSI_CMD,
+    BTAMP_TLV_HCI_READ_LOCAL_AMP_INFORMATION_CMD,
+    BTAMP_TLV_HCI_READ_LOCAL_AMP_ASSOC_CMD,
+    BTAMP_TLV_HCI_WRITE_REMOTE_AMP_ASSOC_CMD,
+/*
+Debug Commands
+*/
+    BTAMP_TLV_HCI_READ_LOOPBACK_MODE_CMD,
+    BTAMP_TLV_HCI_WRITE_LOOPBACK_MODE_CMD,
+#endif
+
+/*---------------------------------------------------------------------------
+  Supported HCI Events
+---------------------------------------------------------------------------*/      
+#if 0
+/** BT events */
+    BTAMP_TLV_HCI_COMMAND_COMPLETE_EVENT,
+    BTAMP_TLV_HCI_COMMAND_STATUS_EVENT,
+    BTAMP_TLV_HCI_HARDWARE_ERROR_EVENT,
+    BTAMP_TLV_HCI_FLUSH_OCCURRED_EVENT,
+    BTAMP_TLV_HCI_LOOPBACK_COMMAND_EVENT,
+    BTAMP_TLV_HCI_DATA_BUFFER_OVERFLOW_EVENT,
+    BTAMP_TLV_HCI_QOS_VIOLATION_EVENT,
+/** BT v3.0 events */
+    BTAMP_TLV_HCI_GENERIC_AMP_LINK_KEY_NOTIFICATION_EVENT,
+    BTAMP_TLV_HCI_PHYSICAL_LINK_COMPLETE_EVENT ,
+    BTAMP_TLV_HCI_CHANNEL_SELECTED_EVENT ,
+    BTAMP_TLV_HCI_DISCONNECT_PHYSICAL_LINK_COMPLETE_EVENT ,
+    BTAMP_TLV_HCI_PHYSICAL_LINK_LOSS_WARNING_EVENT ,
+    BTAMP_TLV_HCI_PHYSICAL_LINK_RECOVERY_EVENT ,
+    BTAMP_TLV_HCI_LOGICAL_LINK_COMPLETE_EVENT ,
+    BTAMP_TLV_HCI_DISCONNECT_LOGICAL_LINK_COMPLETE_EVENT ,
+    BTAMP_TLV_HCI_FLOW_SPEC_MODIFY_COMPLETE_EVENT ,
+    BTAMP_TLV_HCI_SHORT_RANGE_MODE_CHANGE_COMPLETE_EVENT ,
+#endif
+
+
+/*----------------------------------------------------------------------------
+ *  Defines
+ * -------------------------------------------------------------------------*/
+/*---------------------------------------------------------------------------
+  Packet type defines for the AMP to PAL packet encapsulation.
+---------------------------------------------------------------------------*/      
+#define WLANBAP_HCI_COMMAND_PACKET      0x01     /**< HCI command packet type, characterizing packet types over the
+                                              UART and RS232 transports */
+#define WLANBAP_HCI_ACL_DATA_PACKET     0x02     /**< HCI ACL data packet type, characterizing packet types over the
+                                              UART and RS232 transports */
+#define WLANBAP_HCI_SCO_DATA_PACKET     0x03     /**< HCI SCO data packet type, characterizing packet types over the
+                                              UART and RS232 transports */
+#define WLANBAP_HCI_EVENT_PACKET        0x04     /**< HCI event packet type, characterizing packet types over the
+                                              UART and RS232 transports */
+/*---------------------------------------------------------------------------
+  HCI Data packet size limitation.
+---------------------------------------------------------------------------*/      
+#define WLANBAP_MAX_80211_PAL_PDU_SIZE                1492
+
+/*---------------------------------------------------------------------------
+  HCI Flow Control Modes.
+---------------------------------------------------------------------------*/      
+#define WLANBAP_FLOW_CONTROL_MODE_PACKET_BASED        0x00
+#define WLANBAP_FLOW_CONTROL_MODE_BLOCK_BASED         0x01
+
+/*---------------------------------------------------------------------------
+  BT "assigned numbers"
+---------------------------------------------------------------------------*/      
+// Qualcomm Company ID
+#define WLANBAP_QUALCOMM_COMPANY_ID                     29
+
+// HCI Interface version 
+// Parameter Name               Assigned Values 
+// HCI_Version                  0  => Bluetooth HCI Specification 1.0B 
+//                              1  => Bluetooth HCI Specification 1.1 
+//                              2  => Bluetooth HCI Specification 1.2 
+//                              3  => Bluetooth HCI Specification 2.0 
+//                              4  => Bluetooth HCI Specification 2.1 
+//                              5  => Bluetooth HCI Specification 3.0 
+#define WLANBAP_HCI_VERSION                              5
+#define WLANBAP_HCI_REVISION                             0 
+#define WLANBAP_PAL_VERSION                              0x01
+#define WLANBAP_PAL_SUBVERSION                           0x00
+
+// AMP device status 
+#define WLANBAP_HCI_AMP_STATUS_POWERED_DOWN              0x00
+#define WLANBAP_HCI_AMP_STATUS_NOT_SHARED                0x01
+#define WLANBAP_HCI_AMP_STATUS_SHARED                    0x02
+#define WLANBAP_HCI_AMP_STATUS_RESERVED                  0x03
+
+// ACL Packet types (AMP only uses 0x03) 
+#define WLANBAP_HCI_PKT_START_NON_FLUSH                  0x00
+#define WLANBAP_HCI_PKT_CONT                             0x01
+#define WLANBAP_HCI_PKT_START_FLUSH                      0x02
+#define WLANBAP_HCI_PKT_AMP                              0x03
+
+/*---------------------------------------------------------------------------
+  BT-AMP PAL supported commands defines 
+
+  The Supported Commands configuration parameter lists which HCI commands the 
+local controller supports. It is implied that if a command is listed as 
+supported, the feature underlying that command is also supported.
+  The Supported Commands is a 64 octet bit field. If a bit is set to 1, then 
+this command is supported.
+
+---------------------------------------------------------------------------*/      
+//    0     1     2     3     4     5     6     7
+
+#define WLANBAP_PAL_SUPPORTED_HCI_CMDS {  \
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x02, 0x0c, \
+    0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x88, 0x3c, \
+    0x00, 0x00, 0x00, 0x40, 0x00, 0xff, 0xff, 0x07, \
+    0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00  \
+}
+
+/*---------------------------------------------------------------------------
+  BT-AMP PAL "status" and "reason" error code defines 
+---------------------------------------------------------------------------*/      
+#define WLANBAP_STATUS_SUCCESS                        (0x00) /* Success. Section 3.1.7 */
+
+#define WLANBAP_ERROR_UNKNOWN_HCI_CMND                (0x01)  
+#define WLANBAP_ERROR_NO_CNCT                         (0x02)  /* AMP HCI Section 7.1.39 */
+#define WLANBAP_ERROR_HARDWARE_FAILURE                (0x03) 
+#define WLANBAP_ERROR_PAGE_TIMEOUT                    (0x04)  
+/* Section 3.1.10 has this mis-identified as 0x08  */ 
+#define WLANBAP_ERROR_AUTHENT_FAILURE                 (0x05)  
+#define WLANBAP_ERROR_KEY_MISSING                     (0x06) 
+#define WLANBAP_ERROR_MEMORY_FULL                     (0x07) 
+#define WLANBAP_ERROR_CNCT_TIMEOUT                    (0x08)  /* Section 3.1.8 */
+#define WLANBAP_ERROR_MAX_NUM_CNCTS                   (0x09)  /* Section 3.1.8 */   
+#define WLANBAP_ERROR_MAX_NUM_SCO_CNCTS               (0x0a)      
+#define WLANBAP_ERROR_MAX_NUM_ACL_CNCTS               (0x0b)      
+#define WLANBAP_ERROR_CMND_DISALLOWED                 (0x0c)  /* Section 4.1 */    
+#define WLANBAP_ERROR_HOST_REJ_RESOURCES              (0x0d)  /* Section 3.1.7 */ 
+#define WLANBAP_ERROR_HOST_REJ_SECURITY               (0x0e)      
+#define WLANBAP_ERROR_HOST_REJ_PERSONAL_DEV           (0x0f)      
+#define WLANBAP_ERROR_HOST_TIMEOUT                    (0x10)      
+#define WLANBAP_ERROR_UNSUPPORT_FEAT_PARAM            (0x11)      
+#define WLANBAP_ERROR_INVALID_HCI_CMND_PARAM          (0x12)     
+#define WLANBAP_ERROR_TERM_CNCT_USER_ENDED            (0x13)      
+#define WLANBAP_ERROR_TERM_CNCT_LOW_RESOURCE          (0x14)      
+#define WLANBAP_ERROR_TERM_CNCT_POWER_OFF             (0x15)      
+/* Section 3.1.9 has a contradictory semantics of "failed connection" */    
+#define WLANBAP_ERROR_TERM_BY_LOCAL_HOST              (0x16) /* Section 3.1.8 */  
+#define WLANBAP_ERROR_REPEATED_ATTEMPTS               (0x17)      
+#define WLANBAP_ERROR_PAIRING_NOT_ALLOWED             (0x18)      
+#define WLANBAP_ERROR_UNKNOWN_LMP_PDU                 (0x19)      
+#define WLANBAP_ERROR_UNSUPPORTED_REMOTE_FEAT         (0x1a)      
+#define WLANBAP_ERROR_SCO_REJ                         (0x1b)      
+#define WLANBAP_ERROR_SCO_INTERVAL_REJ                (0x1c)      
+#define WLANBAP_ERROR_SCO_AIR_MODE_REJ                (0x1d)      
+#define WLANBAP_ERROR_INVALID_LMP_PARAMETER           (0x1e)      
+#define WLANBAP_ERROR_UNSPECIFIED_ERROR               (0x1f)      
+#define WLANBAP_ERROR_UNSUPPORTED_LMP_PARAM           (0x20)      
+#define WLANBAP_ERROR_ROLE_CHANGE_NOT_ALLOWED         (0x21)      
+#define WLANBAP_ERROR_LMP_RESPONSE_TIMEOUT            (0x22)      
+#define WLANBAP_ERROR_LMP_ERROR_TRANS_COLLISION       (0x23)      
+#define WLANBAP_ERROR_LMP_PDU_NOT_ALLOWED             (0x24)      
+#define WLANBAP_ERROR_ENCRYPTION_MODE_NOT_ACCEPTABLE  (0x25)      
+#define WLANBAP_ERROR_UNIT_KEY_USED                   (0x26)      
+#define WLANBAP_ERROR_QOS_IS_NOT_SUPPORTED            (0x27)      
+#define WLANBAP_ERROR_INSTANT_PASSED                  (0x28)      
+#define WLANBAP_ERROR_UNIT_KEY_PAIRING_UNSUPPORTED    (0x29)      
+
+#define WLANBAP_ERROR_DIFFERENT_TRANS_COLLISION       (0x2A)      
+
+/* reserved                                           (0x2B) */
+
+#define WLANBAP_ERROR_QOS_UNACCEPTABLE_PARAMETER      (0x2C)      
+#define WLANBAP_ERROR_QOS_REJECTED                    (0x2D)      
+#define WLANBAP_ERROR_CHANNEL_CLASSIFICATION_NS       (0x2E)      
+#define WLANBAP_ERROR_INSUFFICIENT_SECURITY           (0x2F)      
+#define WLANBAP_ERROR_PARM_OUT_OF_MANDATORY_RANGE     (0x30)      
+                                        
+/* reserved                                           (0x31) */
+
+#define WLANBAP_ERROR_ROLE_SWITCH_PENDING             (0x32)      
+
+/* reserved                                           (0x33) */
+
+#define WLANBAP_ERROR_RESERVED_SLOT_VIOLATION         (0x34)      
+#define WLANBAP_ERROR_ROLE_SWITCH_FAILED              (0x35)      
+#define WLANBAP_ERROR_EIR_TOO_LARGE                   (0x36)      
+#define WLANBAP_ERROR_SSP_NOT_SUPPORTED_BY_HOST       (0x37)      
+#define WLANBAP_ERROR_HOST_BUSY_PAIRING               (0x38)      
+#define WLANBAP_ERROR_NO_SUITABLE_CHANNEL             (0x39)
+#define WLANBAP_ERROR_CONTROLLER_BUSY                 (0x3A)      
+
+/*----------------------------------------------------------------------------
+ *   Event_Mask_Page_2 defines for events
+ * -------------------------------------------------------------------------*/
+#define WLANBAP_EVENT_MASK_NONE                    0x0000000000000000 //No events specified (default)
+#define WLANBAP_EVENT_MASK_PHY_LINK_COMPLETE_EVENT 0x0000000000000001 //Physical Link Complete Event
+#define WLANBAP_EVENT_MASK_CHANNEL_SELECTED_EVENT  0x0000000000000002 //Channel Selected Event
+#define WLANBAP_EVENT_MASK_DISC_PHY_LINK_EVENT     0x0000000000000004 //Disconnection Physical Link Event
+#define WLANBAP_EVENT_MASK_PHY_LINK_LOSS_EARLY_WARNING_EVENT 0x0000000000000008 //Physical Link Loss Early Warning Event
+#define WLANBAP_EVENT_MASK_PHY_LINK_RECOVERY_EVENT 0x0000000000000010 //Physical Link Recovery Event
+#define WLANBAP_EVENT_MASK_LOG_LINK_COMPLETE_EVENT 0x0000000000000020 //Logical Link Complete Event
+#define WLANBAP_EVENT_MASK_DISC_LOG_LINK_COMPLETE_EVENT 0x0000000000000040 //Disconnection Logical Link Complete Event
+#define WLANBAP_EVENT_MASK_FLOW_SPEC_MOD_COMPLETE_EVENT 0x0000000000000080 //Flow Spec Modify Complete Event
+#define WLANBAP_EVENT_MASK_NUM_COMPLETED_DATA_BLOCKS_EVENT 0x0000000000000100 //Number of Completed Data Blocks Event
+#define WLANBAP_EVENT_MASK_AMP_START_TEST_EVENT    0x0000000000000200 //AMP Start Test Event
+#define WLANBAP_EVENT_MASK_AMP_TEST_END_EVENT      0x0000000000000400 //AMP Test End Event
+#define WLANBAP_EVENT_MASK_AMP_RCVR_REPORT_EVENT   0x0000000000000800 //AMP Receiver Report Event
+#define WLANBAP_EVENT_MASK_SHORT_RANGE_MODE_CHANGE_COMPLETE_EVENT 0x0000000000001000 //Short Range Mode Change Complete Event
+#define WLANBAP_EVENT_MASK_AMP_STATUS_CHANGE_EVENT 0x0000000000002000 //AMP Status Change Event
+#define WLANBAP_EVENT_MASK_RESERVED                0xFFFFFFFFFFFFC000 //Reserved for future use
+
+/*----------------------------------------------------------------------------
+ *  Typedefs
+ * -------------------------------------------------------------------------*/
+
+/*----------------------------------------------------------------------------
+ *  Opaque BAP handle Type Declaration 
+ * -------------------------------------------------------------------------*/
+typedef v_PVOID_t tBtampHandle, *ptBtampHandle;
+
+/*----------------------------------------------------------------------------
+ *  BAP per-session Context Data Type Declaration
+ * -------------------------------------------------------------------------*/
+// Move this to bapInternal.h, where it belongs.
+// For now, it is just the same thing as the per application context.
+//typedef struct sBtampContext tBtampSessCtx;
+
+
+/*---------------------------------------------------------------------------
+  HCI Event union
+---------------------------------------------------------------------------*/      
+typedef struct sBtampHCI_Event {
+    v_U8_t  bapHCIEventCode;  /* The event code.  To dis-ambiguate. */
+    union { 
+        tBtampTLVHCI_Channel_Selected_Event  btampChannelSelectedEvent;
+        tBtampTLVHCI_Command_Complete_Event btampCommandCompleteEvent ;
+        tBtampTLVHCI_Command_Status_Event btampCommandStatusEvent ;
+        tBtampTLVHCI_Data_Buffer_Overflow_Event btampDataBufferOverflowEvent ;
+        tBtampTLVHCI_Disconnect_Logical_Link_Complete_Event btampDisconnectLogicalLinkCompleteEvent ;
+        tBtampTLVHCI_Disconnect_Physical_Link_Complete_Event btampDisconnectPhysicalLinkCompleteEvent ;
+        /* Flow_Spec_Modify_Complete_Event is generated after the flow spec modify cmd completes */
+        tBtampTLVHCI_Flow_Spec_Modify_Complete_Event btampFlowSpecModifyCompleteEvent ;
+        /* Asynchronous Flush_Occurred Event CAN ALSO BE generated after the flush cmd completes */
+        tBtampTLVHCI_Flush_Occurred_Event btampFlushOccurredEvent ;
+        tBtampTLVHCI_Generic_AMP_Link_Key_Notification_Event btampGenericAMPLinkKeyNotificationEvent ;
+        tBtampTLVHCI_Hardware_Error_Event btampHardwareErrorEvent ;
+        tBtampTLVHCI_Logical_Link_Complete_Event btampLogicalLinkCompleteEvent ;
+        tBtampTLVHCI_Loopback_Command_Event btampLoopbackCommandEvent ;
+        tBtampTLVHCI_Physical_Link_Complete_Event btampPhysicalLinkCompleteEvent ;
+        tBtampTLVHCI_Physical_Link_Loss_Warning_Event btampPhysicalLinkLossWarningEvent ;
+        tBtampTLVHCI_Physical_Link_Recovery_Event btampPhysicalLinkRecoveryEvent ;
+        tBtampTLVHCI_Qos_Violation_Event btampQosViolationEvent ;
+        tBtampTLVHCI_Short_Range_Mode_Change_Complete_Event btampShortRangeModeChangeCompleteEvent ;
+        tBtampTLVHCI_Num_Completed_Pkts_Event btampNumOfCompletedPktsEvent;
+        tBtampTLVHCI_Num_Completed_Data_Blocks_Event btampNumOfCompletedDataBlocksEvent;
+        tBtampTLVHCI_Enhanced_Flush_Complete_Event btampEnhancedFlushCompleteEvent ;
+    } u;
+} tBtampHCI_Event, *tpBtampHCI_Event;
+
+/* 802.3 header */
+typedef struct 
+{
+ /* Destination address field */
+ v_U8_t   vDA[VOS_MAC_ADDR_SIZE];
+
+ /* Source address field */
+ v_U8_t   vSA[VOS_MAC_ADDR_SIZE];
+
+ /* Length field */
+ v_U16_t  usLenType;  /* Num bytes in info field (i.e., exclude 802.3 hdr) */
+                      /* Max length 1500 (0x5dc) (What about 0x5ee? That
+                       * includes 802.3 Header and FCS.) */
+}WLANBAP_8023HeaderType;
+
+
+/* 
+ * A list of Command Complete event msgs which will be 
+ * signalled by the Event Callback 
+ */ 
+#if 0
+/* The tBtampTLVHCI_Command_Complete_Event structure includes each of these*/
+/* HCI Reset: status */
+/* HCI Flush: status, log_link_handle */
+
+#endif
+
+/* 
+ * Command Complete event msgs which will be formed by the caller 
+ * Now an invocation of btampPackTlvHCI_Command_Complete_Event()
+ * supports generating command complete event messages for all commands...  
+ */
+/* The tBtampTLVHCI_Command_Complete_Event structure includes each of these*/
+#if 0
+/* HCI Cancel Logical Link: status, phy_link_handle, tx_flow_spec_id */
+/* HCI Set Event Mask: status */
+/* HCI Read Connection Accept Timeout: status, connection_accept_timeout */
+/* HCI Write Connection Accept Timeout:  status */
+/* HCI Read Link Supervision Timeout: status, log_link_handle (8 sig bits only), link_supervision_timeout */
+/* HCI Write Link Supervision Timeout: status, log_link_handle (8 bits sig only) */
+/* HCI Read Logical Link Accept Timeout: status, logical_link_accept_timeout */
+/* HCI Write Logical Link Accept Timeout:  status */
+/* HCI Set Event Mask Page 2: status */
+/* HCI Read Location Data: status, loc_domain_aware, loc_domain, loc_options */
+/* HCI Write Location Data:  status */
+/* HCI Read Flow Control Mode: status, flow_control_mode */
+/* HCI Write Flow Control Mode:  status */
+/* HCI Read Best Effort Flush Timeout: status, (logical_link_handle ? No!), best_effort_flush_timeout */
+/* HCI Write Best Effort Flush Timeout:  status */
+/* HCI Set Short Range Mode:  status */
+/* HCI Read Local Version Info: status, HC_HCI_Version, HC_HCI_Revision, HC_PAL_Version, HC_Manufac_Name, HC_PAL_Sub_Version */
+/* HCI Read Local supported commands: status, HC_Support_Cmds */
+/* HCI Read Buffer Size:    status, HC_ACL_Data_Packet_Length,  HC_SCO_Packet_Length,  HC_Total_Num_ACL_Packets, HC_Total_Num_SCO_Packets */
+/* HCI Read Data Block Size:   status, HC_Max_ACL_Data_Packet_Length,  HC_Data_Block_Length, HC_Total_Num_Data_Blocks */
+/* HCI Read Failed Contact Counter: status, log_link_handle, *pFailedContactCounter */
+/* HCI Reset Failed Contact Counter: status, log_link_handle */
+/* HCI Read Link Quality: status, log_link_handle(?Yes!?), link_quality */
+/* HCI Read RSSI: status, phy_link_handle, rssi */
+/* HCI Read Local AMP Info: status, HC_AMP_Status, HC_Total_BW, HC_Max_Guaranteed_BW, HC_Min_Latency, HC_Max_PDU_Size, HC_Controller_Type, HC_PAL_Capabilities,  HC_AMP_Assoc_Length,  HC_Max_Flush_Timeout, HC_BE_Flush_Timeout */
+/* HCI Read Local AMP Assoc:  status, phy_link_handle, AMP ASSOC remaining length (just actual length, in practice), AMP ASSOC fragment (byte string) */ 
+/*  where AMP Assoc consists of:   HC_mac_addr,  pref channel (HC_pref_country, HC_pref_triplets), Cnct channel (HC_cnct_country,  HC_cnct_triplets), HC_pal_capabilities, HC_pal_version */ 
+/* HCI Write Remote AMP Assoc:  status, phy_link_handle */
+/* HCI Read Loopback Mode: status, loopback_mode */
+/* HCI Write Loopback Mode:  status */
+
+#endif
+
+/* BT AMP configuration items */
+typedef struct 
+{
+ /* user preferred channel on which we start the link */
+ v_U8_t   ucPreferredChannel;
+
+}WLANBAP_ConfigType;
+
+/*----------------------------------------------------------------------------
+ * Function Declarations and Documentation
+ * -------------------------------------------------------------------------*/
+
+/*----------------------------------------------------------------------------
+    VOSS interfaces - Device initialization 
+ ---------------------------------------------------------------------------*/
+
+/*==========================================================================
+
+  FUNCTION    WLANBAP_Open
+
+  DESCRIPTION 
+    Called at driver initialization (vos_open). BAP will initialize 
+    all its internal resources and will wait for the call to start to 
+    register with the other modules. 
+    
+  DEPENDENCIES 
+    
+  PARAMETERS 
+
+    IN
+    pvosGCtx:       pointer to the global vos context; a handle to BAP's 
+                    control block can be extracted from its context 
+   
+  RETURN VALUE
+    The result code associated with performing the operation  
+
+    VOS_STATUS_E_FAULT:  pointer to BAP cb is NULL ; access would cause a page 
+                         fault  
+    VOS_STATUS_SUCCESS:  Everything is good :) 
+
+  SIDE EFFECTS 
+  
+============================================================================*/
+VOS_STATUS 
+WLANBAP_Open
+( 
+  v_PVOID_t  pvosGCtx 
+);
+
+/*==========================================================================
+
+  FUNCTION    WLANBAP_Start
+
+  DESCRIPTION 
+    Called as part of the overall start procedure (vos_start). BAP will 
+    use this call to register with TL as the BAP entity for 
+    BT-AMP RSN frames. 
+    
+  DEPENDENCIES 
+    
+  PARAMETERS 
+
+    IN
+    pvosGCtx:       pointer to the global vos context; a handle to BAP's 
+                    control block can be extracted from its context 
+   
+  RETURN VALUE
+    The result code associated with performing the operation  
+
+    VOS_STATUS_E_FAULT:  pointer to BAP cb is NULL ; access would cause a page 
+                         fault  
+    VOS_STATUS_SUCCESS:  Everything is good :) 
+
+    Other codes can be returned as a result of a BAL failure;
+    
+  SIDE EFFECTS 
+  
+============================================================================*/
+VOS_STATUS 
+WLANBAP_Start
+( 
+  v_PVOID_t  pvosGCtx 
+);
+
+/*==========================================================================
+
+  FUNCTION    WLANBAP_Stop
+
+  DESCRIPTION 
+    Called by vos_stop to stop operation in BAP, before close. BAP will suspend all 
+    BT-AMP Protocol Adaption Layer operation and will wait for the close 
+    request to clean up its resources. 
+    
+  DEPENDENCIES 
+    
+  PARAMETERS 
+
+    IN
+    pvosGCtx:       pointer to the global vos context; a handle to BAP's 
+                    control block can be extracted from its context 
+   
+  RETURN VALUE
+    The result code associated with performing the operation  
+
+    VOS_STATUS_E_FAULT:  pointer to BAP cb is NULL ; access would cause a page 
+                         fault  
+    VOS_STATUS_SUCCESS:  Everything is good :) 
+
+  SIDE EFFECTS 
+  
+============================================================================*/
+VOS_STATUS 
+WLANBAP_Stop
+( 
+  v_PVOID_t  pvosGCtx 
+);
+
+/*==========================================================================
+
+  FUNCTION    WLANBAP_Close
+
+  DESCRIPTION 
+    Called by vos_close during general driver close procedure. BAP will clean up 
+    all the internal resources. 
+    
+  DEPENDENCIES 
+    
+  PARAMETERS 
+
+    IN
+    pvosGCtx:       pointer to the global vos context; a handle to BAP's 
+                    control block can be extracted from its context 
+   
+  RETURN VALUE
+    The result code associated with performing the operation  
+
+    VOS_STATUS_E_FAULT:  pointer to BAP cb is NULL ; access would cause a page 
+                         fault  
+    VOS_STATUS_SUCCESS:  Everything is good :) 
+
+  SIDE EFFECTS 
+  
+============================================================================*/
+VOS_STATUS 
+WLANBAP_Close
+( 
+  v_PVOID_t  pvosGCtx 
+);
+
+/*----------------------------------------------------------------------------
+    HDD interfaces - Per instance initialization 
+ ---------------------------------------------------------------------------*/
+
+/*==========================================================================
+
+  FUNCTION    WLANBAP_GetNewHndl
+
+  DESCRIPTION 
+    Called by HDD at driver open (BSL_Open). BAP will initialize 
+    allocate a per-instance "file handle" equivalent for this specific
+    open call. 
+    
+    There should only ever be one call to BSL_Open.  Since 
+    the open app user is the BT stack.
+    
+    
+  DEPENDENCIES 
+    
+  PARAMETERS 
+
+    IN
+    hBtampHandle:   Handle to return btampHandle value in.
+   
+  RETURN VALUE
+    The result code associated with performing the operation  
+
+    VOS_STATUS_E_FAULT:  pointer to BAP cb is NULL ; access would cause a page 
+                         fault  
+    VOS_STATUS_SUCCESS:  Everything is good :) 
+
+  SIDE EFFECTS 
+  
+============================================================================*/
+VOS_STATUS 
+WLANBAP_GetNewHndl
+( 
+  ptBtampHandle *hBtampHandle  /* Handle to return btampHandle value in  */ 
+);
+
+/*==========================================================================
+
+  FUNCTION    WLANBAP_ReleaseHndl
+
+  DESCRIPTION 
+    Called by HDD at driver close (BSL_Close). BAP will reclaim (invalidate) 
+    the "file handle" passed into this call.
+    
+    
+  DEPENDENCIES 
+    
+  PARAMETERS 
+
+    IN
+    btampHandle:   btampHandle value to invalidate.
+   
+  RETURN VALUE
+    The result code associated with performing the operation  
+
+    VOS_STATUS_E_FAULT:  pointer to btampHandle is NULL ; access would cause a 
+                         page fault  
+    VOS_STATUS_SUCCESS:  Everything is good :) 
+
+  SIDE EFFECTS 
+  
+============================================================================*/
+VOS_STATUS 
+WLANBAP_ReleaseHndl
+( 
+  ptBtampHandle btampHandle  /* btamp handle value to release  */ 
+);
+
+/*----------------------------------------------------------------------------
+    HDD interfaces - Data plane
+ ---------------------------------------------------------------------------*/
+
+/*----------------------------------------------------------------------------
+    HDD Data callbacks 
+ ---------------------------------------------------------------------------*/
+
+/*----------------------------------------------------------------------------
+
+  FUNCTION    (*WLANBAP_STAFetchPktCBType)() 
+
+  DESCRIPTION   
+    Type of the fetch packet callback registered with BAP by HDD. 
+    
+    It is called by the BAP immediately upon the underlying 
+    WLANTL_STAFetchPktCBType routine being called.  Which is called by
+    TL when the scheduling algorithms allows for transmission of another 
+    packet to the module. 
+    
+    This function is here to "wrap" or abstract WLANTL_STAFetchPktCBType.
+    Because the BAP-specific HDD "shim" layer (BSL) doesn't know anything 
+    about STAIds, or other parameters required by TL.  
+
+
+  PARAMETERS 
+
+    IN
+    pHddHdl:        The HDD(BSL) specific context for this association.
+                    Use the STAId passed to me by TL in WLANTL_STAFetchCBType
+                    to retreive this value.
+
+    IN/OUT
+    pucAC:          access category requested by TL, if HDD does not have 
+                    packets on this AC it can choose to service another AC 
+                    queue in the order of priority
+
+    OUT
+    vosDataBuff:   pointer to the VOSS data buffer that was transmitted 
+    tlMetaInfo:    meta info related to the data frame
+
+
+  
+  RETURN VALUE 
+    The result code associated with performing the operation
+
+----------------------------------------------------------------------------*/
+
+typedef VOS_STATUS (*WLANBAP_STAFetchPktCBType)( 
+                                            v_PVOID_t             pHddHdl,
+                                            WLANTL_ACEnumType     ucAC,
+                                            vos_pkt_t**           vosDataBuff,
+                                            WLANTL_MetaInfoType*  tlMetaInfo);
+
+ 
+
+/*----------------------------------------------------------------------------
+
+  FUNCTION    (*WLANBAP_STARxCBType)( )
+
+  DESCRIPTION   
+    Type of the receive callback registered with BAP by HDD. 
+    
+    It is called by the BAP immediately upon the underlying 
+    WLANTL_STARxCBType routine being called.  Which is called by
+    TL to notify when a packet was received for a registered STA.
+
+  PARAMETERS 
+
+    IN
+    pHddHdl:        The HDD(BSL) specific context for this association.
+                    Use the STAId passed to me by TL in WLANTL_STARxCBType
+                    to retrieve this value.
+
+    vosDataBuff:    pointer to the VOSS data buffer that was received
+                    (it may be a linked list) 
+    pRxMetaInfo:    Rx meta info related to the data frame
+  
+  RETURN VALUE 
+    The result code associated with performing the operation
+
+----------------------------------------------------------------------------*/
+typedef VOS_STATUS (*WLANBAP_STARxCBType)( v_PVOID_t      pHddHdl,
+                                          vos_pkt_t*         vosDataBuff,
+                                          WLANTL_RxMetaInfoType* pRxMetaInfo);
+
+
+
+/*----------------------------------------------------------------------------
+
+  FUNCTION    (*WLANBAP_TxCompCBType)()
+
+  DESCRIPTION   
+    Type of the tx complete callback registered with BAP by HDD. 
+    
+    It is called by the BAP immediately upon the underlying 
+    WLANTL_TxCompCBType routine being called.  Which is called by
+    TL to notify when a transmission for a packet has ended.
+
+  PARAMETERS 
+
+    IN
+    pHddHdl:        The HDD(BSL) specific context for this association.
+                    <<How do I retrieve this from pvosGCtx? Which is all 
+                    the TL WLANTL_TxCompCBType routine provides me.>>
+    vosDataBuff:    pointer to the VOSS data buffer that was transmitted 
+    wTxSTAtus:      status of the transmission 
+
+  
+  RETURN VALUE 
+    The result code associated with performing the operation
+
+----------------------------------------------------------------------------*/
+typedef VOS_STATUS (*WLANBAP_TxCompCBType)( v_PVOID_t      pHddHdl,
+                                           vos_pkt_t*     vosDataBuff,
+                                           VOS_STATUS     wTxSTAtus );
+
+/*----------------------------------------------------------------------------
+    HDD Data plane API  
+ ---------------------------------------------------------------------------*/
+
+/*==========================================================================
+
+  FUNCTION    WLANBAP_RegisterDataPlane
+
+  DESCRIPTION 
+    The HDD calls this routine to register the "data plane" routines
+    for Tx, Rx, and Tx complete with BT-AMP.  For now, with only one
+    physical association supported at a time, this COULD be called 
+    by HDD at the same time as WLANBAP_GetNewHndl.  But, in general
+    it needs to be called upon each new physical link establishment.
+    
+    This registration is really two part.  The routines themselves are
+    registered here.  But, the mapping between the BSL context and the
+    actual physical link takes place during WLANBAP_PhysicalLinkCreate. 
+    
+  DEPENDENCIES 
+    
+  PARAMETERS 
+
+    IN
+    btampHandle: The BT-AMP PAL handle returned in WLANBAP_GetNewHndl.
+   
+  RETURN VALUE
+    The result code associated with performing the operation  
+
+    VOS_STATUS_E_FAULT:  pointer to BAP cb is NULL ; access would cause a page 
+                         fault  
+    VOS_STATUS_SUCCESS:  Everything is good :) 
+
+  SIDE EFFECTS 
+  
+============================================================================*/
+VOS_STATUS 
+WLANBAP_RegisterDataPlane
+( 
+  ptBtampHandle btampHandle,  /* BTAMP context */ 
+  WLANBAP_STAFetchPktCBType pfnBtampFetchPktCB, 
+  WLANBAP_STARxCBType pfnBtamp_STARxCB,
+  WLANBAP_TxCompCBType pfnBtampTxCompCB,
+  // phy_link_handle, of course, doesn't come until much later.  At Physical Link create.
+  v_PVOID_t      pHddHdl   /* BSL specific context */
+);
+//#endif
+
+/*===========================================================================
+
+  FUNCTION    WLANBAP_XlateTxDataPkt
+
+  DESCRIPTION 
+
+    HDD will call this API when it has a HCI Data Packet and it wants 
+    to translate it into a 802.3 LLC frame - ready to send using TL.
+
+
+  PARAMETERS 
+
+    btampHandle: The BT-AMP PAL handle returned in WLANBAP_GetNewHndl.
+    phy_link_handle: Used by BAP to indentify the WLAN assoc. (StaId) 
+
+    pucAC:       Pointer to return the access category 
+    vosDataBuff: The data buffer containing the BT-AMP packet to be 
+                 translated to an 802.3 LLC frame
+    tlMetaInfo:  return meta info gleaned from the outgoing frame, here.
+   
+  RETURN VALUE
+
+    The result code associated with performing the operation  
+
+    VOS_STATUS_E_INVAL:  Input parameters are invalid 
+    VOS_STATUS_E_FAULT:  BAP handle is NULL  
+    VOS_STATUS_SUCCESS:  Everything is good :) 
+
+  SIDE EFFECTS 
+  
+============================================================================*/
+VOS_STATUS
+WLANBAP_XlateTxDataPkt
+( 
+  ptBtampHandle     btampHandle,  /* Used by BAP to identify the actual session
+                                    and therefore addresses */ 
+  v_U8_t            phy_link_handle,  /* Used by BAP to indentify the WLAN assoc. (StaId) */
+  WLANTL_ACEnumType           *pucAC,        /* Return the AC here */
+  WLANTL_MetaInfoType  *tlMetaInfo, /* Return the MetaInfo here. An assist to WLANBAP_STAFetchPktCBType */
+  vos_pkt_t        *vosDataBuff
+);
+
+/*===========================================================================
+
+  FUNCTION    WLANBAP_XlateRxDataPkt
+
+  DESCRIPTION 
+
+    HDD will call this API when it has received a 802.3 (TL/UMA has 
+    Xlated from 802.11) frame from TL and it wants to form a 
+    BT HCI Data Packet - ready to signal up to the BT stack application.
+
+
+  PARAMETERS 
+
+    btampHandle: The BT-AMP PAL handle returned in WLANBAP_GetNewHndl.
+    pucAC:       Pointer to return the access category 
+    vosDataBuff: The data buffer containing the 802.3 frame to be 
+                 translated to BT HCI Data Packet
+   
+  RETURN VALUE
+
+    The result code associated with performing the operation  
+
+    VOS_STATUS_E_INVAL:  Input parameters are invalid 
+    VOS_STATUS_E_FAULT:  BAP handle is NULL  
+    VOS_STATUS_SUCCESS:  Everything is good :) 
+
+  SIDE EFFECTS 
+  
+============================================================================*/
+VOS_STATUS
+WLANBAP_XlateRxDataPkt
+( 
+  ptBtampHandle     btampHandle, 
+  v_U8_t            phy_link_handle,  /* Used by BAP to indentify the WLAN assoc. (StaId) */
+  WLANTL_ACEnumType           *pucAC,        /* Return the AC here. I don't think this is needed */
+  vos_pkt_t        *vosDataBuff
+);
+
+/*===========================================================================
+
+  FUNCTION    WLANBAP_STAPktPending
+
+  DESCRIPTION 
+
+    HDD will call this API when a packet is pending transmission in its 
+    queues. HDD uses this instead of WLANTL_STAPktPending because he is
+    not aware of the mapping from session to STA ID.
+
+  DEPENDENCIES 
+
+    HDD must have called WLANBAP_GetNewHndl before calling this API.
+
+  PARAMETERS 
+
+    btampHandle: The BT-AMP PAL handle returned in WLANBAP_GetNewHndl.
+                 BSL can obtain this from the physical handle value in the
+                 downgoing HCI Data Packet. He, after all, was there
+                 when the PhysicalLink was created. He knew the btampHandle 
+                 value returned by WLANBAP_GetNewHndl. He knows as well, his
+                 own pHddHdl (see next).
+    phy_link_handle: Used by BAP to indentify the WLAN assoc. (StaId)
+    ucAc:        The access category for the pending frame
+   
+  RETURN VALUE
+
+    The result code associated with performing the operation  
+
+    VOS_STATUS_E_INVAL:  Input parameters are invalid 
+    VOS_STATUS_E_FAULT:  BAP handle is NULL  
+    VOS_STATUS_SUCCESS:  Everything is good :) 
+
+  SIDE EFFECTS 
+  
+============================================================================*/
+VOS_STATUS
+WLANBAP_STAPktPending 
+( 
+  ptBtampHandle  btampHandle,  /* Used by BAP to identify the app context and VOSS ctx (!?) */ 
+  v_U8_t         phy_link_handle,  /* Used by BAP to indentify the WLAN assoc. (StaId) */
+  WLANTL_ACEnumType ucAc   /* This is the first instance of a TL type in bapApi.h */
+);
+
+/*----------------------------------------------------------------------------
+ *   BT-AMP PAL HCI Event callback types
+ *--------------------------------------------------------------------------*/
+
+/*----------------------------------------------------------------------------
+
+  FUNCTION    (*tpWLAN_BAPEventCB)() 
+
+  DESCRIPTION 
+    Implements the callback for ALL asynchronous events. 
+    Including Events resulting from:
+     * HCI Create Physical Link, 
+     * Disconnect Physical Link, 
+     * Create Logical Link,
+     * Flow Spec Modify, 
+     * HCI Reset,
+     * HCI Flush,...
+
+  DEPENDENCIES 
+    NA. 
+
+  PARAMETERS 
+
+    IN
+    pHddHdl:     The HDD(BSL) specific context for this association.
+                 BSL gets this from the downgoing packets Physical handle
+                 value. 
+    pBapHCIEvent:  pointer to the union of "HCI Event" structures.  Contains all info 
+                   needed for HCI event.
+    assoc_specific_event:  flag indicates assoc-specific (1) or global (0) event
+   
+  RETURN VALUE
+    The result code associated with performing the operation  
+
+    VOS_STATUS_E_FAULT:  pointer to pBapHCIEvent is NULL 
+    VOS_STATUS_SUCCESS:  Success
+  
+  SIDE EFFECTS 
+  
+----------------------------------------------------------------------------*/
+typedef VOS_STATUS (*tpWLAN_BAPEventCB)
+(
+  v_PVOID_t      pHddHdl,   /* this could refer to either the BSL per 
+                               association context which got passed in during 
+                               register data plane OR the BSL per application 
+                               context passed in during register BAP callbacks 
+                               based on setting of the Boolean flag below */ 
+                            /* It's like each of us is using the other */
+                            /* guys reference when invoking him. */
+  tpBtampHCI_Event pBapHCIEvent, /* This now encodes ALL event types */
+                                /* Including Command Complete and Command Status*/
+  v_BOOL_t assoc_specific_event /* Flag to indicate global or assoc-specific event */
+);   
+
+
+/*----------------------------------------------------------------------------
+    HCI Event Callback Registration routine
+ ---------------------------------------------------------------------------*/
+
+/*----------------------------------------------------------------------------
+
+  FUNCTION    WLAN_BAPRegisterBAPCallbacks() 
+
+  DESCRIPTION 
+    Register the BAP "Event" callbacks.
+    Return the per instance handle.
+
+  DEPENDENCIES 
+    NA. 
+
+  PARAMETERS 
+
+    IN
+    btampHandle: The BT-AMP PAL handle returned in WLANBAP_GetNewHndl.
+    pBapHCIEventCB:  pointer to the Event callback
+    pAppHdl:  The context passed in by caller. (I.E., BSL app specific context.)
+
+   
+  RETURN VALUE
+    The result code associated with performing the operation  
+
+    VOS_STATUS_E_FAULT:  pointer to pBapHCIEventCB is NULL 
+    VOS_STATUS_SUCCESS:  Success
+  
+  SIDE EFFECTS 
+  
+----------------------------------------------------------------------------*/
+VOS_STATUS  
+WLAN_BAPRegisterBAPCallbacks 
+( 
+  ptBtampHandle           btampHandle, /* BSL uses my handle to talk to me */
+                            /* Returned from WLANBAP_GetNewHndl() */
+                            /* It's like each of us is using the other */
+                            /* guys reference when invoking him. */
+  tpWLAN_BAPEventCB       pBapHCIEventCB, /*Implements the callback for ALL asynchronous events. */ 
+  v_PVOID_t               pAppHdl  // Per-app BSL context
+);
+
+
+
+/*----------------------------------------------------------------------------
+    Host Controller Interface Procedural API
+ ---------------------------------------------------------------------------*/
+
+/** BT v3.0 Link Control commands */
+
+/*----------------------------------------------------------------------------
+    Each of the next eight command result in asynchronous events (e.g.,  
+    HCI_PHYSICAL_LINK_COMPLETE_EVENT, HCI_LOGICAL_LINK_COMPLETE_EVENT, etc...)
+    These are signalled thru the event callback. (I.E., (*tpWLAN_BAPEventCB).)
+ ---------------------------------------------------------------------------*/
+
+/*----------------------------------------------------------------------------
+
+  FUNCTION    WLAN_BAPPhysicalLinkCreate()
+
+  DESCRIPTION 
+    Implements the actual HCI Create Physical Link command
+
+  DEPENDENCIES 
+    NA. 
+
+  PARAMETERS 
+
+    IN
+    btampHandle: pointer to the BAP handle.  Returned from WLANBAP_GetNewHndl.
+                 WLANBAP_GetNewHndl has to be called before every call to 
+                 WLAN_BAPPhysicalLinkCreate. Since the context is per 
+                 physical link.
+    pBapHCIPhysLinkCreate:  pointer to the "HCI Create Physical Link" Structure.
+    pHddHdl:  The context passed in by the caller. (e.g., BSL specific context)
+
+    IN/OUT
+    pBapHCIEvent:  Return event value for the command status event. 
+                (The caller of this routine is responsible for sending 
+                the Command Status event up the HCI interface.)
+   
+  RETURN VALUE
+    The result code associated with performing the operation  
+
+    VOS_STATUS_E_FAULT:  pointer to pBapHCIPhysLinkCreate is NULL 
+    VOS_STATUS_SUCCESS:  Success
+  
+  SIDE EFFECTS 
+  
+----------------------------------------------------------------------------*/
+VOS_STATUS  
+WLAN_BAPPhysicalLinkCreate 
+( 
+  ptBtampHandle btampHandle,
+  tBtampTLVHCI_Create_Physical_Link_Cmd   *pBapHCIPhysLinkCreate,
+  v_PVOID_t      pHddHdl,   /* BSL passes in its specific context */
+                            /* And I get phy_link_handle from the Command */
+  tpBtampHCI_Event pBapHCIEvent /* This now encodes ALL event types */
+                                /* Including Command Complete and Command Status*/
+);
+
+/*----------------------------------------------------------------------------
+
+  FUNCTION    WLAN_BAPPhysicalLinkAccept()
+
+  DESCRIPTION 
+    Implements the actual HCI Accept Physical Link command
+
+  DEPENDENCIES 
+    NA. 
+
+  PARAMETERS 
+
+    IN
+    btampHandle: pointer to the BAP handle.  Returned from WLANBAP_GetNewHndl.
+    pBapHCIPhysLinkAccept:  pointer to the "HCI Accept Physical Link" Structure.
+    pHddHdl:  The context passed in by the caller. (e.g., BSL specific context)
+   
+    IN/OUT
+    pBapHCIEvent:  Return event value for the command status event. 
+                (The caller of this routine is responsible for sending 
+                the Command Status event up the HCI interface.)
+   
+  RETURN VALUE
+    The result code associated with performing the operation  
+
+    VOS_STATUS_E_FAULT:  pointer to pBapHCIPhysLinkAccept is NULL 
+    VOS_STATUS_SUCCESS:  Success
+  
+  SIDE EFFECTS 
+  
+----------------------------------------------------------------------------*/
+VOS_STATUS  
+WLAN_BAPPhysicalLinkAccept 
+( 
+  ptBtampHandle btampHandle,
+  tBtampTLVHCI_Accept_Physical_Link_Cmd   *pBapHCIPhysLinkAccept,
+  v_PVOID_t      pHddHdl,   /* BSL passes in its specific context */
+                            /* And I get phy_link_handle from the Command */
+  tpBtampHCI_Event pBapHCIEvent /* This now encodes ALL event types */
+                                /* Including Command Complete and Command Status*/
+);
+
+/*----------------------------------------------------------------------------
+
+  FUNCTION    WLAN_BAPPhysicalLinkDisconnect()
+
+  DESCRIPTION 
+    Implements the actual HCI Disconnect Physical Link command
+
+  DEPENDENCIES 
+    NA. 
+
+  PARAMETERS 
+
+    IN
+    btampHandle: pointer to the BAP handle.  Returned from WLANBAP_GetNewHndl.
+    pBapHCIPhysLinkDisconnect:  pointer to the "HCI Disconnect Physical Link" Structure.
+   
+    IN/OUT
+    pBapHCIEvent:  Return event value for the command status event. 
+                (The caller of this routine is responsible for sending 
+                the Command Status event up the HCI interface.)
+   
+  RETURN VALUE
+    The result code associated with performing the operation  
+
+    VOS_STATUS_E_FAULT:  pointer to pBapHCIPhysLinkDisconnect is NULL 
+    VOS_STATUS_SUCCESS:  Success
+  
+  SIDE EFFECTS 
+  
+----------------------------------------------------------------------------*/
+VOS_STATUS  
+WLAN_BAPPhysicalLinkDisconnect 
+( 
+  ptBtampHandle btampHandle,
+  tBtampTLVHCI_Disconnect_Physical_Link_Cmd   *pBapHCIPhysLinkDisconnect,
+  tpBtampHCI_Event pBapHCIEvent /* This now encodes ALL event types */
+                                /* Including Command Complete and Command Status*/
+);
+
+/*----------------------------------------------------------------------------
+
+  FUNCTION    WLAN_BAPLogicalLinkCreate()
+
+  DESCRIPTION 
+    Implements the actual HCI Create Logical Link command
+
+  DEPENDENCIES 
+    NA. 
+
+  PARAMETERS 
+
+    IN
+    btampHandle: pointer to the BAP handle.  Returned from WLANBAP_GetNewHndl.
+    pBapHCILogLinkCreate:  pointer to the "HCI Create Logical Link" Structure.
+   
+    IN/OUT
+    pBapHCIEvent:  Return event value for the command status event. 
+                (The caller of this routine is responsible for sending 
+                the Command Status event up the HCI interface.)
+   
+  RETURN VALUE
+    The result code associated with performing the operation  
+
+    VOS_STATUS_E_FAULT:  pointer to pBapHCILogLinkCreate is NULL 
+    VOS_STATUS_SUCCESS:  Success
+  
+  SIDE EFFECTS 
+  
+----------------------------------------------------------------------------*/
+VOS_STATUS  
+WLAN_BAPLogicalLinkCreate
+( 
+  ptBtampHandle btampHandle,
+  tBtampTLVHCI_Create_Logical_Link_Cmd   *pBapHCILogLinkCreate,
+  tpBtampHCI_Event pBapHCIEvent /* This now encodes ALL event types */
+                                /* Including Command Complete and Command Status*/
+);
+
+/*----------------------------------------------------------------------------
+
+  FUNCTION    WLAN_BAPLogicalLinkAccept()
+
+  DESCRIPTION 
+    Implements the actual HCI Accept Logical Link command
+
+  DEPENDENCIES 
+    NA. 
+
+  PARAMETERS 
+
+    IN
+    btampHandle: pointer to the BAP handle.  Returned from WLANBAP_GetNewHndl.
+    pBapHCILogLinkAccept:  pointer to the "HCI Accept Logical Link" Structure.
+   
+    IN/OUT
+    pBapHCIEvent:  Return event value for the command status event. 
+                (The caller of this routine is responsible for sending 
+                the Command Status event up the HCI interface.)
+   
+  RETURN VALUE
+    The result code associated with performing the operation  
+
+    VOS_STATUS_E_FAULT:  pointer to pBapHCILogLinkAccept is NULL 
+    VOS_STATUS_SUCCESS:  Success
+  
+  SIDE EFFECTS 
+  
+----------------------------------------------------------------------------*/
+VOS_STATUS  
+WLAN_BAPLogicalLinkAccept
+( 
+  ptBtampHandle btampHandle,
+  tBtampTLVHCI_Accept_Logical_Link_Cmd   *pBapHCILogLinkAccept,
+  tpBtampHCI_Event pBapHCIEvent /* This now encodes ALL event types */
+                                /* Including Command Complete and Command Status*/
+);
+
+/*----------------------------------------------------------------------------
+
+  FUNCTION    WLAN_BAPLogicalLinkDisconnect()
+
+  DESCRIPTION 
+    Implements the actual HCI Disconnect Logical Link command
+
+  DEPENDENCIES 
+    NA. 
+
+  PARAMETERS 
+
+    IN
+    btampHandle: pointer to the BAP handle.  Returned from WLANBAP_GetNewHndl.
+    pBapHCILogLinkDisconnect:  pointer to the "HCI Disconnect Logical Link" Structure.
+   
+    IN/OUT
+    pBapHCIEvent:  Return event value for the command status event. 
+                (The caller of this routine is responsible for sending 
+                the Command Status event up the HCI interface.)
+   
+  RETURN VALUE
+    The result code associated with performing the operation  
+
+    VOS_STATUS_E_FAULT:  pointer to pBapHCILogLinkDisconnect is NULL 
+    VOS_STATUS_SUCCESS:  Success
+  
+  SIDE EFFECTS 
+  
+----------------------------------------------------------------------------*/
+VOS_STATUS  
+WLAN_BAPLogicalLinkDisconnect
+( 
+  ptBtampHandle btampHandle,
+  tBtampTLVHCI_Disconnect_Logical_Link_Cmd   *pBapHCILogLinkDisconnect,
+  tpBtampHCI_Event pBapHCIEvent /* This now encodes ALL event types */
+                                /* Including Command Complete and Command Status*/
+);
+
+/*----------------------------------------------------------------------------
+
+  FUNCTION    WLAN_BAPLogicalLinkCancel()
+
+  DESCRIPTION 
+    Implements the actual HCI Cancel Logical Link command
+
+  DEPENDENCIES 
+    NA. 
+
+  PARAMETERS 
+
+    IN
+    btampHandle: pointer to the BAP handle.  Returned from WLANBAP_GetNewHndl.
+    pBapHCILogLinkCancel:  pointer to the "HCI Cancel Logical Link" Structure.
+   
+    IN/OUT
+    pBapHCIEvent:  Return event value for the command complete event. 
+                (The caller of this routine is responsible for sending 
+                the Command Complete event up the HCI interface.)
+                (BTW, the required "HCI Logical Link Complete Event" 
+                will be generated by the BAP state machine and sent up 
+                via the (*tpWLAN_BAPEventCB).)
+   
+  RETURN VALUE
+    The result code associated with performing the operation  
+
+    VOS_STATUS_E_FAULT:  pointer to pBapHCILogLinkCancel is NULL 
+    VOS_STATUS_SUCCESS:  Success
+  
+  SIDE EFFECTS 
+  
+----------------------------------------------------------------------------*/
+VOS_STATUS  
+WLAN_BAPLogicalLinkCancel
+( 
+  ptBtampHandle btampHandle,
+  tBtampTLVHCI_Logical_Link_Cancel_Cmd   *pBapHCILogLinkCancel,
+  tpBtampHCI_Event pBapHCIEvent /* This now encodes ALL event types */
+                                /* Including Command Complete and Command Status*/
+);
+
+/*----------------------------------------------------------------------------
+
+  FUNCTION    WLAN_BAPFlowSpecModify()
+
+  DESCRIPTION 
+    Implements the actual HCI Modify Logical Link command
+    Produces an asynchronous flow spec modify complete event. Through the 
+    event callback.
+
+  DEPENDENCIES 
+    NA. 
+
+  PARAMETERS 
+
+    IN
+    btampHandle: pointer to the BAP handle.  Returned from WLANBAP_GetNewHndl.
+    pBapHCIFlowSpecModify:  pointer to the "HCI Flow Spec Modify" Structure.
+   
+    IN/OUT
+    pBapHCIEvent:  Return event value for the command status event. 
+                (The caller of this routine is responsible for sending 
+                the Command Status event up the HCI interface.)
+   
+  RETURN VALUE
+    The result code associated with performing the operation  
+
+    VOS_STATUS_E_FAULT:  pointer to pBapHCIFlowSpecModify is NULL 
+    VOS_STATUS_SUCCESS:  Success
+  
+  SIDE EFFECTS 
+  
+----------------------------------------------------------------------------*/
+VOS_STATUS  
+WLAN_BAPFlowSpecModify
+( 
+  ptBtampHandle btampHandle,
+  tBtampTLVHCI_Flow_Spec_Modify_Cmd   *pBapHCIFlowSpecModify,
+  tpBtampHCI_Event pBapHCIEvent /* This now encodes ALL event types */
+                                /* Including Command Complete and Command Status*/
+);
+
+/* Host Controller and Baseband Commands */
+
+/*----------------------------------------------------------------------------
+
+  FUNCTION    WLAN_BAPReset()
+
+  DESCRIPTION 
+    Implements the actual HCI Reset command.
+    Produces an asynchronous command complete event. Through the 
+    command complete callback.  (I.E., (*tpWLAN_BAPEventCB).)
+
+  DEPENDENCIES 
+    NA. 
+
+  PARAMETERS 
+
+    IN
+    btampHandle: pointer to the BAP handle.  Returned from WLANBAP_GetNewHndl.
+   
+  RETURN VALUE
+    The result code associated with performing the operation  
+
+    VOS_STATUS_SUCCESS:  Success
+  
+  SIDE EFFECTS 
+  
+----------------------------------------------------------------------------*/
+VOS_STATUS  
+WLAN_BAPReset
+( 
+  ptBtampHandle btampHandle
+);
+
+/*----------------------------------------------------------------------------
+
+  FUNCTION    WLAN_BAPSetEventMask()
+
+  DESCRIPTION 
+    Implements the actual HCI Set Event Mask command.  There is no need for 
+    a callback because when this call returns the action has been completed.
+
+  DEPENDENCIES 
+    NA. 
+
+  PARAMETERS 
+
+    IN
+    btampHandle: pointer to the BAP handle.  Returned from WLANBAP_GetNewHndl.
+    pBapHCISetEventMask:  pointer to the "HCI Set Event Mask" Structure.
+   
+    IN/OUT
+    pBapHCIEvent:  Return event value for the command complete event. 
+                (The caller of this routine is responsible for sending 
+                the Command Complete event up the HCI interface.)
+   
+  RETURN VALUE
+    The result code associated with performing the operation  
+
+    VOS_STATUS_E_FAULT:  pointer to pBapHCISetEventMask is NULL 
+    VOS_STATUS_SUCCESS:  Success
+  
+  SIDE EFFECTS 
+  
+----------------------------------------------------------------------------*/
+VOS_STATUS  
+WLAN_BAPSetEventMask
+( 
+  ptBtampHandle btampHandle,
+  tBtampTLVHCI_Set_Event_Mask_Cmd   *pBapHCISetEventMask,
+  tpBtampHCI_Event pBapHCIEvent /* This now encodes ALL event types */
+                                /* Including Command Complete and Command Status*/
+);
+
+/*----------------------------------------------------------------------------
+
+  FUNCTION    WLAN_BAPFlush()
+
+  DESCRIPTION 
+    Implements the actual HCI Flush command
+    Produces an asynchronous command complete event. Through the 
+    event callback. And an asynchronous Flush occurred event. Also through the 
+    event callback.
+
+  DEPENDENCIES 
+    NA. 
+
+  PARAMETERS 
+
+    IN
+    btampHandle: pointer to the BAP handle.  Returned from WLANBAP_GetNewHndl.
+    pBapHCIFlush:  pointer to the "HCI Flush" Structure.
+   
+  RETURN VALUE
+    The result code associated with performing the operation  
+
+    VOS_STATUS_E_FAULT:  pointer to pBapHCIFlush is NULL 
+    VOS_STATUS_SUCCESS:  Success
+  
+  SIDE EFFECTS 
+  
+----------------------------------------------------------------------------*/
+VOS_STATUS  
+WLAN_BAPFlush
+( 
+  ptBtampHandle btampHandle,
+  tBtampTLVHCI_Flush_Cmd     *pBapHCIFlush
+);
+
+/*----------------------------------------------------------------------------
+
+  FUNCTION    WLAN_EnhancedBAPFlush()
+
+  DESCRIPTION 
+    Implements the actual HCI Enhanced Flush command
+    Produces an asynchronous command complete event. Through the command status 
+    event callback. And an asynchronous Enhanced Flush Complete event. 
+
+  DEPENDENCIES 
+    NA. 
+
+  PARAMETERS 
+
+    IN
+    btampHandle: pointer to the BAP handle.  Returned from WLANBAP_GetNewHndl.
+    pBapHCIFlush:  pointer to the "HCI Enhanced Flush" Structure.
+    IN/OUT
+    pBapHCIEvent:  Return event value for the command complete event. 
+                (The caller of this routine is responsible for sending 
+                the Command Complete event up the HCI interface.)
+   
+  RETURN VALUE
+    The result code associated with performing the operation  
+
+    VOS_STATUS_E_FAULT:  pointer to pBapHCIFlush is NULL 
+    VOS_STATUS_SUCCESS:  Success
+  
+  SIDE EFFECTS 
+  
+----------------------------------------------------------------------------*/
+VOS_STATUS  
+WLAN_EnhancedBAPFlush
+( 
+  ptBtampHandle btampHandle,
+  tBtampTLVHCI_Enhanced_Flush_Cmd     *pBapHCIFlush,
+  tpBtampHCI_Event pBapHCIEvent /* This now encodes ALL event types */
+                                /* Including Command Complete and Command Status*/
+
+);
+
+/*----------------------------------------------------------------------------
+
+  FUNCTION    WLAN_BAPReadConnectionAcceptTimeout()
+
+  DESCRIPTION 
+    Implements the actual HCI Read Connection Accept Timeout command.  There 
+    is no need for a callback because when this call returns the action 
+    has been completed.
+
+  DEPENDENCIES 
+    NA. 
+
+  PARAMETERS 
+
+    IN
+    btampHandle: pointer to the BAP handle.  Returned from WLANBAP_GetNewHndl.
+   
+    IN/OUT
+    pBapHCIEvent:  Return event value for the command complete event. 
+                (The caller of this routine is responsible for sending 
+                the Command Complete event up the HCI interface.)
+   
+  RETURN VALUE
+    The result code associated with performing the operation  
+
+    VOS_STATUS_E_FAULT:  pointer to pBapHCIReadConnectionAcceptTimeout is NULL 
+    VOS_STATUS_SUCCESS:  Success
+  
+  SIDE EFFECTS 
+  
+----------------------------------------------------------------------------*/
+VOS_STATUS  
+WLAN_BAPReadConnectionAcceptTimeout
+( 
+  ptBtampHandle btampHandle,
+  tpBtampHCI_Event pBapHCIEvent /* This now encodes ALL event types */
+                                /* Including "Read" Command Complete */
+);
+
+/*----------------------------------------------------------------------------
+
+  FUNCTION    WLAN_BAPWriteConnectionAcceptTimeout()
+
+  DESCRIPTION 
+    Implements the actual HCI Write Connection Accept Timeout command.  There 
+    is no need for a callback because when this call returns the action 
+    has been completed.
+
+  DEPENDENCIES 
+    NA. 
+
+  PARAMETERS 
+
+    IN
+    btampHandle: pointer to the BAP handle.  Returned from WLANBAP_GetNewHndl.
+    pBapHCIWriteConnectionAcceptTimeout:  pointer to the "HCI Connection Accept Timeout" Structure.
+   
+    IN/OUT
+    pBapHCIEvent:  Return event value for the command complete event. 
+                (The caller of this routine is responsible for sending 
+                the Command Complete event up the HCI interface.)
+   
+  RETURN VALUE
+    The result code associated with performing the operation  
+
+    VOS_STATUS_E_FAULT:  pointer to pBapHCIWriteConnectionAcceptTimeout is NULL 
+    VOS_STATUS_SUCCESS:  Success
+  
+  SIDE EFFECTS 
+  
+----------------------------------------------------------------------------*/
+VOS_STATUS  
+WLAN_BAPWriteConnectionAcceptTimeout
+( 
+  ptBtampHandle btampHandle,
+  tBtampTLVHCI_Write_Connection_Accept_Timeout_Cmd   *pBapHCIWriteConnectionAcceptTimeout,
+  tpBtampHCI_Event pBapHCIEvent /* This now encodes ALL event types */
+                                /* Including Command Complete and Command Status*/
+);
+
+/*----------------------------------------------------------------------------
+
+  FUNCTION    WLAN_BAPReadLinkSupervisionTimeout()
+
+  DESCRIPTION 
+    Implements the actual HCI Read Link Supervision Timeout command.  There 
+    is no need for a callback because when this call returns the action 
+    has been completed.
+
+  DEPENDENCIES 
+    NA. 
+
+  PARAMETERS 
+
+    IN
+    btampHandle: pointer to the BAP handle.  Returned from WLANBAP_GetNewHndl.
+   
+    IN/OUT
+    pBapHCIEvent:  Return event value for the command complete event. 
+                (The caller of this routine is responsible for sending 
+                the Command Complete event up the HCI interface.)
+   
+  RETURN VALUE
+    The result code associated with performing the operation  
+
+    VOS_STATUS_E_FAULT:  pointer to pBapHCIReadLinkSupervisionTimeout is NULL 
+    VOS_STATUS_SUCCESS:  Success
+  
+  SIDE EFFECTS 
+  
+----------------------------------------------------------------------------*/
+VOS_STATUS  
+WLAN_BAPReadLinkSupervisionTimeout
+( 
+  ptBtampHandle btampHandle,
+  /* Only 8 bits (phy_link_handle) of this log_link_handle are valid. */
+  tBtampTLVHCI_Read_Link_Supervision_Timeout_Cmd *pBapHCIReadLinkSupervisionTimeout,
+  tpBtampHCI_Event pBapHCIEvent /* This now encodes ALL event types */
+                                /* Including "Read" Command Complete*/
+);
+
+/*----------------------------------------------------------------------------
+
+  FUNCTION    WLAN_BAPWriteLinkSupervisionTimeout()
+
+  DESCRIPTION 
+    Implements the actual HCI Write Link Supervision Timeout command.  There 
+    is no need for a callback because when this call returns the action 
+    has been completed.
+
+  DEPENDENCIES 
+    NA. 
+
+  PARAMETERS 
+
+    IN
+    btampHandle: pointer to the BAP handle.  Returned from WLANBAP_GetNewHndl.
+    pBapHCIWriteLinkSupervisionTimeout:  pointer to the "HCI Link Supervision Timeout" Structure.
+   
+    IN/OUT
+    pBapHCIEvent:  Return event value for the command complete event. 
+                (The caller of this routine is responsible for sending 
+                the Command Complete event up the HCI interface.)
+   
+  RETURN VALUE
+    The result code associated with performing the operation  
+
+    VOS_STATUS_E_FAULT:  pointer to pBapHCIWriteLinkSupervisionTimeout is NULL 
+    VOS_STATUS_SUCCESS:  Success
+  
+  SIDE EFFECTS 
+  
+----------------------------------------------------------------------------*/
+VOS_STATUS  
+WLAN_BAPWriteLinkSupervisionTimeout
+( 
+  ptBtampHandle btampHandle,
+  tBtampTLVHCI_Write_Link_Supervision_Timeout_Cmd   *pBapHCIWriteLinkSupervisionTimeout,
+  tpBtampHCI_Event pBapHCIEvent /* This now encodes ALL event types */
+                                /* Including Command Complete and Command Status*/
+);
+
+/* v3.0 Host Controller and Baseband Commands */
+
+
+/*----------------------------------------------------------------------------
+
+  FUNCTION    WLAN_BAPReadLogicalLinkAcceptTimeout()
+
+  DESCRIPTION 
+    Implements the actual HCI Read Logical Link Accept Timeout command.  There 
+    is no need for a callback because when this call returns the action 
+    has been completed.
+
+  DEPENDENCIES 
+    NA. 
+
+  PARAMETERS 
+
+    IN
+    btampHandle: pointer to the BAP handle.  Returned from WLANBAP_GetNewHndl.
+   
+    IN/OUT
+    pBapHCIEvent:  Return event value for the command complete event. 
+                (The caller of this routine is responsible for sending 
+                the Command Complete event up the HCI interface.)
+   
+  RETURN VALUE
+    The result code associated with performing the operation  
+
+    VOS_STATUS_E_FAULT:  pointer to pBapHCIReadLogicalLinkAcceptTimeout is NULL 
+    VOS_STATUS_SUCCESS:  Success
+  
+  SIDE EFFECTS 
+  
+----------------------------------------------------------------------------*/
+VOS_STATUS  
+WLAN_BAPReadLogicalLinkAcceptTimeout
+( 
+  ptBtampHandle btampHandle,
+  tpBtampHCI_Event pBapHCIEvent /* This now encodes ALL event types */
+                                /* Including "Read" Command Complete*/
+);
+
+/*----------------------------------------------------------------------------
+
+  FUNCTION    WLAN_BAPWriteLogicalLinkAcceptTimeout()
+
+  DESCRIPTION 
+    Implements the actual HCI Write Logical Link Accept Timeout command.  There 
+    is no need for a callback because when this call returns the action 
+    has been completed.
+
+  DEPENDENCIES 
+    NA. 
+
+  PARAMETERS 
+
+    IN
+    btampHandle: pointer to the BAP handle.  Returned from WLANBAP_GetNewHndl.
+    pBapHCIWriteLogicalLinkAcceptTimeout:  pointer to the "HCI Logical Link Accept Timeout" Structure.
+   
+    IN/OUT
+    pBapHCIEvent:  Return event value for the command complete event. 
+                (The caller of this routine is responsible for sending 
+                the Command Complete event up the HCI interface.)
+   
+  RETURN VALUE
+    The result code associated with performing the operation  
+
+    VOS_STATUS_E_FAULT:  pointer to pBapHCIWriteLogicalLinkAcceptTimeout is NULL 
+    VOS_STATUS_SUCCESS:  Success
+  
+  SIDE EFFECTS 
+  
+----------------------------------------------------------------------------*/
+VOS_STATUS  
+WLAN_BAPWriteLogicalLinkAcceptTimeout
+( 
+  ptBtampHandle btampHandle,
+  tBtampTLVHCI_Write_Logical_Link_Accept_Timeout_Cmd   *pBapHCIWriteLogicalLinkAcceptTimeout,
+  tpBtampHCI_Event pBapHCIEvent /* This now encodes ALL event types */
+                                /* Including Command Complete and Command Status*/
+);
+
+/*----------------------------------------------------------------------------
+
+  FUNCTION    WLAN_BAPSetEventMaskPage2()
+
+  DESCRIPTION 
+    Implements the actual HCI Set Event Mask Page 2 command.  There is no need for 
+    a callback because when this call returns the action has been completed.
+
+  DEPENDENCIES 
+    NA. 
+
+  PARAMETERS 
+
+    IN
+    btampHandle: pointer to the BAP handle.  Returned from WLANBAP_GetNewHndl.
+    pBapHCISetEventMaskPage2:  pointer to the "HCI Set Event Mask Page 2" Structure.
+   
+    IN/OUT
+    pBapHCIEvent:  Return event value for the command complete event. 
+                (The caller of this routine is responsible for sending 
+                the Command Complete event up the HCI interface.)
+   
+  RETURN VALUE
+    The result code associated with performing the operation  
+
+    VOS_STATUS_E_FAULT:  pointer to pBapHCISetEventMaskPage2 is NULL 
+    VOS_STATUS_SUCCESS:  Success
+  
+  SIDE EFFECTS 
+  
+----------------------------------------------------------------------------*/
+VOS_STATUS  
+WLAN_BAPSetEventMaskPage2
+( 
+  ptBtampHandle btampHandle,
+  tBtampTLVHCI_Set_Event_Mask_Page_2_Cmd   *pBapHCISetEventMaskPage2,
+  tpBtampHCI_Event pBapHCIEvent /* This now encodes ALL event types */
+                                /* Including Command Complete and Command Status*/
+);
+
+/*----------------------------------------------------------------------------
+
+  FUNCTION    WLAN_BAPReadLocationData()
+
+  DESCRIPTION 
+    Implements the actual HCI Read Location Data command.  There 
+    is no need for a callback because when this call returns the action 
+    has been completed.
+
+  DEPENDENCIES 
+    NA. 
+
+  PARAMETERS 
+
+    IN
+    btampHandle: pointer to the BAP handle.  Returned from WLANBAP_GetNewHndl.
+   
+    IN/OUT
+    pBapHCIEvent:  Return event value for the command complete event. 
+                (The caller of this routine is responsible for sending 
+                the Command Complete event up the HCI interface.)
+   
+  RETURN VALUE
+    The result code associated with performing the operation  
+
+    VOS_STATUS_E_FAULT:  pointer to pBapHCIReadLocationData is NULL 
+    VOS_STATUS_SUCCESS:  Success
+  
+  SIDE EFFECTS 
+  
+----------------------------------------------------------------------------*/
+VOS_STATUS  
+WLAN_BAPReadLocationData
+( 
+  ptBtampHandle btampHandle,
+  tpBtampHCI_Event pBapHCIEvent /* This now encodes ALL event types */
+                                /* Including "Read" Command Complete*/
+);
+
+/*----------------------------------------------------------------------------
+
+  FUNCTION    WLAN_BAPWriteLocationData()
+
+  DESCRIPTION 
+    Implements the actual HCI Write Location Data command.  There 
+    is no need for a callback because when this call returns the action 
+    has been completed.
+
+  DEPENDENCIES 
+    NA. 
+
+  PARAMETERS 
+
+    IN
+    btampHandle: pointer to the BAP handle.  Returned from WLANBAP_GetNewHndl.
+    pBapHCIWriteLocationData:  pointer to the "HCI Write Location Data" Structure.
+   
+    IN/OUT
+    pBapHCIEvent:  Return event value for the command complete event. 
+                (The caller of this routine is responsible for sending 
+                the Command Complete event up the HCI interface.)
+   
+  RETURN VALUE
+    The result code associated with performing the operation  
+
+    VOS_STATUS_E_FAULT:  pointer to pBapHCIWriteLocationData is NULL 
+    VOS_STATUS_SUCCESS:  Success
+  
+  SIDE EFFECTS 
+  
+----------------------------------------------------------------------------*/
+VOS_STATUS  
+WLAN_BAPWriteLocationData
+( 
+  ptBtampHandle btampHandle,
+  tBtampTLVHCI_Write_Location_Data_Cmd   *pBapHCIWriteLocationData,
+  tpBtampHCI_Event pBapHCIEvent /* This now encodes ALL event types */
+                                /* Including Command Complete and Command Status*/
+);
+
+
+/*----------------------------------------------------------------------------
+
+  FUNCTION    WLAN_BAPReadFlowControlMode()
+
+  DESCRIPTION 
+    Implements the actual HCI Read Flow Control Mode command.  There 
+    is no need for a callback because when this call returns the action 
+    has been completed.
+
+  DEPENDENCIES 
+    NA. 
+
+  PARAMETERS 
+
+    IN
+    btampHandle: pointer to the BAP handle.  Returned from WLANBAP_GetNewHndl.
+   
+    IN/OUT
+    pBapHCIEvent:  Return event value for the command complete event. 
+                (The caller of this routine is responsible for sending 
+                the Command Complete event up the HCI interface.)
+   
+  RETURN VALUE
+    The result code associated with performing the operation  
+
+    VOS_STATUS_E_FAULT:  pointer to pBapHCIReadFlowControlMode is NULL 
+    VOS_STATUS_SUCCESS:  Success
+  
+  SIDE EFFECTS 
+  
+----------------------------------------------------------------------------*/
+VOS_STATUS  
+WLAN_BAPReadFlowControlMode
+( 
+  ptBtampHandle btampHandle,
+  tpBtampHCI_Event pBapHCIEvent /* This now encodes ALL event types */
+                                /* Including "Read" Command Complete*/
+);
+
+/*----------------------------------------------------------------------------
+
+  FUNCTION    WLAN_BAPWriteFlowControlMode()
+
+  DESCRIPTION 
+    Implements the actual HCI Write Flow Control Mode command.  There 
+    is no need for a callback because when this call returns the action 
+    has been completed.
+
+  DEPENDENCIES 
+    NA. 
+
+  PARAMETERS 
+
+    IN
+    btampHandle: pointer to the BAP handle.  Returned from WLANBAP_GetNewHndl.
+    pBapHCIWriteFlowControlMode:  pointer to the "HCI Write Flow Control Mode" Structure.
+   
+    IN/OUT
+    pBapHCIEvent:  Return event value for the command complete event. 
+                (The caller of this routine is responsible for sending 
+                the Command Complete event up the HCI interface.)
+   
+  RETURN VALUE
+    The result code associated with performing the operation  
+
+    VOS_STATUS_E_FAULT:  pointer to pBapHCIWriteFlowControlMode is NULL 
+    VOS_STATUS_SUCCESS:  Success
+  
+  SIDE EFFECTS 
+  
+----------------------------------------------------------------------------*/
+VOS_STATUS  
+WLAN_BAPWriteFlowControlMode
+( 
+  ptBtampHandle btampHandle,
+  tBtampTLVHCI_Write_Flow_Control_Mode_Cmd   *pBapHCIWriteFlowControlMode,
+  tpBtampHCI_Event pBapHCIEvent /* This now encodes ALL event types */
+                                /* Including Command Complete and Command Status*/
+);
+
+/*----------------------------------------------------------------------------
+
+  FUNCTION    WLAN_BAPReadBestEffortFlushTimeout()
+
+  DESCRIPTION 
+    Implements the actual HCI Read Best Effort Flush Timeout command.  There 
+    is no need for a callback because when this call returns the action 
+    has been completed.
+
+  DEPENDENCIES 
+    NA. 
+
+  PARAMETERS 
+
+    IN
+    btampHandle: pointer to the BAP handle.  Returned from WLANBAP_GetNewHndl.
+   
+    IN/OUT
+    pBapHCIEvent:  Return event value for the command complete event. 
+                (The caller of this routine is responsible for sending 
+                the Command Complete event up the HCI interface.)
+   
+  RETURN VALUE
+    The result code associated with performing the operation  
+
+    VOS_STATUS_E_FAULT:  pointer to pBapHCIReadBEFlushTO is NULL 
+    VOS_STATUS_SUCCESS:  Success
+  
+  SIDE EFFECTS 
+  
+----------------------------------------------------------------------------*/
+VOS_STATUS  
+WLAN_BAPReadBestEffortFlushTimeout
+( 
+  ptBtampHandle btampHandle,
+  /* The log_link_hanlde identifies which logical link's BE TO*/
+  tBtampTLVHCI_Read_Best_Effort_Flush_Timeout_Cmd   *pBapHCIReadBEFlushTO,
+  tpBtampHCI_Event pBapHCIEvent /* This now encodes ALL event types */
+                                /* Including "Read" Command Complete*/
+);
+
+/*----------------------------------------------------------------------------
+
+  FUNCTION    WLAN_BAPWriteBestEffortFlushTimeout()
+
+  DESCRIPTION 
+    Implements the actual HCI Write Best Effort Flush TO command.  There 
+    is no need for a callback because when this call returns the action 
+    has been completed.
+
+  DEPENDENCIES 
+    NA. 
+
+  PARAMETERS 
+
+    IN
+    btampHandle: pointer to the BAP handle.  Returned from WLANBAP_GetNewHndl.
+    pBapHCIWriteBEFlushTO:  pointer to the "HCI Write BE Flush TO" Structure.
+   
+    IN/OUT
+    pBapHCIEvent:  Return event value for the command complete event. 
+                (The caller of this routine is responsible for sending 
+                the Command Complete event up the HCI interface.)
+   
+  RETURN VALUE
+    The result code associated with performing the operation  
+
+    VOS_STATUS_E_FAULT:  pointer to pBapHCIWriteBEFlushTO is NULL 
+    VOS_STATUS_SUCCESS:  Success
+  
+  SIDE EFFECTS 
+  
+----------------------------------------------------------------------------*/
+VOS_STATUS  
+WLAN_BAPWriteBestEffortFlushTimeout
+( 
+  ptBtampHandle btampHandle,
+  tBtampTLVHCI_Write_Best_Effort_Flush_Timeout_Cmd   *pBapHCIWriteBEFlushTO,
+  tpBtampHCI_Event pBapHCIEvent /* This now encodes ALL event types */
+                                /* Including Command Complete and Command Status*/
+);
+
+
+/*----------------------------------------------------------------------------
+
+  FUNCTION    WLAN_BAPSetShortRangeMode()
+
+  DESCRIPTION 
+    Implements the actual HCI Set Short Range Mode command.  There is no need for 
+    a callback because when this call returns the action has been completed.
+
+  DEPENDENCIES 
+    NA. 
+
+  PARAMETERS 
+
+    IN
+    btampHandle: pointer to the BAP handle.  Returned from WLANBAP_GetNewHndl.
+    pBapHCIShortRangeMode:  pointer to the "HCI Set Short Range Mode" Structure.
+   
+    IN/OUT
+    pBapHCIEvent:  Return event value for the command complete event. 
+                (The caller of this routine is responsible for sending 
+                the Command Complete event up the HCI interface.)
+   
+  RETURN VALUE
+    The result code associated with performing the operation  
+
+    VOS_STATUS_E_FAULT:  pointer to pBapHCIShortRangeMode is NULL 
+    VOS_STATUS_SUCCESS:  Success
+  
+  SIDE EFFECTS 
+  
+----------------------------------------------------------------------------*/
+VOS_STATUS  
+WLAN_BAPSetShortRangeMode
+( 
+  ptBtampHandle btampHandle,
+  tBtampTLVHCI_Set_Short_Range_Mode_Cmd   *pBapHCIShortRangeMode,
+  tpBtampHCI_Event pBapHCIEvent /* This now encodes ALL event types */
+                                /* Including Command Complete and Command Status*/
+);
+
+
+/*----------------------------------------------------------------------------
+
+  FUNCTION    WLAN_BAPVendorSpecificCmd0()
+
+  DESCRIPTION
+    Implements the actual HCI Vendor Specific Command 0 (OGF 0x3f, OCF 0x0000).
+    There is no need for a callback because when this call returns the action has
+    been completed.
+
+  DEPENDENCIES
+    NA.
+
+  PARAMETERS
+
+    IN
+    btampHandle: pointer to the BAP handle.  Returned from WLANBAP_GetNewHndl.
+
+    IN/OUT
+    pBapHCIEvent:  Return event value for the command complete event.
+                (The caller of this routine is responsible for sending
+                the Command Complete event up the HCI interface.)
+
+  RETURN VALUE
+    The result code associated with performing the operation
+
+    VOS_STATUS_E_FAULT:  pointer to pBapHCIEvent is NULL
+    VOS_STATUS_SUCCESS:  Success
+
+  SIDE EFFECTS
+
+----------------------------------------------------------------------------*/
+VOS_STATUS
+WLAN_BAPVendorSpecificCmd0
+(
+  ptBtampHandle btampHandle,
+  tpBtampHCI_Event pBapHCIEvent /* This now encodes ALL event types */
+                                /* Including Command Complete and Command Status*/
+);
+
+/*----------------------------------------------------------------------------
+
+  FUNCTION    WLAN_BAPVendorSpecificCmd1()
+
+  DESCRIPTION
+    Implements the actual HCI Vendor Specific Command 1 (OGF 0x3f, OCF 0x0001).
+    There is no need for a callback because when this call returns the action has
+    been completed.
+
+  DEPENDENCIES
+    NA.
+
+  PARAMETERS
+
+    IN
+    btampHandle: pointer to the BAP handle.  Returned from WLANBAP_GetNewHndl.
+
+    IN/OUT
+    pBapHCIEvent:  Return event value for the command complete event.
+                (The caller of this routine is responsible for sending
+                the Command Complete event up the HCI interface.)
+
+  RETURN VALUE
+    The result code associated with performing the operation
+
+    VOS_STATUS_E_FAULT:  pointer to pBapHCIEvent is NULL
+    VOS_STATUS_SUCCESS:  Success
+
+  SIDE EFFECTS
+
+----------------------------------------------------------------------------*/
+VOS_STATUS
+WLAN_BAPVendorSpecificCmd1
+(
+  ptBtampHandle btampHandle,
+  tpBtampHCI_Event pBapHCIEvent /* This now encodes ALL event types */
+                                /* Including Command Complete and Command Status*/
+);
+
+/* End of v3.0 Host Controller and Baseband Commands */
+
+
+/* Informational Parameters */
+
+/*----------------------------------------------------------------------------
+
+  FUNCTION    WLAN_BAPReadLocalVersionInfo()
+
+  DESCRIPTION 
+    Implements the actual HCI Read Local Version Info command.  There 
+    is no need for a callback because when this call returns the action 
+    has been completed.
+
+  DEPENDENCIES 
+    NA. 
+
+  PARAMETERS 
+
+    IN
+    btampHandle: pointer to the BAP handle.  Returned from WLANBAP_GetNewHndl.
+    // There are really no input parameters in this command.  
+    // Just the command opcode itself is sufficient.
+   
+    IN/OUT
+    pBapHCIEvent:  Return event value for the command complete event. 
+                (The caller of this routine is responsible for sending 
+                the Command Complete event up the HCI interface.)
+   
+  RETURN VALUE
+    The result code associated with performing the operation  
+
+    VOS_STATUS_E_FAULT:  pointer to pBapHCIReadLocalVersionInfo is NULL 
+    VOS_STATUS_SUCCESS:  Success
+  
+  SIDE EFFECTS 
+  
+----------------------------------------------------------------------------*/
+VOS_STATUS  
+WLAN_BAPReadLocalVersionInfo
+( 
+  ptBtampHandle btampHandle,
+  tpBtampHCI_Event pBapHCIEvent /* This now encodes ALL event types */
+                                /* Including "Read" Command Complete*/
+);
+
+/*----------------------------------------------------------------------------
+
+  FUNCTION    WLAN_BAPReadLocalSupportedCmds()
+
+  DESCRIPTION 
+    Implements the actual HCI Read Local Supported Commands.  There 
+    is no need for a callback because when this call returns the action 
+    has been completed.
+
+  DEPENDENCIES 
+    NA. 
+
+  PARAMETERS 
+
+    IN
+    btampHandle: pointer to the BAP handle.  Returned from WLANBAP_GetNewHndl.
+    // There are really no input parameters in this command.  
+    // Just the command opcode itself is sufficient.
+   
+    IN/OUT
+    pBapHCIEvent:  Return event value for the command complete event. 
+                (The caller of this routine is responsible for sending 
+                the Command Complete event up the HCI interface.)
+   
+  RETURN VALUE
+    The result code associated with performing the operation  
+
+    VOS_STATUS_E_FAULT:  pointer to pBapHCIReadLocalSupportedCmds is NULL 
+    VOS_STATUS_SUCCESS:  Success
+  
+  SIDE EFFECTS 
+  
+----------------------------------------------------------------------------*/
+VOS_STATUS  
+WLAN_BAPReadLocalSupportedCmds
+( 
+  ptBtampHandle btampHandle,
+  tpBtampHCI_Event pBapHCIEvent /* This now encodes ALL event types */
+                                /* Including "Read" Command Complete*/
+);
+
+/*----------------------------------------------------------------------------
+
+  FUNCTION    WLAN_BAPReadBufferSize()
+
+  DESCRIPTION 
+    Implements the actual HCI Read Buffer Size command.  There 
+    is no need for a callback because when this call returns the action 
+    has been completed.
+
+  DEPENDENCIES 
+    NA. 
+
+  PARAMETERS 
+
+    IN
+    btampHandle: pointer to the BAP handle.  Returned from WLANBAP_GetNewHndl.
+   
+    IN/OUT
+    pBapHCIEvent:  Return event value for the command complete event. 
+                (The caller of this routine is responsible for sending 
+                the Command Complete event up the HCI interface.)
+   
+  RETURN VALUE
+    The result code associated with performing the operation  
+
+    VOS_STATUS_E_FAULT:  pointer to pBapHCIReadBufferSize is NULL 
+    VOS_STATUS_SUCCESS:  Success
+  
+  SIDE EFFECTS 
+  
+----------------------------------------------------------------------------*/
+VOS_STATUS  
+WLAN_BAPReadBufferSize
+( 
+  ptBtampHandle btampHandle,
+  tpBtampHCI_Event pBapHCIEvent /* This now encodes ALL event types */
+                                /* Including "Read" Command Complete*/
+);
+
+/*----------------------------------------------------------------------------
+
+  FUNCTION    WLAN_BAPReadDataBlockSize()
+
+  DESCRIPTION 
+    Implements the actual HCI Read Data Block Size command.  There 
+    is no need for a callback because when this call returns the action 
+    has been completed.
+
+  DEPENDENCIES 
+    NA. 
+
+  PARAMETERS 
+
+    IN
+    btampHandle: pointer to the BAP handle.  Returned from WLANBAP_GetNewHndl.
+   
+    IN/OUT
+    pBapHCIEvent:  Return event value for the command complete event. 
+                (The caller of this routine is responsible for sending 
+                the Command Complete event up the HCI interface.)
+   
+  RETURN VALUE
+    The result code associated with performing the operation  
+
+    VOS_STATUS_E_FAULT:  pointer to pBapHCIReadDataBlockSize is NULL 
+    VOS_STATUS_SUCCESS:  Success
+  
+  SIDE EFFECTS 
+  
+----------------------------------------------------------------------------*/
+VOS_STATUS  
+WLAN_BAPReadDataBlockSize
+( 
+  ptBtampHandle btampHandle,
+  tpBtampHCI_Event pBapHCIEvent /* This now encodes ALL event types */
+                                /* Including "Read" Command Complete*/
+);
+
+/*
+Status Parameters
+*/
+
+/*----------------------------------------------------------------------------
+
+  FUNCTION    WLAN_BAPReadFailedContactCounter()
+
+  DESCRIPTION 
+    Implements the actual HCI Read Failed Contact Counter command.  There 
+    is no need for a callback because when this call returns the action 
+    has been completed.
+
+  DEPENDENCIES 
+    NA. 
+
+  PARAMETERS 
+
+    IN
+    btampHandle: pointer to the BAP handle.  Returned from WLANBAP_GetNewHndl.
+    pBapHCIReadFailedContactCounter:  pointer to the "HCI Read Failed Contact Counter" structure.
+   
+    IN/OUT
+    pBapHCIEvent:  Return event value for the command complete event. 
+                (The caller of this routine is responsible for sending 
+                the Command Complete event up the HCI interface.)
+   
+  RETURN VALUE
+    The result code associated with performing the operation  
+
+    VOS_STATUS_E_FAULT:  pointer to pBapHCIReadFailedContactCounter or
+                         pFailedContactCounter is NULL 
+    VOS_STATUS_SUCCESS:  Success
+  
+  SIDE EFFECTS 
+  
+----------------------------------------------------------------------------*/
+VOS_STATUS  
+WLAN_BAPReadFailedContactCounter
+( 
+  ptBtampHandle btampHandle,
+  tBtampTLVHCI_Read_Failed_Contact_Counter_Cmd  *pBapHCIReadFailedContactCounter,
+  tpBtampHCI_Event pBapHCIEvent /* This now encodes ALL event types */
+                                /* Including "Read" Command Complete*/
+);
+
+/*----------------------------------------------------------------------------
+
+  FUNCTION    WLAN_BAPResetFailedContactCounter()
+
+  DESCRIPTION 
+    Implements the actual HCI Reset Failed Contact Counter command.  There 
+    is no need for a callback because when this call returns the action 
+    has been completed.
+
+  DEPENDENCIES 
+    NA. 
+
+  PARAMETERS 
+
+    IN
+    btampHandle: pointer to the BAP handle.  Returned from WLANBAP_GetNewHndl.
+    pBapHCIResetFailedContactCounter:  pointer to the "HCI Reset Failed Contact Counter" structure.
+   
+    IN/OUT
+    pBapHCIEvent:  Return event value for the command complete event. 
+                (The caller of this routine is responsible for sending 
+                the Command Complete event up the HCI interface.)
+   
+  RETURN VALUE
+    The result code associated with performing the operation  
+
+    VOS_STATUS_E_FAULT:  pointer to pBapHCIResetFailedContactCounter is NULL
+    VOS_STATUS_SUCCESS:  Success
+  
+  SIDE EFFECTS 
+  
+----------------------------------------------------------------------------*/
+VOS_STATUS  
+WLAN_BAPResetFailedContactCounter
+( 
+  ptBtampHandle btampHandle,
+  tBtampTLVHCI_Reset_Failed_Contact_Counter_Cmd *pBapHCIResetFailedContactCounter,
+  tpBtampHCI_Event pBapHCIEvent /* This now encodes ALL event types */
+                                /* Including Command Complete and Command Status*/
+);
+
+/*----------------------------------------------------------------------------
+
+  FUNCTION    WLAN_BAPReadLinkQuality()
+
+  DESCRIPTION 
+    Implements the actual HCI Read Link Quality command.  There 
+    is no need for a callback because when this call returns the action 
+    has been completed.
+
+  DEPENDENCIES 
+    NA. 
+
+  PARAMETERS 
+
+    IN
+    btampHandle: pointer to the BAP handle.  Returned from WLANBAP_GetNewHndl.
+    pBapHCIReadLinkQuality:  pointer to the "HCI Read Link Quality" structure.
+   
+    IN/OUT
+    pBapHCIEvent:  Return event value for the command complete event. 
+                (The caller of this routine is responsible for sending 
+                the Command Complete event up the HCI interface.)
+   
+  RETURN VALUE
+    The result code associated with performing the operation  
+
+    VOS_STATUS_E_FAULT:  pointer to pBapHCIReadLinkQuality or 
+                         pBapHCILinkQuality is NULL 
+    VOS_STATUS_SUCCESS:  Success
+  
+  SIDE EFFECTS 
+  
+----------------------------------------------------------------------------*/
+VOS_STATUS  
+WLAN_BAPReadLinkQuality
+( 
+  ptBtampHandle btampHandle,
+  tBtampTLVHCI_Read_Link_Quality_Cmd *pBapHCIReadLinkQuality,
+  tpBtampHCI_Event pBapHCIEvent /* This now encodes ALL event types */
+                                /* Including Command Complete and Command Status*/
+);
+
+/*----------------------------------------------------------------------------
+
+  FUNCTION    WLAN_BAPReadRSSI()
+
+  DESCRIPTION 
+    Implements the actual HCI Read RSSI command.  There 
+    is no need for a callback because when this call returns the action 
+    has been completed.
+
+  DEPENDENCIES 
+    NA. 
+
+  PARAMETERS 
+
+    IN
+    btampHandle: pointer to the BAP handle.  Returned from WLANBAP_GetNewHndl.
+    pBapHCIReadRSSI:  pointer to the "HCI Read RSSI" structure.
+   
+    IN/OUT
+    pBapHCIEvent:  Return event value for the command complete event. 
+                (The caller of this routine is responsible for sending 
+                the Command Complete event up the HCI interface.)
+   
+  RETURN VALUE
+    The result code associated with performing the operation  
+
+    VOS_STATUS_E_FAULT:  pointer to pBapHCIReadRSSI or
+                         pBapHCIRSSI is NULL 
+    VOS_STATUS_SUCCESS:  Success
+  
+  SIDE EFFECTS 
+  
+----------------------------------------------------------------------------*/
+VOS_STATUS  
+WLAN_BAPReadRSSI
+( 
+  ptBtampHandle btampHandle,
+  tBtampTLVHCI_Read_RSSI_Cmd *pBapHCIReadRSSI,
+  tpBtampHCI_Event pBapHCIEvent /* This now encodes ALL event types */
+                                /* Including Command Complete and Command Status*/
+);
+
+/*----------------------------------------------------------------------------
+
+  FUNCTION    WLAN_BAPReadLocalAMPInfo()
+
+  DESCRIPTION 
+    Implements the actual HCI Read Local AMP Information command.  There 
+    is no need for a callback because when this call returns the action 
+    has been completed.
+
+  DEPENDENCIES 
+    NA. 
+
+  PARAMETERS 
+
+    IN
+    btampHandle: pointer to the BAP handle.  Returned from WLANBAP_GetNewHndl.
+    pBapHCIReadLocalAMPInfo:  pointer to the "HCI Read Local AMP Info" Structure.
+   
+    IN/OUT
+    pBapHCIEvent:  Return event value for the command complete event. 
+                (The caller of this routine is responsible for sending 
+                the Command Complete event up the HCI interface.)
+   
+  RETURN VALUE
+    The result code associated with performing the operation  
+
+    VOS_STATUS_E_FAULT:  pointer to pBapHCIReadLocalAMPInfo or 
+                         pBapHCILocalAMPInfo is NULL
+    VOS_STATUS_SUCCESS:  Success
+  
+  SIDE EFFECTS 
+  
+----------------------------------------------------------------------------*/
+VOS_STATUS  
+WLAN_BAPReadLocalAMPInfo
+( 
+  ptBtampHandle btampHandle,
+  tBtampTLVHCI_Read_Local_AMP_Information_Cmd *pBapHCIReadLocalAMPInfo,
+  tpBtampHCI_Event pBapHCIEvent /* This now encodes ALL event types */
+                                /* Including Command Complete and Command Status*/
+);
+
+/*----------------------------------------------------------------------------
+
+  FUNCTION    WLAN_BAPReadLocalAMPAssoc()
+
+  DESCRIPTION 
+    Implements the actual HCI Read Local AMP Assoc command.  There 
+    is no need for a callback because when this call returns the action 
+    has been completed.
+
+  DEPENDENCIES 
+    NA. 
+
+  PARAMETERS 
+
+    IN
+    btampHandle: pointer to the BAP handle.  Returned from WLANBAP_GetNewHndl.
+    pBapHCIReadLocalAMPAssoc:  pointer to the "HCI Read Local AMP Assoc" Structure.
+    
+    IN/OUT
+    pBapHCIEvent:  Return event value for the command complete event. 
+                (The caller of this routine is responsible for sending 
+                the Command Complete event up the HCI interface.)
+   
+   
+  RETURN VALUE
+    The result code associated with performing the operation  
+
+    VOS_STATUS_E_FAULT:  pointer to pBapHCIReadLocalAMPAssoc 
+                        (or pBapHCILocalAMPAssoc) is NULL 
+    VOS_STATUS_SUCCESS:  Success
+  
+  SIDE EFFECTS 
+  
+----------------------------------------------------------------------------*/
+VOS_STATUS  
+WLAN_BAPReadLocalAMPAssoc
+( 
+  ptBtampHandle btampHandle,
+  tBtampTLVHCI_Read_Local_AMP_Assoc_Cmd   *pBapHCIReadLocalAMPAssoc,
+  tpBtampHCI_Event pBapHCIEvent /* This now encodes ALL event types */
+                                /* Including Command Complete and Command Status*/
+);
+
+/*----------------------------------------------------------------------------
+
+  FUNCTION    WLAN_BAPWriteRemoteAMPAssoc()
+
+  DESCRIPTION 
+    Implements the actual HCI Write Remote AMP Assoc command.  There 
+    is no need for a callback because when this call returns the action 
+    has been completed.
+
+  DEPENDENCIES 
+    NA. 
+
+  PARAMETERS 
+
+    IN
+    btampHandle: pointer to the BAP handle.  Returned from WLANBAP_GetNewHndl.
+    pBapHCIWriteRemoteAMPAssoc:  pointer to the "HCI Write Remote AMP Assoc" Structure.
+    
+    IN/OUT
+    pBapHCIEvent:  Return event value for the command complete event. 
+                (The caller of this routine is responsible for sending 
+                the Command Complete event up the HCI interface.)
+   
+  RETURN VALUE
+    The result code associated with performing the operation  
+
+    VOS_STATUS_E_FAULT:  pointer to pBapHCIWriteRemoteAMPAssoc is NULL 
+    VOS_STATUS_SUCCESS:  Success
+  
+  SIDE EFFECTS 
+  
+----------------------------------------------------------------------------*/
+VOS_STATUS  
+WLAN_BAPWriteRemoteAMPAssoc
+( 
+  ptBtampHandle btampHandle,
+  tBtampTLVHCI_Write_Remote_AMP_ASSOC_Cmd   *pBapHCIWriteRemoteAMPAssoc,
+  tpBtampHCI_Event pBapHCIEvent /* This now encodes ALL event types */
+                                /* Including Command Complete and Command Status*/
+);
+
+/*
+Debug Commands
+*/
+
+/*----------------------------------------------------------------------------
+
+  FUNCTION    WLAN_BAPReadLoopbackMode()
+
+  DESCRIPTION 
+    Implements the actual HCI Read Loopback Mode command.  There 
+    is no need for a callback because when this call returns the action 
+    has been completed.
+
+  DEPENDENCIES 
+    NA. 
+
+  PARAMETERS 
+
+    IN
+    btampHandle: pointer to the BAP handle.  Returned from WLANBAP_GetNewHndl.
+    pBapHCIReadLoopbackMode:  pointer to the "HCI Read Loopback Mode".
+   
+    IN/OUT
+    pBapHCIEvent:  Return event value for the command complete event. 
+                (The caller of this routine is responsible for sending 
+                the Command Complete event up the HCI interface.)
+   
+  RETURN VALUE
+    The result code associated with performing the operation  
+
+    VOS_STATUS_E_FAULT:  pointer to pBapHCIReadLoopbackMode or 
+                         pBapHCILoopbackMode is NULL.
+    VOS_STATUS_SUCCESS:  Success
+  
+  SIDE EFFECTS 
+  
+----------------------------------------------------------------------------*/
+VOS_STATUS  
+WLAN_BAPReadLoopbackMode
+( 
+  ptBtampHandle btampHandle,
+  tBtampTLVHCI_Read_Loopback_Mode_Cmd  *pBapHCIReadLoopbackMode,
+  tpBtampHCI_Event pBapHCIEvent /* This now encodes ALL event types */
+                                /* Including Command Complete and Command Status*/
+);
+
+/*----------------------------------------------------------------------------
+
+  FUNCTION    WLAN_BAPWriteLoopbackMode()
+
+  DESCRIPTION 
+    Implements the actual HCI Write Loopback Mode command.  There 
+    is no need for a callback because when this call returns the action 
+    has been completed.
+
+  DEPENDENCIES 
+    NA. 
+
+  PARAMETERS 
+
+    IN
+    btampHandle: pointer to the BAP handle.  Returned from WLANBAP_GetNewHndl.
+    pBapHCIWriteLoopbackMode:  pointer to the "HCI Write Loopback Mode" Structure.
+    
+    IN/OUT
+    pBapHCIEvent:  Return event value for the command complete event. 
+                (The caller of this routine is responsible for sending 
+                the Command Complete event up the HCI interface.)
+   
+  RETURN VALUE
+    The result code associated with performing the operation  
+
+    VOS_STATUS_E_FAULT:  pointer to pBapHCIWriteLoopbackMode is NULL 
+    VOS_STATUS_SUCCESS:  Success
+  
+  SIDE EFFECTS 
+  
+----------------------------------------------------------------------------*/
+VOS_STATUS  
+WLAN_BAPWriteLoopbackMode
+( 
+  ptBtampHandle btampHandle,
+  tBtampTLVHCI_Write_Loopback_Mode_Cmd   *pBapHCIWriteLoopbackMode,
+  tpBtampHCI_Event pBapHCIEvent /* This now encodes ALL event types */
+                                /* Including Command Complete and Command Status*/
+);
+
+
+/*----------------------------------------------------------------------------
+
+  FUNCTION    WLAN_BAPSetConfig()
+
+  DESCRIPTION 
+     The function updates some configuration for BAP module in SME during SMEs
+     close -> open sequence.
+   
+     BAP applies the new configuration at the next transaction.
+
+
+  DEPENDENCIES 
+    NA. 
+
+  PARAMETERS 
+
+    IN
+    btampHandle: pointer to the BAP handle.  Returned from WLANBAP_GetNewHndl.
+    pBapHCIReadRSSI:  pointer to the "HCI Read RSSI" structure.
+   
+    IN
+    pConfig: a pointer to a caller allocated object of typedef struct WLANBAP_ConfigType.
+   
+  RETURN VALUE
+    The result code associated with performing the operation  
+
+    VOS_STATUS_E_FAULT:  pConfig or btampHandle is NULL 
+    VOS_STATUS_SUCCESS:  Success
+  
+  SIDE EFFECTS 
+  
+----------------------------------------------------------------------------*/
+VOS_STATUS  
+WLAN_BAPSetConfig
+( 
+  ptBtampHandle btampHandle,
+  WLANBAP_ConfigType *pConfig
+);
+
+/*===========================================================================
+
+  FUNCTION    WLANBAP_GetAcFromTxDataPkt
+
+  DESCRIPTION 
+
+    HDD will call this API when it has a HCI Data Packet (SKB) and it wants 
+    to find AC type of the data frame from the HCI header on the data pkt
+    - to be send using TL.
+
+
+  PARAMETERS 
+
+    btampHandle: The BT-AMP PAL handle returned in WLANBAP_GetNewHndl.
+ 
+    pHciData: Pointer to the HCI data frame
+ 
+    pucAC:       Pointer to return the access category 
+   
+  RETURN VALUE
+
+    The result code associated with performing the operation  
+
+    VOS_STATUS_E_INVAL:  Input parameters are invalid 
+    VOS_STATUS_E_FAULT:  BAP handle is NULL  
+    VOS_STATUS_SUCCESS:  Everything is good :) 
+
+  SIDE EFFECTS 
+  
+============================================================================*/
+VOS_STATUS
+WLANBAP_GetAcFromTxDataPkt
+( 
+  ptBtampHandle     btampHandle,  /* Used by BAP to identify the actual session
+                                    and therefore addresses */
+  void              *pHciData,     /* Pointer to the HCI data frame */
+  WLANTL_ACEnumType *pucAC        /* Return the AC here */
+);
+
+/*----------------------------------------------------------------------------
+
+  FUNCTION    WLAN_BAPGetMask()
+
+  DESCRIPTION 
+     The function gets the updated event mask from BAP core.
+   
+
+
+  DEPENDENCIES 
+    NA. 
+
+  PARAMETERS 
+
+    IN
+    btampHandle: pointer to the BAP handle.  Returned from WLANBAP_GetNewHndl.
+    
+   
+    IN
+    pEvent_mask_page_2: a pointer to a caller allocated object of 8 bytes.
+   
+  RETURN VALUE
+    The result code associated with performing the operation  
+
+    VOS_STATUS_E_FAULT:  pEvent_mask_page_2 or btampHandle is NULL 
+    VOS_STATUS_SUCCESS:  Success
+  
+  SIDE EFFECTS 
+  
+----------------------------------------------------------------------------*/
+VOS_STATUS
+WLAN_BAPGetMask( ptBtampHandle btampHandle, 
+                 v_U8_t       *pEvent_mask_page_2);
+
+/*----------------------------------------------------------------------------
+
+  FUNCTION    WLAN_BAPDisconnect()
+
+  DESCRIPTION 
+     The function to request to BAP core to disconnect currecnt AMP connection.
+   
+
+
+  DEPENDENCIES 
+    NA. 
+
+  PARAMETERS 
+
+    IN
+    btampHandle: pointer to the BAP handle.  Returned from WLANBAP_GetNewHndl.
+    
+   
+  RETURN VALUE
+    The result code associated with performing the operation  
+
+    VOS_STATUS_E_FAULT:  btampHandle is NULL 
+    VOS_STATUS_SUCCESS:  Success
+  
+  SIDE EFFECTS 
+  
+----------------------------------------------------------------------------*/
+VOS_STATUS  
+WLAN_BAPDisconnect
+( 
+  ptBtampHandle btampHandle
+);
+
+/*----------------------------------------------------------------------------
+
+  FUNCTION    WLAN_BAPSessionOn()
+
+  DESCRIPTION 
+     The function to check from BAP core if AMP connection is up right now.
+   
+
+
+  DEPENDENCIES 
+    NA. 
+
+  PARAMETERS 
+
+    IN
+    btampHandle: pointer to the BAP handle.  Returned from WLANBAP_GetNewHndl.
+    
+   
+  RETURN VALUE
+    The result code associated with performing the operation  
+
+    VOS_TRUE:  AMP connection is on 
+    VOS_FALSE: AMP connection is not on
+  
+  SIDE EFFECTS 
+  
+----------------------------------------------------------------------------*/
+v_BOOL_t WLAN_BAPSessionOn
+( 
+  ptBtampHandle btampHandle
+);
+
+#ifdef __cplusplus
+ }
+#endif 
+
+
+#endif /* #ifndef WLAN_QCT_WLANBAP_H */
+