prima: WLAN Driver Release 3.1.7.9

This is the initial release of the Prima WLAN Driver
diff --git a/CORE/BAP/src/bapApiHCBB.c b/CORE/BAP/src/bapApiHCBB.c
new file mode 100644
index 0000000..8bc54ae
--- /dev/null
+++ b/CORE/BAP/src/bapApiHCBB.c
@@ -0,0 +1,1691 @@
+/*
+ * 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.
+ */
+
+/*===========================================================================
+
+                      b a p A p i H C B B . C
+                                               
+  OVERVIEW:
+  
+  This software unit holds the implementation of the WLAN BAP modules
+  Host Controller and Baseband functions.
+  
+  The functions externalized by this module are to be called ONLY by other 
+  WLAN modules (HDD) that properly register with the BAP Layer initially.
+
+  DEPENDENCIES: 
+
+  Are listed for each API below. 
+  
+  
+  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: /prj/qct/asw/engbuilds/scl/users02/jzmuda/Android/ampBlueZ_6/CORE/BAP/src/bapApiHCBB.c,v 1.7 2011/05/06 00:59:27 jzmuda Exp jzmuda $$DateTime$$Author: jzmuda $
+
+
+  when        who     what, where, why
+----------    ---    --------------------------------------------------------
+2008-09-15    jez     Created module
+
+===========================================================================*/
+
+/*----------------------------------------------------------------------------
+ * Include Files
+ * -------------------------------------------------------------------------*/
+#include "vos_trace.h"
+
+// Pick up the sme callback registration API
+#include "sme_Api.h"
+
+/* BT-AMP PAL API header file */ 
+#include "bapApi.h" 
+#include "bapInternal.h" 
+
+//#define BAP_DEBUG
+/*----------------------------------------------------------------------------
+ * Preprocessor Definitions and Constants
+ * -------------------------------------------------------------------------*/
+
+
+/*----------------------------------------------------------------------------
+ * Type Declarations
+ * -------------------------------------------------------------------------*/
+
+/*----------------------------------------------------------------------------
+ * Global Data Definitions
+ * -------------------------------------------------------------------------*/
+
+/*----------------------------------------------------------------------------
+ * Static Variable Definitions
+ * -------------------------------------------------------------------------*/
+
+/*----------------------------------------------------------------------------
+ * Static Function Declarations and Definitions
+ * -------------------------------------------------------------------------*/
+
+/*----------------------------------------------------------------------------
+ * Externalized Function Definitions
+* -------------------------------------------------------------------------*/
+
+/*----------------------------------------------------------------------------
+ * Function Declarations and Documentation
+ * -------------------------------------------------------------------------*/
+
+
+/* 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
+)
+{
+    VOS_STATUS  vosStatus;
+    tBtampHCI_Event bapHCIEvent; /* This now encodes ALL event types */
+    ptBtampContext btampContext = (ptBtampContext) btampHandle;
+    tHalHandle     hHal = NULL;
+    /*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -*/
+
+    VOS_TRACE( VOS_MODULE_ID_BAP, VOS_TRACE_LEVEL_INFO_HIGH, "%s: btampHandle value: %x", __FUNCTION__,  btampHandle); 
+
+    /* Validate params */ 
+    if (btampHandle == NULL) 
+    {
+        VOS_TRACE( VOS_MODULE_ID_BAP, VOS_TRACE_LEVEL_ERROR,
+                     "btampHandle is NULL in %s", __FUNCTION__);
+
+      return VOS_STATUS_E_FAULT;
+    }
+
+    /* Perform a "reset" */ 
+    hHal = VOS_GET_HAL_CB(btampContext->pvosGCtx);
+    if (NULL == hHal) 
+    {
+        VOS_TRACE( VOS_MODULE_ID_BAP, VOS_TRACE_LEVEL_ERROR,
+                     "hHal is NULL in %s", __FUNCTION__);
+
+        return VOS_STATUS_E_FAULT;
+    }
+
+    //csrRoamDisconnect();
+    sme_RoamDisconnect(hHal,
+                       btampContext->sessionId,
+                       // Danlin, where are the richer reason codes?
+                       // I want to be able to convey everything 802.11 supports...
+                       eCSR_DISCONNECT_REASON_UNSPECIFIED);
+
+    /* Need to reset the timers as well*/
+    /* Connection Accept Timer interval*/
+    btampContext->bapConnectionAcceptTimerInterval = WLANBAP_CONNECTION_ACCEPT_TIMEOUT;  
+    /* Link Supervision Timer interval*/
+    btampContext->bapLinkSupervisionTimerInterval = WLANBAP_LINK_SUPERVISION_TIMEOUT;  
+    /* Logical Link Accept Timer interval*/
+    btampContext->bapLogicalLinkAcceptTimerInterval = WLANBAP_LOGICAL_LINK_ACCEPT_TIMEOUT;  
+    /* Best Effort Flush timer interval*/
+    btampContext->bapBEFlushTimerInterval = WLANBAP_BE_FLUSH_TIMEOUT;  
+
+
+    /* Form and immediately return the command complete event... */ 
+    bapHCIEvent.bapHCIEventCode = BTAMP_TLV_HCI_COMMAND_COMPLETE_EVENT;
+    bapHCIEvent.u.btampCommandCompleteEvent.present = 1;
+    bapHCIEvent.u.btampCommandCompleteEvent.num_hci_command_packets = 1;
+    bapHCIEvent.u.btampCommandCompleteEvent.command_opcode 
+        = BTAMP_TLV_HCI_RESET_CMD;
+    bapHCIEvent.u.btampCommandCompleteEvent.cc_event.Reset.status 
+        = WLANBAP_STATUS_SUCCESS;
+
+    vosStatus = (*btampContext->pBapHCIEventCB) 
+        (  
+         //btampContext->pHddHdl,   /* this refers to the BSL per connection context */
+         btampContext->pAppHdl,   /* this refers the BSL per application context */
+         &bapHCIEvent, /* This now encodes ALL event types */
+         VOS_FALSE /* Flag to indicate assoc-specific event */ 
+        );
+
+    return vosStatus;
+} /* WLAN_BAPReset */
+
+/*----------------------------------------------------------------------------
+
+  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*/
+)
+{
+
+    return VOS_STATUS_SUCCESS;
+} /* WLAN_BAPSetEventMask */
+
+/*----------------------------------------------------------------------------
+
+  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
+)
+{
+    VOS_STATUS  vosStatus;
+    tBtampHCI_Event bapHCIEvent; /* This now encodes ALL event types */
+    ptBtampContext btampContext = (ptBtampContext) btampHandle;
+    /*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -*/
+
+    VOS_TRACE( VOS_MODULE_ID_BAP, VOS_TRACE_LEVEL_INFO_HIGH, "%s: btampHandle value: %x", __FUNCTION__,  btampHandle); 
+
+    /* Validate params */ 
+    if (btampHandle == NULL) {
+      return VOS_STATUS_E_FAULT;
+    }
+
+    /* Form and immediately return the command complete event... */ 
+    bapHCIEvent.bapHCIEventCode = BTAMP_TLV_HCI_COMMAND_COMPLETE_EVENT;
+    bapHCIEvent.u.btampCommandCompleteEvent.present = 1;
+    bapHCIEvent.u.btampCommandCompleteEvent.num_hci_command_packets = 1;
+    bapHCIEvent.u.btampCommandCompleteEvent.command_opcode 
+        = BTAMP_TLV_HCI_FLUSH_CMD;
+    bapHCIEvent.u.btampCommandCompleteEvent.cc_event.Flush.status
+        = WLANBAP_STATUS_SUCCESS;
+
+    vosStatus = (*btampContext->pBapHCIEventCB) 
+        (  
+         //btampContext->pHddHdl,   /* this refers to the BSL per connection context */
+         btampContext->pAppHdl,   /* this refers the BSL per application context */
+         &bapHCIEvent, /* This now encodes ALL event types */
+         VOS_FALSE /* Flag to indicate assoc-specific event */ 
+        );
+
+    return vosStatus;
+} /* WLAN_BAPFlush */
+
+/*----------------------------------------------------------------------------
+
+  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*/
+
+)
+{
+    VOS_STATUS  vosStatus = VOS_STATUS_SUCCESS;
+    tBtampHCI_Event bapHCIEvent; /* This now encodes ALL event types */
+    ptBtampContext btampContext;
+    /*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -*/
+
+    VOS_TRACE( VOS_MODULE_ID_BAP, VOS_TRACE_LEVEL_INFO_HIGH, "%s: btampHandle value: %x", __FUNCTION__,  btampHandle); 
+
+    /* Validate params */ 
+    /* Validate params */ 
+    if ((NULL == btampHandle) || (NULL == pBapHCIEvent))
+    {
+        VOS_TRACE( VOS_MODULE_ID_BAP, VOS_TRACE_LEVEL_INFO_HIGH,
+                   "Invalid input parameters in %s", __FUNCTION__);
+        return VOS_STATUS_E_FAULT;
+    }
+
+    btampContext = (ptBtampContext) btampHandle;
+    /* Form and return the command status event... */
+    bapHCIEvent.bapHCIEventCode = BTAMP_TLV_HCI_COMMAND_STATUS_EVENT;
+    bapHCIEvent.u.btampCommandStatusEvent.present = 1;
+    bapHCIEvent.u.btampCommandStatusEvent.num_hci_command_packets = 1;
+    bapHCIEvent.u.btampCommandStatusEvent.command_opcode
+        = BTAMP_TLV_HCI_ENHANCED_FLUSH_CMD;
+    bapHCIEvent.u.btampCommandStatusEvent.status = WLANBAP_STATUS_SUCCESS;
+
+    /* Form and immediately return the command complete event... */ 
+    pBapHCIEvent->bapHCIEventCode = BTAMP_TLV_HCI_ENHANCED_FLUSH_COMPLETE_EVENT;
+    pBapHCIEvent->u.btampEnhancedFlushCompleteEvent.present = 1;
+    pBapHCIEvent->u.btampEnhancedFlushCompleteEvent.log_link_handle = 
+        pBapHCIFlush->log_link_handle;
+
+    vosStatus = (*btampContext->pBapHCIEventCB) 
+        (  
+         //btampContext->pHddHdl,   /* this refers to the BSL per connection context */
+         btampContext->pAppHdl,   /* this refers the BSL per application context */
+         &bapHCIEvent, /* This now encodes ALL event types */
+         VOS_FALSE /* Flag to indicate assoc-specific event */ 
+        );
+
+    return vosStatus;
+} /* WLAN_EnhancedBAPFlush */
+
+/*----------------------------------------------------------------------------
+
+  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 */
+)
+{
+    ptBtampContext btampContext = (ptBtampContext) btampHandle;
+    /*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -*/
+
+    VOS_TRACE( VOS_MODULE_ID_BAP, VOS_TRACE_LEVEL_INFO_HIGH,
+               "%s: btampHandle value: %x", __FUNCTION__,  btampHandle);
+
+    /* Validate params */ 
+    if ((NULL == btampHandle) || (NULL == pBapHCIEvent))
+    {
+        VOS_TRACE( VOS_MODULE_ID_BAP, VOS_TRACE_LEVEL_INFO_HIGH,
+                   "Invalid input parameters in %s", __FUNCTION__);
+        return VOS_STATUS_E_FAULT;
+    }
+
+    /* Fill in the parameters for command complete event... */ 
+    pBapHCIEvent->bapHCIEventCode = BTAMP_TLV_HCI_COMMAND_COMPLETE_EVENT;
+    pBapHCIEvent->u.btampCommandCompleteEvent.present = TRUE;
+    pBapHCIEvent->u.btampCommandCompleteEvent.num_hci_command_packets = 1;
+    pBapHCIEvent->u.btampCommandCompleteEvent.command_opcode 
+        = BTAMP_TLV_HCI_READ_CONNECTION_ACCEPT_TIMEOUT_CMD;
+    pBapHCIEvent->u.btampCommandCompleteEvent.cc_event.Read_Connection_Accept_TO.status
+        = WLANBAP_STATUS_SUCCESS;
+    pBapHCIEvent->u.btampCommandCompleteEvent.cc_event.Read_Connection_Accept_TO.connection_accept_timeout
+        = btampContext->bapConnectionAcceptTimerInterval;
+
+    return VOS_STATUS_SUCCESS;
+} /* WLAN_BAPReadConnectionAcceptTimeout */
+
+/*----------------------------------------------------------------------------
+
+  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*/
+)
+{
+    ptBtampContext btampContext = (ptBtampContext) btampHandle;
+    /*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -*/
+
+    VOS_TRACE( VOS_MODULE_ID_BAP, VOS_TRACE_LEVEL_INFO_HIGH,
+               "%s: btampHandle value: %x", __FUNCTION__,  btampHandle);
+
+    /* Validate params */ 
+    if ((NULL == btampHandle) || (NULL == pBapHCIWriteConnectionAcceptTimeout)
+        || (NULL == pBapHCIEvent))
+    {
+        VOS_TRACE( VOS_MODULE_ID_BAP, VOS_TRACE_LEVEL_INFO_HIGH,
+                   "Invalid input parameters in %s", __FUNCTION__);
+        return VOS_STATUS_E_FAULT;
+    }
+
+    /* Validate the allowed timeout interval range */
+    if ((pBapHCIWriteConnectionAcceptTimeout->connection_accept_timeout >
+         WLANBAP_CON_ACCEPT_TIMEOUT_MAX_RANGE) || 
+        (pBapHCIWriteConnectionAcceptTimeout->connection_accept_timeout <
+         WLANBAP_CON_ACCEPT_TIMEOUT_MIN_RANGE))
+    {
+        VOS_TRACE( VOS_MODULE_ID_BAP, VOS_TRACE_LEVEL_INFO_HIGH,
+                   "Out of range for connection accept timeout parameters in %s",
+                   __FUNCTION__);
+        pBapHCIEvent->u.btampCommandCompleteEvent.cc_event.Write_Connection_Accept_TO.status
+            = WLANBAP_ERROR_INVALID_HCI_CMND_PARAM;
+    }
+    else
+    {
+        /* Save the Physical link connection accept timeout value */
+        btampContext->bapConnectionAcceptTimerInterval = 
+            pBapHCIWriteConnectionAcceptTimeout->connection_accept_timeout;
+
+        /* Return status for command complete event */
+        pBapHCIEvent->u.btampCommandCompleteEvent.cc_event.Write_Connection_Accept_TO.status
+            = WLANBAP_STATUS_SUCCESS;
+    }
+
+    /* Fill in the parameters for command complete event... */ 
+    pBapHCIEvent->bapHCIEventCode = BTAMP_TLV_HCI_COMMAND_COMPLETE_EVENT;
+    pBapHCIEvent->u.btampCommandCompleteEvent.present = TRUE;
+    pBapHCIEvent->u.btampCommandCompleteEvent.num_hci_command_packets = 1;
+    pBapHCIEvent->u.btampCommandCompleteEvent.command_opcode 
+        = BTAMP_TLV_HCI_WRITE_CONNECTION_ACCEPT_TIMEOUT_CMD;
+
+    return VOS_STATUS_SUCCESS;
+} /* WLAN_BAPWriteConnectionAcceptTimeout */
+
+
+/*----------------------------------------------------------------------------
+
+  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*/
+)
+{
+    ptBtampContext btampContext = (ptBtampContext) btampHandle;
+    v_U8_t         phyLinkHandle;
+    /*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -*/
+
+    VOS_TRACE( VOS_MODULE_ID_BAP, VOS_TRACE_LEVEL_INFO_HIGH,
+               "%s: btampHandle value: %x", __FUNCTION__,  btampHandle);
+
+    /* Validate params */ 
+    if ((NULL == btampHandle) || (NULL == pBapHCIReadLinkSupervisionTimeout) ||
+        (NULL == pBapHCIEvent))
+    {
+        VOS_TRACE( VOS_MODULE_ID_BAP, VOS_TRACE_LEVEL_INFO_HIGH,
+                   "Invalid input parameters in %s", __FUNCTION__);
+        return VOS_STATUS_E_FAULT;
+    }
+
+    /* Validate the phyiscal link handle extracted from
+       logical link handle (lower byte valid) */
+    phyLinkHandle = (v_U8_t) pBapHCIReadLinkSupervisionTimeout->log_link_handle;
+
+    if (phyLinkHandle != btampContext->phy_link_handle)
+    {
+        VOS_TRACE( VOS_MODULE_ID_BAP, VOS_TRACE_LEVEL_INFO_HIGH,
+                   "Invalid Physical link handle in %s", __FUNCTION__);
+        pBapHCIEvent->u.btampCommandCompleteEvent.cc_event.Read_Link_Supervision_TO.link_supervision_timeout
+            = 0x00; /* Invalid value */
+        pBapHCIEvent->u.btampCommandCompleteEvent.cc_event.Read_Link_Supervision_TO.log_link_handle
+            = pBapHCIReadLinkSupervisionTimeout->log_link_handle;
+        pBapHCIEvent->u.btampCommandCompleteEvent.cc_event.Read_Link_Supervision_TO.status
+            = WLANBAP_ERROR_INVALID_HCI_CMND_PARAM;
+    }
+    else
+    {
+        pBapHCIEvent->u.btampCommandCompleteEvent.cc_event.Read_Link_Supervision_TO.link_supervision_timeout
+            = btampContext->bapLinkSupervisionTimerInterval;
+        pBapHCIEvent->u.btampCommandCompleteEvent.cc_event.Read_Link_Supervision_TO.log_link_handle
+            = pBapHCIReadLinkSupervisionTimeout->log_link_handle;
+        pBapHCIEvent->u.btampCommandCompleteEvent.cc_event.Read_Link_Supervision_TO.status
+            = WLANBAP_STATUS_SUCCESS;
+    }
+
+    /* Fill in the parameters for command complete event... */ 
+    pBapHCIEvent->bapHCIEventCode = BTAMP_TLV_HCI_COMMAND_COMPLETE_EVENT;
+    pBapHCIEvent->u.btampCommandCompleteEvent.present = TRUE;
+    pBapHCIEvent->u.btampCommandCompleteEvent.num_hci_command_packets = 1;
+    pBapHCIEvent->u.btampCommandCompleteEvent.command_opcode 
+        = BTAMP_TLV_HCI_READ_LINK_SUPERVISION_TIMEOUT_CMD;
+
+    return VOS_STATUS_SUCCESS;
+} /* WLAN_BAPReadLinkSupervisionTimeout */
+
+/*----------------------------------------------------------------------------
+
+  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*/
+)
+{
+    ptBtampContext btampContext = (ptBtampContext) btampHandle;
+    v_U8_t         phyLinkHandle;
+    /*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -*/
+
+    VOS_TRACE( VOS_MODULE_ID_BAP, VOS_TRACE_LEVEL_INFO_HIGH,
+               "%s: btampHandle value: %x", __FUNCTION__,  btampHandle);
+
+    /* Validate params */ 
+    if ((NULL == btampHandle) || (NULL == pBapHCIWriteLinkSupervisionTimeout) ||
+        (NULL == pBapHCIEvent))
+    {
+        VOS_TRACE( VOS_MODULE_ID_BAP, VOS_TRACE_LEVEL_INFO_HIGH,
+                   "Invalid input parameters in %s", __FUNCTION__);
+        return VOS_STATUS_E_FAULT;
+    }
+
+    /* Validate the phyiscal link handle extracted from
+       logical link handle (lower byte valid) */
+    phyLinkHandle = (v_U8_t) pBapHCIWriteLinkSupervisionTimeout->log_link_handle;
+
+    if (phyLinkHandle != btampContext->phy_link_handle)
+    {
+        VOS_TRACE( VOS_MODULE_ID_BAP, VOS_TRACE_LEVEL_INFO_HIGH,
+                   "Invalid Physical link handle in %s", __FUNCTION__);
+        pBapHCIEvent->u.btampCommandCompleteEvent.cc_event.Write_Link_Supervision_TO.log_link_handle
+            = pBapHCIWriteLinkSupervisionTimeout->log_link_handle;
+        pBapHCIEvent->u.btampCommandCompleteEvent.cc_event.Write_Link_Supervision_TO.status
+            = WLANBAP_ERROR_INVALID_HCI_CMND_PARAM;
+    }
+    else
+    {
+        /* Save the LS timeout interval */
+        btampContext->bapLinkSupervisionTimerInterval =
+            pBapHCIWriteLinkSupervisionTimeout->link_supervision_timeout;
+
+        pBapHCIEvent->u.btampCommandCompleteEvent.cc_event.Write_Link_Supervision_TO.log_link_handle
+            = pBapHCIWriteLinkSupervisionTimeout->log_link_handle;
+        pBapHCIEvent->u.btampCommandCompleteEvent.cc_event.Write_Link_Supervision_TO.status
+            = WLANBAP_STATUS_SUCCESS;
+    }
+
+    /* Fill in the parameters for command complete event... */ 
+    pBapHCIEvent->bapHCIEventCode = BTAMP_TLV_HCI_COMMAND_COMPLETE_EVENT;
+    pBapHCIEvent->u.btampCommandCompleteEvent.present = TRUE;
+    pBapHCIEvent->u.btampCommandCompleteEvent.num_hci_command_packets = 1;
+    pBapHCIEvent->u.btampCommandCompleteEvent.command_opcode 
+        = BTAMP_TLV_HCI_WRITE_LINK_SUPERVISION_TIMEOUT_CMD;
+
+    return VOS_STATUS_SUCCESS;
+} /* WLAN_BAPWriteLinkSupervisionTimeout */
+
+/* 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*/
+)
+{
+    ptBtampContext btampContext = (ptBtampContext) btampHandle;
+    /*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -*/
+
+    VOS_TRACE( VOS_MODULE_ID_BAP, VOS_TRACE_LEVEL_INFO_HIGH,
+               "%s: btampHandle value: %x", __FUNCTION__,  btampHandle);
+
+    /* Validate params */ 
+    if ((NULL == btampHandle) || (NULL == pBapHCIEvent))
+    {
+        VOS_TRACE( VOS_MODULE_ID_BAP, VOS_TRACE_LEVEL_INFO_HIGH,
+                   "Invalid input parameters in %s", __FUNCTION__);
+        return VOS_STATUS_E_FAULT;
+    }
+
+    /* Fill in the parameters for command complete event... */ 
+    pBapHCIEvent->bapHCIEventCode = BTAMP_TLV_HCI_COMMAND_COMPLETE_EVENT;
+    pBapHCIEvent->u.btampCommandCompleteEvent.present = TRUE;
+    pBapHCIEvent->u.btampCommandCompleteEvent.num_hci_command_packets = 1;
+    pBapHCIEvent->u.btampCommandCompleteEvent.command_opcode 
+        = BTAMP_TLV_HCI_READ_LOGICAL_LINK_ACCEPT_TIMEOUT_CMD;
+    pBapHCIEvent->u.btampCommandCompleteEvent.cc_event.Read_Logical_Link_Accept_TO.status
+        = WLANBAP_STATUS_SUCCESS;
+    pBapHCIEvent->u.btampCommandCompleteEvent.cc_event.Read_Logical_Link_Accept_TO.logical_link_accept_timeout
+        = btampContext->bapLogicalLinkAcceptTimerInterval;
+
+    return VOS_STATUS_SUCCESS;
+} /* WLAN_BAPReadLogicalLinkAcceptTimeout */
+
+/*----------------------------------------------------------------------------
+
+  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*/
+)
+{
+    ptBtampContext btampContext = (ptBtampContext) btampHandle;
+    /*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -*/
+
+    VOS_TRACE( VOS_MODULE_ID_BAP, VOS_TRACE_LEVEL_INFO_HIGH,
+               "%s: btampHandle value: %x", __FUNCTION__,  btampHandle);
+
+    /* Validate params */ 
+    if ((NULL == btampHandle) || (NULL == pBapHCIWriteLogicalLinkAcceptTimeout)
+        || (NULL == pBapHCIEvent))
+    {
+        VOS_TRACE( VOS_MODULE_ID_BAP, VOS_TRACE_LEVEL_INFO_HIGH,
+                   "Invalid input parameters in %s", __FUNCTION__);
+        return VOS_STATUS_E_FAULT;
+    }
+
+    /* Validate the allowed timeout interval range */
+    if ((pBapHCIWriteLogicalLinkAcceptTimeout->logical_link_accept_timeout >
+         WLANBAP_CON_ACCEPT_TIMEOUT_MAX_RANGE) || 
+        (pBapHCIWriteLogicalLinkAcceptTimeout->logical_link_accept_timeout <
+         WLANBAP_CON_ACCEPT_TIMEOUT_MIN_RANGE))
+    {
+        VOS_TRACE( VOS_MODULE_ID_BAP, VOS_TRACE_LEVEL_INFO_HIGH,
+                   "Out of range for logical connection accept timeout parameters in %s",
+                   __FUNCTION__);
+        pBapHCIEvent->u.btampCommandCompleteEvent.cc_event.Write_Logical_Link_Accept_TO.status
+            = WLANBAP_ERROR_INVALID_HCI_CMND_PARAM;
+    }
+    else
+    {
+        /* Save the Physical link connection accept timeout value */
+        btampContext->bapLogicalLinkAcceptTimerInterval = 
+            pBapHCIWriteLogicalLinkAcceptTimeout->logical_link_accept_timeout;
+
+        /* Return status for command complete event */
+        pBapHCIEvent->u.btampCommandCompleteEvent.cc_event.Write_Logical_Link_Accept_TO.status
+            = WLANBAP_STATUS_SUCCESS;
+    }
+
+    /* Fill in the parameters for command complete event... */ 
+    pBapHCIEvent->bapHCIEventCode = BTAMP_TLV_HCI_COMMAND_COMPLETE_EVENT;
+    pBapHCIEvent->u.btampCommandCompleteEvent.present = TRUE;
+    pBapHCIEvent->u.btampCommandCompleteEvent.num_hci_command_packets = 1;
+    pBapHCIEvent->u.btampCommandCompleteEvent.command_opcode 
+        = BTAMP_TLV_HCI_WRITE_LOGICAL_LINK_ACCEPT_TIMEOUT_CMD;
+
+    return VOS_STATUS_SUCCESS;
+} /* WLAN_BAPWriteLogicalLinkAcceptTimeout */
+
+/*----------------------------------------------------------------------------
+
+  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*/
+)
+{
+    ptBtampContext btampContext = (ptBtampContext) btampHandle;
+    /*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -*/
+
+    VOS_TRACE( VOS_MODULE_ID_BAP, VOS_TRACE_LEVEL_INFO_HIGH,
+               "%s: btampHandle value: %x", __FUNCTION__,  btampHandle);
+
+    /* Validate params */ 
+    if ((NULL == btampHandle) || (NULL == pBapHCISetEventMaskPage2)
+        || (NULL == pBapHCIEvent))
+    {
+        VOS_TRACE( VOS_MODULE_ID_BAP, VOS_TRACE_LEVEL_INFO_HIGH,
+                   "Invalid input parameters in %s", __FUNCTION__);
+        return VOS_STATUS_E_FAULT;
+    }
+
+
+    /* Save away the event mask */
+    vos_mem_copy(  
+            btampContext->event_mask_page_2, 
+            pBapHCISetEventMaskPage2->event_mask_page_2, 
+            8 );
+
+    /* Return status for command complete event */
+    pBapHCIEvent->u.btampCommandCompleteEvent.cc_event.Set_Event_Mask_Page_2.status
+        = WLANBAP_STATUS_SUCCESS;
+
+    /* Fill in the parameters for command complete event... */ 
+    pBapHCIEvent->bapHCIEventCode = BTAMP_TLV_HCI_COMMAND_COMPLETE_EVENT;
+    pBapHCIEvent->u.btampCommandCompleteEvent.present = TRUE;
+    pBapHCIEvent->u.btampCommandCompleteEvent.num_hci_command_packets = 1;
+    pBapHCIEvent->u.btampCommandCompleteEvent.command_opcode 
+        = BTAMP_TLV_HCI_SET_EVENT_MASK_PAGE_2_CMD;
+
+    return VOS_STATUS_SUCCESS;
+} /* WLAN_BAPSetEventMaskPage2 */
+
+/*----------------------------------------------------------------------------
+
+  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*/
+)
+{
+    ptBtampContext btampContext;
+    /*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -*/
+
+    VOS_TRACE( VOS_MODULE_ID_BAP, VOS_TRACE_LEVEL_INFO_HIGH,
+               "%s: btampHandle value: %x", __FUNCTION__,  btampHandle);
+
+    /* Validate params */ 
+    if ((NULL == btampHandle) || (NULL == pBapHCIEvent))
+    {
+        VOS_TRACE( VOS_MODULE_ID_BAP, VOS_TRACE_LEVEL_INFO_HIGH,
+                   "Invalid input parameters in %s", __FUNCTION__);
+        return VOS_STATUS_E_FAULT;
+    }
+
+    btampContext = (ptBtampContext) btampHandle;
+
+    pBapHCIEvent->u.btampCommandCompleteEvent.cc_event.Read_Location_Data.loc_domain_aware
+        = btampContext->btamp_Location_Data_Info.loc_domain_aware;
+
+    pBapHCIEvent->u.btampCommandCompleteEvent.cc_event.Read_Location_Data.loc_options
+        = btampContext->btamp_Location_Data_Info.loc_options;
+
+    vos_mem_copy(  
+            pBapHCIEvent->u.btampCommandCompleteEvent.cc_event.Read_Location_Data.loc_domain,
+            btampContext->btamp_Location_Data_Info.loc_domain, 
+            3 );
+
+    /* Return status for command complete event */
+    pBapHCIEvent->u.btampCommandCompleteEvent.cc_event.Read_Location_Data.status
+        = WLANBAP_STATUS_SUCCESS;
+
+    /* Fill in the parameters for command complete event... */ 
+    pBapHCIEvent->bapHCIEventCode = BTAMP_TLV_HCI_COMMAND_COMPLETE_EVENT;
+    pBapHCIEvent->u.btampCommandCompleteEvent.present = TRUE;
+    pBapHCIEvent->u.btampCommandCompleteEvent.num_hci_command_packets = 1;
+    pBapHCIEvent->u.btampCommandCompleteEvent.command_opcode 
+        = BTAMP_TLV_HCI_READ_LOCATION_DATA_CMD;
+
+    return VOS_STATUS_SUCCESS;
+} /* WLAN_BAPReadLocationData */
+
+/*----------------------------------------------------------------------------
+
+  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*/
+)
+{
+    ptBtampContext btampContext;
+    /*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -*/
+
+    VOS_TRACE( VOS_MODULE_ID_BAP, VOS_TRACE_LEVEL_INFO_HIGH,
+               "%s: btampHandle value: %x", __FUNCTION__,  btampHandle);
+
+    /* Validate params */ 
+    if ((NULL == btampHandle) || (NULL == pBapHCIWriteLocationData)
+        || (NULL == pBapHCIEvent))
+    {
+        VOS_TRACE( VOS_MODULE_ID_BAP, VOS_TRACE_LEVEL_INFO_HIGH,
+                   "Invalid input parameters in %s", __FUNCTION__);
+        return VOS_STATUS_E_FAULT;
+    }
+
+    btampContext = (ptBtampContext) btampHandle;
+
+    btampContext->btamp_Location_Data_Info.loc_domain_aware = 
+        pBapHCIWriteLocationData->loc_domain_aware;
+    
+    btampContext->btamp_Location_Data_Info.loc_options = 
+        pBapHCIWriteLocationData->loc_options;
+
+    vos_mem_copy(  
+            btampContext->btamp_Location_Data_Info.loc_domain, 
+            pBapHCIWriteLocationData->loc_domain, 
+            3 );
+
+    /* Return status for command complete event */
+    pBapHCIEvent->u.btampCommandCompleteEvent.cc_event.Write_Location_Data.status
+        = WLANBAP_STATUS_SUCCESS;
+
+    /* Fill in the parameters for command complete event... */ 
+    pBapHCIEvent->bapHCIEventCode = BTAMP_TLV_HCI_COMMAND_COMPLETE_EVENT;
+    pBapHCIEvent->u.btampCommandCompleteEvent.present = TRUE;
+    pBapHCIEvent->u.btampCommandCompleteEvent.num_hci_command_packets = 1;
+    pBapHCIEvent->u.btampCommandCompleteEvent.command_opcode 
+        = BTAMP_TLV_HCI_WRITE_LOCATION_DATA_CMD;
+
+    return VOS_STATUS_SUCCESS;
+} /* WLAN_BAPWriteLocationData */
+
+
+/*----------------------------------------------------------------------------
+
+  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*/
+)
+{
+    /*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -*/
+
+    VOS_TRACE( VOS_MODULE_ID_BAP, VOS_TRACE_LEVEL_INFO_HIGH,
+               "%s: btampHandle value: %x", __FUNCTION__,  btampHandle);
+
+    /* Validate params */ 
+    if ((NULL == btampHandle) || (NULL == pBapHCIEvent))
+    {
+        VOS_TRACE( VOS_MODULE_ID_BAP, VOS_TRACE_LEVEL_INFO_HIGH,
+                   "Invalid input parameters in %s", __FUNCTION__);
+        return VOS_STATUS_E_FAULT;
+    }
+
+    /* Fill in the parameters for command complete event... */ 
+    pBapHCIEvent->bapHCIEventCode = BTAMP_TLV_HCI_COMMAND_COMPLETE_EVENT;
+    pBapHCIEvent->u.btampCommandCompleteEvent.present = TRUE;
+    pBapHCIEvent->u.btampCommandCompleteEvent.num_hci_command_packets = 1;
+    pBapHCIEvent->u.btampCommandCompleteEvent.command_opcode 
+        = BTAMP_TLV_HCI_READ_FLOW_CONTROL_MODE_CMD;
+    pBapHCIEvent->u.btampCommandCompleteEvent.cc_event.Read_Flow_Control_Mode.status
+        = WLANBAP_STATUS_SUCCESS;
+    pBapHCIEvent->u.btampCommandCompleteEvent.cc_event.Read_Flow_Control_Mode.flow_control_mode
+        = WLANBAP_FLOW_CONTROL_MODE_BLOCK_BASED;
+
+    return VOS_STATUS_SUCCESS;
+} /* WLAN_BAPReadFlowControlMode */
+
+/*----------------------------------------------------------------------------
+
+  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*/
+)
+{
+
+    return VOS_STATUS_SUCCESS;
+} /* WLAN_BAPWriteFlowControlMode */
+
+/*----------------------------------------------------------------------------
+
+  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*/
+)
+{
+
+    return VOS_STATUS_SUCCESS;
+} /* WLAN_BAPReadBestEffortFlushTimeout */
+
+/*----------------------------------------------------------------------------
+
+  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*/
+)
+{
+
+    return VOS_STATUS_SUCCESS;
+} /* WLAN_BAPWriteBestEffortFlushTimeout */
+
+
+/*----------------------------------------------------------------------------
+
+  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*/
+)
+{
+    ptBtampContext btampContext = (ptBtampContext) btampHandle;
+    BTAMPFSM_INSTANCEDATA_T *instanceVar = &(btampContext->bapPhysLinkMachine);
+    /*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -*/
+
+    VOS_TRACE( VOS_MODULE_ID_BAP, VOS_TRACE_LEVEL_INFO_HIGH,
+               "%s: btampHandle value: %x", __FUNCTION__,  btampHandle);
+
+    /* Validate params */
+    if ((NULL == btampHandle) || (NULL == pBapHCIEvent))
+    {
+        VOS_TRACE( VOS_MODULE_ID_BAP, VOS_TRACE_LEVEL_INFO_HIGH,
+                   "Invalid input parameters in %s", __FUNCTION__);
+        return VOS_STATUS_E_FAULT;
+    }
+
+    /* Validate the BAP state to accept the Short Range Mode set request;
+       SRM set requests are allowed only in CONNECTED state */
+
+    /* Form and return the command status event... */
+    pBapHCIEvent->bapHCIEventCode = BTAMP_TLV_HCI_COMMAND_STATUS_EVENT;
+    pBapHCIEvent->u.btampCommandStatusEvent.present = 1;
+    pBapHCIEvent->u.btampCommandStatusEvent.num_hci_command_packets = 1;
+    pBapHCIEvent->u.btampCommandStatusEvent.command_opcode
+        = BTAMP_TLV_HCI_SET_SHORT_RANGE_MODE_CMD;
+
+    if (CONNECTED != instanceVar->stateVar)
+    {
+        /* Short Range Mode request in invalid state */
+        pBapHCIEvent->u.btampCommandStatusEvent.status =
+            WLANBAP_ERROR_CMND_DISALLOWED;
+        return VOS_STATUS_SUCCESS;
+    }
+    else if (pBapHCIShortRangeMode->phy_link_handle != btampContext->phy_link_handle)
+    {
+       /* Invalid Physical link handle */
+        pBapHCIEvent->u.btampCommandStatusEvent.status =
+            WLANBAP_ERROR_NO_CNCT;
+        return VOS_STATUS_SUCCESS;
+    }
+    else if (pBapHCIShortRangeMode->short_range_mode > 0x01)
+    {
+        /* Invalid mode requested */
+        pBapHCIEvent->u.btampCommandStatusEvent.status =
+            WLANBAP_ERROR_INVALID_HCI_CMND_PARAM;
+        return VOS_STATUS_SUCCESS;
+    }
+
+    pBapHCIEvent->u.btampCommandStatusEvent.status = WLANBAP_STATUS_SUCCESS;
+
+    /* Send the Command Status event (success) here, since Change Complete is next */
+    (*btampContext->pBapHCIEventCB)
+        (
+         btampContext->pHddHdl,   /* this refers to the BSL per connection context */
+         pBapHCIEvent, /* This now encodes ALL event types */
+         VOS_FALSE /* Flag to indicate assoc-specific event */
+        );
+
+    /* Format the Short Range Mode Complete event to return... */ 
+    pBapHCIEvent->bapHCIEventCode = BTAMP_TLV_HCI_SHORT_RANGE_MODE_CHANGE_COMPLETE_EVENT;
+    pBapHCIEvent->u.btampShortRangeModeChangeCompleteEvent.present = 1;
+
+    pBapHCIEvent->u.btampShortRangeModeChangeCompleteEvent.status =
+        WLANBAP_STATUS_SUCCESS; /* Assumption for now */
+
+    /* The input parameters will go out in the CC Event */
+    pBapHCIEvent->u.btampShortRangeModeChangeCompleteEvent.phy_link_handle =
+        pBapHCIShortRangeMode->phy_link_handle;
+
+    pBapHCIEvent->u.btampShortRangeModeChangeCompleteEvent.short_range_mode =
+        pBapHCIShortRangeMode->short_range_mode; /* Assumption for now */
+
+    /* If the requested setting is different from the current setting... */
+    if (pBapHCIShortRangeMode->short_range_mode != btampContext->phy_link_srm)
+    {
+        /* ... then change the SRM according to the requested value.
+         * If the attempt fails, the assumptions above need to be corrected.
+         */
+        #if 0
+        // Suggested API, needs to be created
+        if (VOS_STATUS_SUCCESS != HALSetShortRangeMode(pBapHCIShortRangeMode->short_range_mode))
+        #else
+        if (0)
+        #endif
+        {
+            pBapHCIEvent->u.btampShortRangeModeChangeCompleteEvent.status =
+                WLANBAP_ERROR_HARDWARE_FAILURE;
+            pBapHCIEvent->u.btampShortRangeModeChangeCompleteEvent.short_range_mode =
+                btampContext->phy_link_srm; /* Switch back to current value */
+        }
+        else
+        {
+            /* Update the SRM setting for this physical link, since it worked */
+            btampContext->phy_link_srm = pBapHCIShortRangeMode->short_range_mode;
+        }
+    }
+
+    return VOS_STATUS_SUCCESS;
+} /* WLAN_BAPSetShortRangeMode */
+
+/*----------------------------------------------------------------------------
+
+  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.
+
+    The command is received when:
+    - The A2MP Create Phy Link Response has been rx'd by the Bluetooth stack (initiator)
+
+  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*/
+)
+{
+    ptBtampContext btampContext = (ptBtampContext) btampHandle;
+    BTAMPFSM_INSTANCEDATA_T *instanceVar = &(btampContext->bapPhysLinkMachine);
+    /*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -*/
+
+    VOS_TRACE( VOS_MODULE_ID_BAP, VOS_TRACE_LEVEL_INFO_HIGH,
+               "%s: btampHandle value: %x", __FUNCTION__,  btampHandle);
+
+    /* Validate params */
+    if ((NULL == btampHandle) || (NULL == pBapHCIEvent))
+    {
+        VOS_TRACE( VOS_MODULE_ID_BAP, VOS_TRACE_LEVEL_INFO_HIGH,
+                   "Invalid input parameters in %s", __FUNCTION__);
+        return VOS_STATUS_E_FAULT;
+    }
+
+    /* Validate the BAP state to accept the Vendor Specific Cmd 0:
+       this is only allowed for the BT_INITIATOR in the CONNECTING state */
+
+    /* Form and return the command status event... */
+    pBapHCIEvent->bapHCIEventCode = BTAMP_TLV_HCI_COMMAND_STATUS_EVENT;
+    pBapHCIEvent->u.btampCommandStatusEvent.present = 1;
+    pBapHCIEvent->u.btampCommandStatusEvent.num_hci_command_packets = 1;
+    pBapHCIEvent->u.btampCommandStatusEvent.command_opcode
+        = BTAMP_TLV_HCI_VENDOR_SPECIFIC_CMD_0;
+
+    if ( (BT_INITIATOR != btampContext->BAPDeviceRole) ||
+         (CONNECTING != instanceVar->stateVar) )
+    {
+        /* Vendor Specific Command 0 happened in invalid state */
+        pBapHCIEvent->u.btampCommandStatusEvent.status =
+            WLANBAP_ERROR_CMND_DISALLOWED;
+        return VOS_STATUS_SUCCESS;
+    }
+
+    /* Signal BT Coexistence code in firmware to prefer WLAN */
+    WLANBAP_NeedBTCoexPriority(btampContext, 1);
+
+    pBapHCIEvent->u.btampCommandStatusEvent.status = WLANBAP_STATUS_SUCCESS;
+
+    /* Send the Command Status event (success) here, since Command Complete is next */
+    (*btampContext->pBapHCIEventCB)
+        (
+         btampContext->pHddHdl,   /* this refers to the BSL per connection context */
+         pBapHCIEvent, /* This now encodes ALL event types */
+         VOS_FALSE /* Flag to indicate assoc-specific event */
+        );
+
+    /* Format the Vendor Specific Command 0 Complete event to return... */
+    pBapHCIEvent->bapHCIEventCode = BTAMP_TLV_HCI_COMMAND_COMPLETE_EVENT;
+    pBapHCIEvent->u.btampCommandCompleteEvent.present = 1;
+    pBapHCIEvent->u.btampCommandCompleteEvent.num_hci_command_packets = 1;
+    pBapHCIEvent->u.btampCommandCompleteEvent.command_opcode
+        = BTAMP_TLV_HCI_VENDOR_SPECIFIC_CMD_0;
+    pBapHCIEvent->u.btampCommandCompleteEvent.cc_event.Vendor_Specific_Cmd_0.status
+        = WLANBAP_STATUS_SUCCESS;
+
+    return VOS_STATUS_SUCCESS;
+} /* WLAN_BAPVendorSpecificCmd0 */
+
+/*----------------------------------------------------------------------------
+
+  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.
+
+    The command is received when:
+    - HCI wants to enable testability
+
+  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*/
+)
+{
+    ptBtampContext btampContext = (ptBtampContext) btampHandle;
+    /*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -*/
+
+    VOS_TRACE( VOS_MODULE_ID_BAP, VOS_TRACE_LEVEL_INFO_HIGH,
+               "%s: btampHandle value: %x", __FUNCTION__,  btampHandle);
+
+    /* Validate params */
+    if ((NULL == btampHandle) || (NULL == pBapHCIEvent))
+    {
+        VOS_TRACE( VOS_MODULE_ID_BAP, VOS_TRACE_LEVEL_INFO_HIGH,
+                   "Invalid input parameters in %s", __FUNCTION__);
+        return VOS_STATUS_E_FAULT;
+    }
+
+
+    btampContext->btamp_async_logical_link_create = TRUE;
+
+
+    /* Format the Vendor Specific Command 1 Complete event to return... */
+    pBapHCIEvent->bapHCIEventCode = BTAMP_TLV_HCI_COMMAND_COMPLETE_EVENT;
+    pBapHCIEvent->u.btampCommandCompleteEvent.present = 1;
+    pBapHCIEvent->u.btampCommandCompleteEvent.num_hci_command_packets = 1;
+    pBapHCIEvent->u.btampCommandCompleteEvent.command_opcode
+        = BTAMP_TLV_HCI_VENDOR_SPECIFIC_CMD_1;
+    pBapHCIEvent->u.btampCommandCompleteEvent.cc_event.Vendor_Specific_Cmd_1.status
+        = WLANBAP_STATUS_SUCCESS;
+
+    return VOS_STATUS_SUCCESS;
+} /* WLAN_BAPVendorSpecificCmd1 */
+
+/*----------------------------------------------------------------------------
+
+  DESCRIPTION   
+    Callback registered with TL for BAP, this is required in order for
+    TL to inform BAP, that the flush operation requested has been completed. 
+    
+    The registered reception callback is being triggered by TL whenever a 
+    frame SIR_TL_HAL_FLUSH_AC_RSP is received by TL from HAL.
+
+  PARAMETERS 
+
+    IN
+    pvosGCtx:       pointer to the global vos context; a handle to TL's 
+                    or SME's control block can be extracted from its context 
+    ucStaId:        station identifier for the requested value
+    ucTid:          identifier of the tspec 
+    status:         status of the Flush operation
+  
+  RETURN VALUE 
+    The result code associated with performing the operation
+
+----------------------------------------------------------------------------*/
+VOS_STATUS WLANBAP_TLFlushCompCallback
+( 
+  v_PVOID_t     pvosGCtx,
+  v_U8_t        ucStaId, 
+  v_U8_t        ucTID, 
+  v_U8_t        status
+)
+{
+
+    return VOS_STATUS_SUCCESS;
+} // WLANBAP_TLFlushCompCallback
+
+
+/* End of v3.0 Host Controller and Baseband Commands */
+
+
+ 
+
+