15738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************
25738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *
35738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *  Copyright (C) 1998-2012 Broadcom Corporation
45738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *
55738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *  Licensed under the Apache License, Version 2.0 (the "License");
65738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *  you may not use this file except in compliance with the License.
75738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *  You may obtain a copy of the License at:
85738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *
95738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *  http://www.apache.org/licenses/LICENSE-2.0
105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *
115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *  Unless required by applicable law or agreed to in writing, software
125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *  distributed under the License is distributed on an "AS IS" BASIS,
135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *  See the License for the specific language governing permissions and
155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *  limitations under the License.
165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *
175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project ******************************************************************************/
185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************
205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *
215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *  This is the private file for the message access equipment (MSE)
225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *  subsystem.
235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *
245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project ******************************************************************************/
255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#ifndef BTA_HL_INT_H
265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_HL_INT_H
275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#include "bt_target.h"
295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#include "bta_sys.h"
305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#include "bta_hl_api.h"
315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#include "bta_hl_co.h"
325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#include "l2cdefs.h"
335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef UINT16 (tBTA_HL_ALLOCATE_PSM) (void);
365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*****************************************************************************
385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**  Constants and data types
395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*****************************************************************************/
405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#ifndef BTA_HL_DISC_SIZE
425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_HL_DISC_SIZE                1600
435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#endif
445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_HL_NUM_SRCH_ATTR            10
455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_HL_MIN_SDP_MDEP_LEN         7
465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* L2CAP defualt parameters */
485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_HL_L2C_TX_WIN_SIZE          10
495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_HL_L2C_MAX_TRANSMIT         32
505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_HL_L2C_RTRANS_TOUT          2000
515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_HL_L2C_MON_TOUT             12000
525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_HL_L2C_MPS                  1017
535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* L2CAP FCS setting*/
555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_HL_MCA_USE_FCS              MCA_FCS_USE
565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_HL_MCA_NO_FCS               MCA_FCS_BYPASS
575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_HL_L2C_USE_FCS              1
585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_HL_L2C_NO_FCS               0
595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_HL_DEFAULT_SOURCE_FCS       BTA_HL_L2C_USE_FCS
602b8347556b8fc4135d4db1fa9f33517d39d8ca5aJacob Lee#define BTA_HL_MCA_FCS_USE_MASK         MCA_FCS_USE_MASK
615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* SDP Operations */
635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_HL_SDP_OP_NONE                  0
645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_HL_SDP_OP_CCH_INIT              1
655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_HL_SDP_OP_DCH_OPEN_INIT         2
665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_HL_SDP_OP_DCH_RECONNECT_INIT    3
675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_HL_SDP_OP_SDP_QUERY_NEW         4
685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_HL_SDP_OP_SDP_QUERY_CURRENT     5
695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef UINT8 tBTA_HL_SDP_OPER;
715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* CCH Operations */
735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define     BTA_HL_CCH_OP_NONE            0
745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define     BTA_HL_CCH_OP_LOCAL_OPEN      1
755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define     BTA_HL_CCH_OP_REMOTE_OPEN     2
765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define     BTA_HL_CCH_OP_LOCAL_CLOSE     3
775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define     BTA_HL_CCH_OP_REMOTE_CLOSE    4
785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef UINT8 tBTA_HL_CCH_OPER;
805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Pending DCH close operations when closing a CCH */
825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define    BTA_HL_CCH_CLOSE_OP_DCH_NONE     0
835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define    BTA_HL_CCH_CLOSE_OP_DCH_ABORT    1
845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define    BTA_HL_CCH_CLOSE_OP_DCH_CLOSE    2
855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef UINT8 tBTA_HL_CCH_CLOSE_DCH_OPER;
865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* DCH Operations */
885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define    BTA_HL_DCH_OP_NONE                    0
895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define    BTA_HL_DCH_OP_REMOTE_CREATE           1
905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define    BTA_HL_DCH_OP_LOCAL_OPEN              2
915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define    BTA_HL_DCH_OP_REMOTE_OPEN             3
925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define    BTA_HL_DCH_OP_LOCAL_CLOSE             4
935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define    BTA_HL_DCH_OP_REMOTE_CLOSE            5
945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define    BTA_HL_DCH_OP_LOCAL_DELETE            6
955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define    BTA_HL_DCH_OP_REMOTE_DELETE           7
965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define    BTA_HL_DCH_OP_LOCAL_RECONNECT         8
975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define    BTA_HL_DCH_OP_REMOTE_RECONNECT        9
985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define    BTA_HL_DCH_OP_LOCAL_CLOSE_ECHO_TEST   10
995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define    BTA_HL_DCH_OP_LOCAL_CLOSE_RECONNECT   11
1005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef UINT8 tBTA_HL_DCH_OPER;
1025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Echo test Operations */
1045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define    BTA_HL_ECHO_OP_NONE                 0
1055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define    BTA_HL_ECHO_OP_CI_GET_ECHO_DATA     1
1065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define    BTA_HL_ECHO_OP_SDP_INIT             2
1075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define    BTA_HL_ECHO_OP_MDL_CREATE_CFM       3
1085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define    BTA_HL_ECHO_OP_DCH_OPEN_CFM         4
1095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define    BTA_HL_ECHO_OP_LOOP_BACK            5
1105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define    BTA_HL_ECHO_OP_CI_PUT_ECHO_DATA     6
1115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define    BTA_HL_ECHO_OP_DCH_CLOSE_CFM        7
1125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define    BTA_HL_ECHO_OP_OPEN_IND             8
1135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define    BTA_HL_ECHO_OP_ECHO_PKT             9
1145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef UINT8 tBTA_HL_ECHO_OPER;
1165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* abort status mask for abort_oper */
1185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_HL_ABORT_NONE_MASK      0x00
1205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_HL_ABORT_PENDING_MASK   0x01
1215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_HL_ABORT_LOCAL_MASK     0x10
1225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_HL_ABORT_REMOTE_MASK    0x20
1235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_HL_ABORT_CCH_CLOSE_MASK 0x40
1245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* call out mask for cout_oper */
1265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_HL_CO_NONE_MASK          0x00
1275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_HL_CO_GET_TX_DATA_MASK   0x01
1285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_HL_CO_PUT_RX_DATA_MASK   0x02
1295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_HL_CO_GET_ECHO_DATA_MASK 0x04
1305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_HL_CO_PUT_ECHO_DATA_MASK 0x08
1315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct
1335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
1345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT16      mtu;
1355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8       fcs;                    /* '0' No FCS, otherwise '1' */
1365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_HL_L2CAP_CFG_INFO;
1375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* State Machine Events */
1405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectenum
1415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
1425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    /* these events are handled by the state machine */
1435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BTA_HL_CCH_OPEN_EVT     = BTA_SYS_EVT_START(BTA_ID_HL),
1445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BTA_HL_CCH_SDP_OK_EVT,
1455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BTA_HL_CCH_SDP_FAIL_EVT,
1465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BTA_HL_MCA_CONNECT_IND_EVT,
1475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BTA_HL_MCA_DISCONNECT_IND_EVT,
1485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BTA_HL_CCH_CLOSE_EVT,
1495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BTA_HL_CCH_CLOSE_CMPL_EVT,
1505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BTA_HL_MCA_RSP_TOUT_IND_EVT,
1515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    /* DCH EVENT */
1525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BTA_HL_DCH_SDP_INIT_EVT,
1535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BTA_HL_DCH_OPEN_EVT,
1545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BTA_HL_MCA_CREATE_IND_EVT,
1555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BTA_HL_MCA_CREATE_CFM_EVT,
1565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BTA_HL_MCA_OPEN_IND_EVT,
1575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BTA_HL_MCA_OPEN_CFM_EVT,
1595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BTA_HL_DCH_CLOSE_EVT,
1605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BTA_HL_MCA_CLOSE_IND_EVT,
1615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BTA_HL_MCA_CLOSE_CFM_EVT,
1625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BTA_HL_API_SEND_DATA_EVT,
1635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BTA_HL_MCA_RCV_DATA_EVT,
1655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BTA_HL_DCH_CLOSE_CMPL_EVT,
1665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BTA_HL_DCH_RECONNECT_EVT,
1675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BTA_HL_DCH_SDP_FAIL_EVT,
1685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BTA_HL_MCA_RECONNECT_IND_EVT,
1695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BTA_HL_MCA_RECONNECT_CFM_EVT,
1715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BTA_HL_DCH_CLOSE_ECHO_TEST_EVT,
1725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BTA_HL_API_DCH_CREATE_RSP_EVT,
1735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BTA_HL_DCH_ABORT_EVT,
1745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BTA_HL_MCA_ABORT_IND_EVT,
1755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BTA_HL_MCA_ABORT_CFM_EVT,
1775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BTA_HL_MCA_CONG_CHG_EVT,
1785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BTA_HL_CI_GET_TX_DATA_EVT,
1795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BTA_HL_CI_PUT_RX_DATA_EVT,
1805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BTA_HL_CI_GET_ECHO_DATA_EVT,
1815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BTA_HL_DCH_ECHO_TEST_EVT,
1825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BTA_HL_CI_PUT_ECHO_DATA_EVT,
1835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    /* these events are handled outside the state machine */
1855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BTA_HL_API_ENABLE_EVT,
1865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BTA_HL_API_DISABLE_EVT,
187f8f30c2cecf221b2c3983b72d5a849d799c39dd7Priti Aghera    BTA_HL_API_UPDATE_EVT,
1885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BTA_HL_API_REGISTER_EVT,
1895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BTA_HL_API_DEREGISTER_EVT,
1905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BTA_HL_API_CCH_OPEN_EVT,
1915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BTA_HL_API_CCH_CLOSE_EVT,
1925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BTA_HL_API_DCH_OPEN_EVT,
1935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BTA_HL_API_DCH_RECONNECT_EVT,
1945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BTA_HL_API_DCH_CLOSE_EVT,
1955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BTA_HL_API_DELETE_MDL_EVT,
1965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BTA_HL_API_DCH_ABORT_EVT,
1975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BTA_HL_API_DCH_ECHO_TEST_EVT,
1995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BTA_HL_API_SDP_QUERY_EVT,
2005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BTA_HL_SDP_QUERY_OK_EVT,
2015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BTA_HL_SDP_QUERY_FAIL_EVT,
2025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BTA_HL_MCA_DELETE_IND_EVT,
2035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BTA_HL_MCA_DELETE_CFM_EVT
2045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project};
2055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef UINT16 tBTA_HL_INT_EVT;
2065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_HL_DCH_EVT_MIN BTA_HL_DCH_SDP_INIT_EVT
2085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_HL_DCH_EVT_MAX 0xFFFF
2095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* state machine states */
2125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectenum
2135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
2145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BTA_HL_CCH_IDLE_ST = 0,      /* Idle  */
2155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BTA_HL_CCH_OPENING_ST,       /* Opening a connection*/
2165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BTA_HL_CCH_OPEN_ST,          /* Connection is open */
2175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BTA_HL_CCH_CLOSING_ST        /* Closing is in progress */
2185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project};
2195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef UINT8 tBTA_HL_CCH_STATE;
2205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectenum
2225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
2235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BTA_HL_DCH_IDLE_ST = 0,      /* Idle  */
2245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BTA_HL_DCH_OPENING_ST,       /* Opening a connection*/
2255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BTA_HL_DCH_OPEN_ST,          /* Connection is open */
2265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BTA_HL_DCH_CLOSING_ST        /* Closing is in progress */
2275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project};
2285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef UINT8 tBTA_HL_DCH_STATE;
2295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct
2325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
2335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BT_HDR              hdr;
2345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTA_HL_CTRL_CBACK  *p_cback;        /* pointer to control callback function */
2355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_HL_API_ENABLE;
2365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct
2385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
2395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BT_HDR              hdr;
2405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8               app_id;
241f8f30c2cecf221b2c3983b72d5a849d799c39dd7Priti Aghera    BOOLEAN             is_register;        /* Update HL application due to register or deregister */
242f8f30c2cecf221b2c3983b72d5a849d799c39dd7Priti Aghera    tBTA_HL_CBACK       *p_cback;           /* pointer to application callback function */
243f8f30c2cecf221b2c3983b72d5a849d799c39dd7Priti Aghera    tBTA_HL_DEVICE_TYPE dev_type;           /* sink, source or dual roles */
244f8f30c2cecf221b2c3983b72d5a849d799c39dd7Priti Aghera    tBTA_SEC            sec_mask;           /* security mask for accepting conenction*/
245f8f30c2cecf221b2c3983b72d5a849d799c39dd7Priti Aghera    char                srv_name[BTA_SERVICE_NAME_LEN +1];        /* service name to be used in the SDP; null terminated*/
246f8f30c2cecf221b2c3983b72d5a849d799c39dd7Priti Aghera    char                srv_desp[BTA_SERVICE_DESP_LEN +1];        /* service description to be used in the SDP; null terminated */
247f8f30c2cecf221b2c3983b72d5a849d799c39dd7Priti Aghera    char                provider_name[BTA_PROVIDER_NAME_LEN +1];   /* provide name to be used in the SDP; null terminated */
248f8f30c2cecf221b2c3983b72d5a849d799c39dd7Priti Aghera
249f8f30c2cecf221b2c3983b72d5a849d799c39dd7Priti Aghera} tBTA_HL_API_UPDATE;
250f8f30c2cecf221b2c3983b72d5a849d799c39dd7Priti Aghera
251f8f30c2cecf221b2c3983b72d5a849d799c39dd7Priti Agheratypedef struct
252f8f30c2cecf221b2c3983b72d5a849d799c39dd7Priti Aghera{
253f8f30c2cecf221b2c3983b72d5a849d799c39dd7Priti Aghera    BT_HDR              hdr;
254f8f30c2cecf221b2c3983b72d5a849d799c39dd7Priti Aghera    UINT8               app_id;
2555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTA_HL_CBACK       *p_cback;        /* pointer to application callback function */
2565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTA_HL_DEVICE_TYPE dev_type;           /* sink, source or dual roles */
2575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTA_SEC            sec_mask;           /* security mask for accepting conenction*/
2585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    char                srv_name[BTA_SERVICE_NAME_LEN +1];        /* service name to be used in the SDP; null terminated*/
2595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    char                srv_desp[BTA_SERVICE_DESP_LEN +1];        /* service description to be used in the SDP; null terminated */
2605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    char                provider_name[BTA_PROVIDER_NAME_LEN +1];   /* provide name to be used in the SDP; null terminated */
2615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_HL_API_REGISTER;
2625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct
2645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
2655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BT_HDR                  hdr;
266f8f30c2cecf221b2c3983b72d5a849d799c39dd7Priti Aghera    UINT8                   app_id;
267f8f30c2cecf221b2c3983b72d5a849d799c39dd7Priti Aghera    tBTA_HL_CBACK           *p_cback;        /* pointer to application callback function */
2685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTA_HL_APP_HANDLE      app_handle;
2695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_HL_API_DEREGISTER;
2705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct
2725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
2735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BT_HDR                  hdr;
274f8f30c2cecf221b2c3983b72d5a849d799c39dd7Priti Aghera    UINT8                   app_id;
2755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTA_HL_APP_HANDLE      app_handle;
2765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT16                  ctrl_psm;
2775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BD_ADDR                 bd_addr;        /* Address of peer device */
2785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTA_SEC                sec_mask;       /* security mask for initiating connection*/
2795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_HL_API_CCH_OPEN;
2805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct
2835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
2845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BT_HDR                  hdr;
2855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTA_HL_MCL_HANDLE      mcl_handle;
2865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_HL_API_CCH_CLOSE;
2875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct
2915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
2925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BT_HDR                  hdr;
2935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTA_HL_MCL_HANDLE      mcl_handle;
2945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT16                  ctrl_psm;
2955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTA_HL_MDEP_ID         local_mdep_id;     /* local MDEP ID */
2965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTA_HL_MDEP_ID         peer_mdep_id;      /* peer mdep id */
2975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTA_HL_DCH_CFG         local_cfg;
2985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTA_SEC                sec_mask;          /* security mask for initiating connection*/
2995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_HL_API_DCH_OPEN;
3005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
3015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
3025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct
3035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
3045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BT_HDR                  hdr;
3055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
3065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTA_HL_MCL_HANDLE      mcl_handle;
3075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT16                  ctrl_psm;
3085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTA_HL_MDL_ID          mdl_id;
3095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_HL_API_DCH_RECONNECT;
3105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
3115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct
3125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
3135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BT_HDR                  hdr;
3145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTA_HL_MDL_HANDLE      mdl_handle;
3155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_HL_API_DCH_CLOSE;
3165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
3175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct
3185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
3195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BT_HDR                  hdr;
3205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTA_HL_MCL_HANDLE      mcl_handle;
3215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTA_HL_MDL_ID          mdl_id;
3225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_HL_API_DELETE_MDL;
3235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
3245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct
3255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
3265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BT_HDR              hdr;
3275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTA_HL_MCL_HANDLE mcl_handle;
3285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_HL_API_DCH_ABORT;
3295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
3305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
3315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct
3325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
3335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BT_HDR              hdr;
3345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTA_HL_MDL_HANDLE  mdl_handle;
3355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT16              pkt_size;
3365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_HL_API_SEND_DATA;
3375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
3385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct
3395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
3405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BT_HDR              hdr;
3415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTA_HL_MCL_HANDLE  mcl_handle;
3425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT16              ctrl_psm;
3435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT16              pkt_size;
3445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTA_HL_DCH_CFG     local_cfg;
3455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_HL_API_DCH_ECHO_TEST;
3465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
3475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct
3485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
3495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BT_HDR                  hdr;
3505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8                   app_idx;
3515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8                   mcl_idx;
3525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BOOLEAN                 release_mcl_cb;
3535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project}tBTA_HL_CCH_SDP;
3545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
3555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
3565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* MCA callback event parameters. */
3575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct
3585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
3595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BT_HDR              hdr;
3605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTA_HL_APP_HANDLE  app_handle;
3615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTA_HL_MCL_HANDLE  mcl_handle;
3625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tMCA_CTRL       mca_data;
3635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_HL_MCA_EVT;
3645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
3655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
3665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* MCA callback event parameters. */
3675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct
3685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
3695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BT_HDR          hdr;
3705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8           app_idx;
3715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8           mcl_idx;
3725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8           mdl_idx;
3735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BT_HDR          *p_pkt;
3745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_HL_MCA_RCV_DATA_EVT;
3755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
3765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
3775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct
3785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
3795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BT_HDR                  hdr;
3805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8                   app_idx;
3815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8                   mcl_idx;
3825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8                   mdl_idx;
3835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project}tBTA_HL_DCH_SDP;
3845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
3855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct
3865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
3875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BT_HDR                  hdr;
3885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTA_HL_APP_HANDLE      app_handle;
389f8f30c2cecf221b2c3983b72d5a849d799c39dd7Priti Aghera    UINT8                   app_id;
3905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BD_ADDR                 bd_addr;        /* Address of peer device */
3915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_HL_API_SDP_QUERY;
3925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
3935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct
3945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
3955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BT_HDR                  hdr;
3965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTA_HL_MCL_HANDLE      mcl_handle;
3975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTA_HL_MDL_ID          mdl_id;
3985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTA_HL_MDEP_ID         local_mdep_id;
3995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTA_HL_DCH_CREATE_RSP  rsp_code;
4005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTA_HL_DCH_CFG         cfg_rsp;
4015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_HL_API_DCH_CREATE_RSP;
4025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
4035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct
4045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
4055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BT_HDR                  hdr;
4065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTA_HL_MDL_HANDLE      mdl_handle;
4075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTA_HL_STATUS          status;
4085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_HL_CI_GET_PUT_DATA;
4095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
4105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct
4115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
4125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BT_HDR                  hdr;
4135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTA_HL_MCL_HANDLE      mcl_handle;
4145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTA_HL_STATUS          status;
4155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_HL_CI_ECHO_DATA;
4165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
4175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* union of all state machine event data types */
4185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef union
4195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
4205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BT_HDR                      hdr;
4215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTA_HL_API_ENABLE          api_enable; /* data for BTA_MSE_API_ENABLE_EVT */
422f8f30c2cecf221b2c3983b72d5a849d799c39dd7Priti Aghera    tBTA_HL_API_UPDATE          api_update;
4235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTA_HL_API_REGISTER        api_reg;
4245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTA_HL_API_DEREGISTER      api_dereg;
4255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTA_HL_API_CCH_OPEN        api_cch_open;
4265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTA_HL_API_CCH_CLOSE       api_cch_close;
4275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTA_HL_API_DCH_CREATE_RSP  api_dch_create_rsp;
4285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTA_HL_API_DCH_OPEN        api_dch_open;
4295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTA_HL_API_DCH_RECONNECT   api_dch_reconnect;
4305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTA_HL_API_DCH_CLOSE       api_dch_close;
4315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTA_HL_API_DELETE_MDL      api_delete_mdl;
4325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTA_HL_API_DCH_ABORT       api_dch_abort;
4335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTA_HL_API_SEND_DATA       api_send_data;
4345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTA_HL_API_DCH_ECHO_TEST   api_dch_echo_test;
4355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTA_HL_API_SDP_QUERY       api_sdp_query;
4365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
4375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTA_HL_CCH_SDP             cch_sdp;
4385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTA_HL_MCA_EVT             mca_evt;
4395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTA_HL_MCA_RCV_DATA_EVT    mca_rcv_data_evt;
4405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTA_HL_DCH_SDP             dch_sdp; /* for DCH_OPEN_EVT and DCH_RECONNECT_EVT */
4415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTA_HL_CI_GET_PUT_DATA     ci_get_put_data;
4425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTA_HL_CI_ECHO_DATA        ci_get_put_echo_data;
4435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_HL_DATA;
4445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
4455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
4465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct
4475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
4485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BOOLEAN                 in_use;
4495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT16                  mdl_id;
4505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTA_HL_MDL_HANDLE      mdl_handle;
4515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTA_HL_DCH_OPER        dch_oper;
4525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BOOLEAN                 intentional_close;
4535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTA_HL_DCH_STATE       dch_state;
4545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8                   abort_oper;
4555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT16                  req_data_psm;
4565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT16                  max_rx_apdu_size;
4575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT16                  max_tx_apdu_size;
4585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BT_HDR                  *p_tx_pkt;
4595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BT_HDR                  *p_rx_pkt;
4605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTA_HL_MDEP_ID         local_mdep_id;
4615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8                   local_mdep_cfg_idx;
4625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTA_HL_DCH_CFG         local_cfg;
4635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTA_HL_DCH_CFG         remote_cfg;
4645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTA_HL_MDEP_ID         peer_mdep_id;
4655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT16  peer_data_type;
4665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTA_HL_MDEP_ROLE       peer_mdep_role;
4675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTA_HL_DCH_MODE        dch_mode;
4685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTA_SEC                sec_mask;
4695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BOOLEAN                 is_the_first_reliable;
4705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BOOLEAN                 delete_mdl;
4715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT16                  mtu;
4725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tMCA_CHNL_CFG           chnl_cfg;
4735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BOOLEAN                 mdl_cfg_idx_included;
4745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8                   mdl_cfg_idx;
4755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8                   echo_oper;
4765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BOOLEAN                 cong;
4775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BOOLEAN                 close_pending;
4785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8                   cout_oper;
4795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BT_HDR                  *p_echo_tx_pkt;
4805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BT_HDR                  *p_echo_rx_pkt;
4815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTA_HL_STATUS          ci_put_echo_data_status;
4825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project}tBTA_HL_MDL_CB;
4835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
4845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct
4855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
4865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTA_HL_MDL_CB          mdl[BTA_HL_NUM_MDLS_PER_MCL];
4875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTA_HL_DELETE_MDL      delete_mdl;
4885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BOOLEAN                 in_use;
4895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTA_HL_CCH_STATE       cch_state;
4905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT16                  req_ctrl_psm;
4915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT16                  ctrl_psm;
4925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT16                  data_psm;
4935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BD_ADDR                 bd_addr;
4945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT16                  cch_mtu;
4955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT16                  sec_mask;
4965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTA_HL_MCL_HANDLE      mcl_handle;
4975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tSDP_DISCOVERY_DB       *p_db;         /* pointer to discovery database */
4985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tSDP_DISC_CMPL_CB       *sdp_cback;
4995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTA_HL_SDP_OPER        sdp_oper;
5005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BOOLEAN                 close_pending;
5015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8                   sdp_mdl_idx;
5025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTA_HL_SDP             sdp;
5035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8                   cch_oper;
504ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta    UINT8                   force_close_local_cch_opening;
5055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BOOLEAN                 intentional_close;
5065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BOOLEAN                 rsp_tout;
5075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8                   timer_oper;
5085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BOOLEAN                 echo_test;
5095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8                   echo_mdl_idx;
5105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8                   cch_close_dch_oper;
511f8f30c2cecf221b2c3983b72d5a849d799c39dd7Priti Aghera    UINT8                   app_id;
5125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project}tBTA_HL_MCL_CB;
5135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
5145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct
5155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
5165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTA_HL_MCL_CB       mcb[BTA_HL_NUM_MCLS]; /* application Control Blocks */
5175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTA_HL_CBACK        *p_cback;            /* pointer to control callback function */
5185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BOOLEAN              in_use;              /* this CB is in use*/
5195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BOOLEAN              deregistering;
5205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8                app_id;
5215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT32               sdp_handle;    /* SDP record handle */
5225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTA_HL_SUP_FEATURE  sup_feature;
5235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTA_HL_MDL_CFG      mdl_cfg[BTA_HL_NUM_MDL_CFGS];
5245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTA_HL_DEVICE_TYPE  dev_type;
5255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTA_HL_APP_HANDLE   app_handle;
5265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT16               ctrl_psm;   /* L2CAP PSM for the MCAP control channel */
5275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT16               data_psm;   /* L2CAP PSM for the MCAP data channel */
5285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT16               sec_mask;   /* Security mask for BTM_SetSecurityLevel() */
5295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
5305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    char                 srv_name[BTA_SERVICE_NAME_LEN +1];        /* service name to be used in the SDP; null terminated*/
5315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    char                 srv_desp[BTA_SERVICE_DESP_LEN +1];        /* service description to be used in the SDP; null terminated */
5325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    char                 provider_name[BTA_PROVIDER_NAME_LEN +1];   /* provide name to be used in the SDP; null terminated */
5335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
5345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tMCA_CTRL_CBACK      *p_mcap_cback;            /* pointer to MCAP callback function */
5355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tMCA_DATA_CBACK      *p_data_cback;
5365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project}tBTA_HL_APP_CB;
5375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
5385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
5395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct
5405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
5415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BOOLEAN             in_use;
5425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTA_HL_SDP_OPER    sdp_oper;
5435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8               app_idx;
5445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8               mcl_idx;
5455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8               mdl_idx;
5465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project}tBTA_HL_SDP_CB;
5475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
5485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct
5495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
5505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BOOLEAN         in_use;
5515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8           app_idx;
5525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8           mcl_idx;
5535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project}tBTA_HL_TIMER_CB;
5545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
5555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct
5565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
5575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTA_HL_APP_CB        acb[BTA_HL_NUM_APPS];      /* HL Control Blocks */
5585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTA_HL_CTRL_CBACK    *p_ctrl_cback;            /* pointer to control callback function */
5595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BOOLEAN               enable;
5605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BOOLEAN               disabling;
5615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
5625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTA_HL_SDP_CB        scb[BTA_HL_NUM_SDP_CBACKS];
5635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTA_HL_TIMER_CB      tcb[BTA_HL_NUM_TIMERS];
5645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BOOLEAN               enable_random_psm;
5655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTA_HL_ALLOCATE_PSM  *p_alloc_psm;
5665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project}tBTA_HL_CB;
5675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
5685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************
5695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**  Configuration Definitions
5705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
5715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Configuration structure */
5725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
5735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*****************************************************************************
5745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**  Global data
5755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*****************************************************************************/
5765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
5775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* HL control block */
5785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#if BTA_DYNAMIC_MEMORY == FALSE
5795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectextern tBTA_HL_CB  bta_hl_cb;
5805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#else
5815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectextern tBTA_HL_CB *bta_hl_cb_ptr;
5825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    #define bta_hl_cb (*bta_hl_cb_ptr)
5835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#endif
5845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
5855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_HL_GET_CB_PTR() &(bta_hl_cb)
5865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_HL_GET_APP_CB_PTR(app_idx) &(bta_hl_cb.acb[(app_idx)])
5875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_HL_GET_MCL_CB_PTR(app_idx, mcl_idx) &(bta_hl_cb.acb[(app_idx)].mcb[(mcl_idx)])
5885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_HL_GET_MDL_CB_PTR(app_idx, mcl_idx, mdl_idx) &(bta_hl_cb.acb[(app_idx)].mcb[(mcl_idx)].mdl[mdl_idx])
5895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_HL_GET_MDL_CFG_PTR(app_idx, item_idx) &(bta_hl_cb.acb[(app_idx)].mdl_cfg[(item_idx)])
5905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_HL_GET_ECHO_CFG_PTR(app_idx)  &(bta_hl_cb.acb[(app_idx)].sup_feature.echo_cfg)
5915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_HL_GET_MDEP_CFG_PTR(app_idx, mdep_cfg_idx)  &(bta_hl_cb.acb[(app_idx)].sup_feature.mdep[mdep_cfg_idx].mdep_cfg)
5925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_HL_GET_DATA_CFG_PTR(app_idx, mdep_cfg_idx, data_cfg_idx)  \
5935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project           &(bta_hl_cb.acb[(app_idx)].sup_feature.mdep[mdep_cfg_idx].mdep_cfg.data_cfg[data_cfg_idx])
5945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_HL_GET_BUF_PTR(p_pkt) ((UINT8 *)((UINT8 *) (p_pkt+1) + p_pkt->offset))
5955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
5965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*****************************************************************************
5975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**  Function prototypes
5985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*****************************************************************************/
5995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
6005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#ifdef __cplusplus
6015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectextern "C"
6025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
6035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#endif
6045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    /* main */
6055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    extern BOOLEAN bta_hl_hdl_event(BT_HDR *p_msg);
6065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    /* sdp */
6075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    extern BOOLEAN bta_hl_fill_sup_feature_list( const tSDP_DISC_ATTR  *p_attr,
6085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                                 tBTA_HL_SUP_FEATURE_LIST_ELEM *p_list);
609f8f30c2cecf221b2c3983b72d5a849d799c39dd7Priti Aghera    extern tBTA_HL_STATUS bta_hl_sdp_update (UINT8 app_id);
6105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    extern tBTA_HL_STATUS bta_hl_sdp_register (UINT8 app_idx);
6115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    extern tSDP_DISC_REC *bta_hl_find_sink_or_src_srv_class_in_db (const tSDP_DISCOVERY_DB *p_db,
6125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                                                   const tSDP_DISC_REC *p_start_rec);
6135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
6145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    /* action routines */
6155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    extern void bta_hl_dch_ci_get_tx_data(UINT8 app_idx, UINT8 mcl_idx, UINT8 mdl_idx,
6165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                          tBTA_HL_DATA *p_data);
6175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    extern void bta_hl_dch_ci_put_rx_data(UINT8 app_idx, UINT8 mcl_idx, UINT8 mdl_idx,
6185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                          tBTA_HL_DATA *p_data);
6195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    extern void bta_hl_dch_ci_get_echo_data(UINT8 app_idx, UINT8 mcl_idx, UINT8 mdl_idx,
6205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                            tBTA_HL_DATA *p_data);
6215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
6225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    extern void bta_hl_dch_echo_test(UINT8 app_idx, UINT8 mcl_idx, UINT8 mdl_idx,
6235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                     tBTA_HL_DATA *p_data);
6245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    extern void bta_hl_dch_ci_put_echo_data(UINT8 app_idx, UINT8 mcl_idx, UINT8 mdl_idx,
6255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                            tBTA_HL_DATA *p_data);
6265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    extern void bta_hl_dch_send_data(UINT8 app_idx, UINT8 mcl_idx, UINT8 mdl_idx,
6275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                     tBTA_HL_DATA *p_data);
6285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    extern void bta_hl_dch_sdp_fail(UINT8 app_idx, UINT8 mcl_idx, UINT8 mdl_idx,
6295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                    tBTA_HL_DATA *p_data);
6305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    extern void bta_hl_dch_mca_cong_change(UINT8 app_idx, UINT8 mcl_idx, UINT8 mdl_idx,
6315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                           tBTA_HL_DATA *p_data);
6325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    extern void bta_hl_dch_mca_reconnect_ind(UINT8 app_idx, UINT8 mcl_idx, UINT8 mdl_idx,
6335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                             tBTA_HL_DATA *p_data);
6345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    extern void bta_hl_dch_mca_reconnect_cfm(UINT8 app_idx, UINT8 mcl_idx, UINT8 mdl_idx,
6355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                             tBTA_HL_DATA *p_data);
6365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    extern void bta_hl_dch_mca_reconnect(UINT8 app_idx, UINT8 mcl_idx, UINT8 mdl_idx,
6375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                         tBTA_HL_DATA *p_data);
6385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    extern void bta_hl_dch_sdp_init(UINT8 app_idx, UINT8 mcl_idx, UINT8 mdl_idx,
6395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                    tBTA_HL_DATA *p_data);
6405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    extern void bta_hl_dch_close_echo_test(UINT8 app_idx, UINT8 mcl_idx, UINT8 mdl_idx,
6415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                           tBTA_HL_DATA *p_data);
6425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    extern void bta_hl_dch_create_rsp(UINT8 app_idx, UINT8 mcl_idx, UINT8 mdl_idx,
6435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                      tBTA_HL_DATA *p_data);
6445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    extern void bta_hl_dch_mca_rcv_data(UINT8 app_idx, UINT8 mcl_idx, UINT8 mdl_idx,
6455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                        tBTA_HL_DATA *p_data);
6465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    extern void bta_hl_dch_close_cmpl(UINT8 app_idx, UINT8 mcl_idx, UINT8 mdl_idx,
6475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                      tBTA_HL_DATA *p_data);
6485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    extern void bta_hl_dch_mca_close_cfm(UINT8 app_idx, UINT8 mcl_idx, UINT8 mdl_idx,
6495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                         tBTA_HL_DATA *p_data);
6505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    extern void bta_hl_dch_mca_close_ind(UINT8 app_idx, UINT8 mcl_idx, UINT8 mdl_idx,
6515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                         tBTA_HL_DATA *p_data);
6525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    extern void bta_hl_dch_mca_close(UINT8 app_idx, UINT8 mcl_idx, UINT8 mdl_idx,
6535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                     tBTA_HL_DATA *p_data);
6545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    extern void bta_hl_dch_mca_delete_ind(UINT8 app_idx, UINT8 mcl_idx, UINT8 mdl_idx,
6555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                          tBTA_HL_DATA *p_data);
6565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
6575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    extern void bta_hl_dch_mca_delete_cfm(UINT8 app_idx, UINT8 mcl_idx, UINT8 mdl_idx,
6585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                          tBTA_HL_DATA *p_data);
6595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    extern void bta_hl_dch_mca_delete(UINT8 app_idx, UINT8 mcl_idx, UINT8 mdl_idx,
6605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                      tBTA_HL_DATA *p_data);
6615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    extern void bta_hl_dch_mca_abort_ind(UINT8 app_idx, UINT8 mcl_idx, UINT8 mdl_idx,
6625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                         tBTA_HL_DATA *p_data);
6635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    extern void bta_hl_dch_mca_abort_cfm(UINT8 app_idx, UINT8 mcl_idx, UINT8 mdl_idx,
6645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                         tBTA_HL_DATA *p_data);
6655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    extern void bta_hl_dch_mca_abort(UINT8 app_idx, UINT8 mcl_idx, UINT8 mdl_idx,
6665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                     tBTA_HL_DATA *p_data);
6675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    extern void bta_hl_dch_mca_open_ind(UINT8 app_idx, UINT8 mcl_idx, UINT8 mdl_idx,
6685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                        tBTA_HL_DATA *p_data);
6695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    extern void bta_hl_dch_mca_open_cfm(UINT8 app_idx, UINT8 mcl_idx, UINT8 mdl_idx,
6705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                        tBTA_HL_DATA *p_data);
6715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    extern void bta_hl_dch_mca_create_ind(UINT8 app_idx, UINT8 mcl_idx, UINT8 mdl_idx,
6725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                          tBTA_HL_DATA *p_data);
6735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    extern void bta_hl_dch_mca_create_cfm(UINT8 app_idx, UINT8 mcl_idx, UINT8 mdl_idx,
6745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                          tBTA_HL_DATA *p_data);
6755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    extern void bta_hl_dch_mca_create(UINT8 app_idx, UINT8 mcl_idx, UINT8 mdl_idx,
6765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                      tBTA_HL_DATA *p_data);
6775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    extern void bta_hl_deallocate_spd_cback(UINT8 sdp_cback_idx);
6785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    extern tSDP_DISC_CMPL_CB *bta_hl_allocate_spd_cback(tBTA_HL_SDP_OPER sdp_oper, UINT8 app_idx, UINT8 mcl_idx,
6795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                                        UINT8 mdl_idx,
6805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                                        UINT8 *p_sdp_cback_idx);
6815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    extern tBTA_HL_STATUS bta_hl_init_sdp(tBTA_HL_SDP_OPER sdp_oper, UINT8 app_idx, UINT8 mcl_idx,
6825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                          UINT8 mdl_idx);
6835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    extern void bta_hl_cch_sdp_init(UINT8 app_idx, UINT8 mcl_idx,  tBTA_HL_DATA *p_data);
6845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    extern void bta_hl_cch_mca_open(UINT8 app_idx, UINT8 mcl_idx,  tBTA_HL_DATA *p_data);
6855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    extern void bta_hl_cch_mca_close(UINT8 app_idx, UINT8 mcl_idx,  tBTA_HL_DATA *p_data);
6865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    extern void bta_hl_cch_close_cmpl(UINT8 app_idx, UINT8 mcl_idx,  tBTA_HL_DATA *p_data);
6875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    extern void bta_hl_cch_mca_disconnect(UINT8 app_idx, UINT8 mcl_idx,  tBTA_HL_DATA *p_data);
688ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta    extern void bta_hl_cch_mca_disc_open(UINT8 app_idx, UINT8 mcl_idx,  tBTA_HL_DATA *p_data);
6895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    extern void bta_hl_cch_mca_rsp_tout(UINT8 app_idx, UINT8 mcl_idx,  tBTA_HL_DATA *p_data);
6905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    extern void bta_hl_cch_mca_connect(UINT8 app_idx, UINT8 mcl_idx,  tBTA_HL_DATA *p_data);
6915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
6925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    /* State machine drivers  */
6935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    extern void bta_hl_cch_sm_execute(UINT8 inst_idx, UINT8 mcl_idx,
6945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                      UINT16 event, tBTA_HL_DATA *p_data);
6955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    extern void bta_hl_dch_sm_execute(UINT8 inst_idx, UINT8 mcl_idx, UINT8 mdl_idx,
6965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                      UINT16 event, tBTA_HL_DATA *p_data);
6975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    /* MCAP callback functions  */
6985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    extern void bta_hl_mcap_ctrl_cback(tMCA_HANDLE handle, tMCA_CL mcl, UINT8 event,
6995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                       tMCA_CTRL *p_data);
7005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
7015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    extern void bta_hl_mcap_data_cback(tMCA_DL mdl, BT_HDR *p_pkt);
7025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
7035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    /* utility functions  */
7045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    extern BOOLEAN bta_hl_set_ctrl_psm_for_dch(UINT8 app_idx, UINT8 mcl_idx,
7055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                               UINT8 mdl_idx, UINT16 ctrl_psm);
7065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    extern BOOLEAN bta_hl_find_sdp_idx_using_ctrl_psm(tBTA_HL_SDP *p_sdp,
7075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                                      UINT16 ctrl_psm,
7085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                                      UINT8 *p_sdp_idx);
7092990f79de941189cfcce32e8bd7dc9e75bc118a5Pavlin Radoslavov    extern UINT16 bta_hl_set_user_tx_buf_size(UINT16 max_tx_size);
7102990f79de941189cfcce32e8bd7dc9e75bc118a5Pavlin Radoslavov    extern UINT16 bta_hl_set_user_rx_buf_size(UINT16 mtu);
7115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    extern UINT8 bta_hl_set_tx_win_size(UINT16 mtu, UINT16 mps);
7125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    extern UINT16 bta_hl_set_mps(UINT16 mtu);
7135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    extern void bta_hl_clean_mdl_cb(UINT8 app_idx, UINT8 mcl_idx, UINT8 mdl_idx);
7142b8347556b8fc4135d4db1fa9f33517d39d8ca5aJacob Lee    extern BT_HDR * bta_hl_get_buf(UINT16 data_size, BOOLEAN fcs_use);
7155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    extern BOOLEAN bta_hl_find_service_in_db( UINT8 app_idx, UINT8 mcl_idx,
7165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                              UINT16 service_uuid,
7175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                              tSDP_DISC_REC **pp_rec );
7185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    extern UINT16 bta_hl_get_service_uuids(UINT8 sdp_oper, UINT8 app_idx, UINT8 mcl_idx,
7195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                           UINT8 mdl_idx );
7205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    extern BOOLEAN bta_hl_find_echo_cfg_rsp(UINT8 app_idx, UINT8 mcl_idx, UINT8 mdep_idx, UINT8 cfg,
7215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                            UINT8 *p_cfg_rsp);
7225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    extern BOOLEAN bta_hl_validate_cfg(UINT8 app_idx, UINT8 mcl_idx, UINT8 mdl_idx,
7235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                       UINT8 cfg);
7245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    extern BOOLEAN bta_hl_find_cch_cb_indexes(tBTA_HL_DATA *p_msg,
7255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                              UINT8 *p_app_idx,
7265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                              UINT8  *p_mcl_idx);
7275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    extern BOOLEAN bta_hl_find_dch_cb_indexes(tBTA_HL_DATA *p_msg,
7285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                              UINT8 *p_app_idx,
7295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                              UINT8 *p_mcl_idx,
7305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                              UINT8 *p_mdl_idx);
7315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    extern UINT16  bta_hl_allocate_mdl_id(UINT8 app_idx, UINT8 mcl_idx, UINT8 mdl_idx );
7325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    extern BOOLEAN bta_hl_find_mdl_idx_using_handle(tBTA_HL_MDL_HANDLE mdl_handle,
7335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                                    UINT8 *p_app_idx, UINT8 *p_mcl_idx,
7345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                                    UINT8 *p_mdl_idx);
7355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    extern BOOLEAN bta_hl_find_mdl_idx(UINT8 app_idx, UINT8 mcl_idx, UINT16 mdl_id,
7365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                       UINT8 *p_mdl_idx);
7375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    extern BOOLEAN bta_hl_find_an_active_mdl_idx(UINT8 app_idx, UINT8 mcl_idx,
7385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                                 UINT8 *p_mdl_idx);
7395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    extern BOOLEAN bta_hl_find_dch_setup_mdl_idx(UINT8 app_idx, UINT8 mcl_idx,
7405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                                 UINT8 *p_mdl_idx);
7415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    extern BOOLEAN bta_hl_find_an_in_use_mcl_idx(UINT8 app_idx,
7425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                                 UINT8 *p_mcl_idx);
7435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    extern BOOLEAN bta_hl_find_an_in_use_app_idx(UINT8 *p_app_idx);
7445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    extern BOOLEAN bta_hl_find_app_idx(UINT8 app_id, UINT8 *p_app_idx);
7455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    extern BOOLEAN bta_hl_find_app_idx_using_handle(tBTA_HL_APP_HANDLE app_handle,
7465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                                    UINT8 *p_app_idx);
7475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    extern BOOLEAN bta_hl_find_mcl_idx_using_handle( tBTA_HL_MCL_HANDLE mcl_handle,
7485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                                     UINT8 *p_app_idx, UINT8 *p_mcl_idx);
7495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    extern BOOLEAN bta_hl_find_mcl_idx(UINT8 app_idx, BD_ADDR p_bd_addr, UINT8 *p_mcl_idx);
7505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    extern BOOLEAN bta_hl_is_the_first_reliable_existed(UINT8 app_idx, UINT8 mcl_idx );
7515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    extern BOOLEAN  bta_hl_find_non_active_mdl_cfg(UINT8 app_idx, UINT8 start_mdl_cfg_idx,
7525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                                   UINT8 *p_mdl_cfg_idx);
7535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    extern BOOLEAN  bta_hl_find_avail_mdl_cfg_idx(UINT8 app_idx, UINT8 mcl_idx,
7545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                                  UINT8 *p_mdl_cfg_idx);
7555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    extern BOOLEAN  bta_hl_find_mdl_cfg_idx(UINT8 app_idx, UINT8 mcl_idx,
7565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                            tBTA_HL_MDL_ID mdl_id, UINT8 *p_mdl_cfg_idx);
7575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    extern BOOLEAN  bta_hl_get_cur_time(UINT8 app_idx, UINT8 *p_cur_time);
7585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    extern void bta_hl_sort_cfg_time_idx(UINT8 app_idx, UINT8 *a, UINT8 n);
759f8f30c2cecf221b2c3983b72d5a849d799c39dd7Priti Aghera    extern void  bta_hl_compact_mdl_cfg_time(UINT8 app_idx, UINT8 mdep_id);
7605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    extern BOOLEAN  bta_hl_is_mdl_exsit_in_mcl(UINT8 app_idx, BD_ADDR bd_addr,
7615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                               tBTA_HL_MDL_ID mdl_id);
7625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    extern BOOLEAN  bta_hl_delete_mdl_cfg(UINT8 app_idx, BD_ADDR bd_addr,
7635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                          tBTA_HL_MDL_ID mdl_id);
7645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    extern BOOLEAN  bta_hl_is_mdl_value_valid(tBTA_HL_MDL_ID mdl_id);
7655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    extern BOOLEAN bta_hl_find_mdep_cfg_idx(UINT8 app_idx,
7665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                            tBTA_HL_MDEP_ID local_mdep_id, UINT8 *p_mdep_cfg_idx);
7675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    extern void bta_hl_find_rxtx_apdu_size(UINT8 app_idx, UINT8 mdep_cfg_idx,
7685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                           UINT16 *p_rx_apu_size,
7695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                           UINT16 *p_tx_apu_size);
7705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    extern BOOLEAN bta_hl_validate_peer_cfg(UINT8 app_idx, UINT8 mcl_idx, UINT8 mdl_idx,
7715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                            tBTA_HL_MDEP_ID peer_mdep_id,
7725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                            tBTA_HL_MDEP_ROLE peer_mdep_role,
7735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                            UINT8 sdp_idx);
7745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    extern tBTA_HL_STATUS bta_hl_chk_local_cfg(UINT8 app_idx, UINT8 mcl_idx,
7755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                               UINT8 mdep_cfg_idx,
7765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                               tBTA_HL_DCH_CFG local_cfg);
7775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
7785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    extern BOOLEAN bta_hl_validate_reconnect_params(UINT8 app_idx, UINT8 mcl_idx,
7795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                                    tBTA_HL_API_DCH_RECONNECT *p_reconnect,
7805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                                    UINT8 *p_mdep_cfg_idx, UINT8 *p_mdl_cfg_idx);
7815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    extern BOOLEAN bta_hl_find_avail_mcl_idx(UINT8 app_idx, UINT8 *p_mcl_idx);
7825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    extern BOOLEAN bta_hl_find_avail_mdl_idx(UINT8 app_idx, UINT8 mcl_idx,
7835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                             UINT8 *p_mdl_idx);
7845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    extern BOOLEAN bta_hl_is_a_duplicate_id(UINT8 app_id);
7855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    extern BOOLEAN bta_hl_find_avail_app_idx(UINT8 *p_idx);
786f8f30c2cecf221b2c3983b72d5a849d799c39dd7Priti Aghera    extern tBTA_HL_STATUS bta_hl_app_update(UINT8 app_id, BOOLEAN is_register);
7875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    extern tBTA_HL_STATUS bta_hl_app_registration(UINT8 app_idx);
7885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    extern void bta_hl_discard_data(UINT16 event, tBTA_HL_DATA *p_data);
7895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    extern void bta_hl_save_mdl_cfg(UINT8 app_idx, UINT8 mcl_idx, UINT8 mdl_idx );
7905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    extern void bta_hl_set_dch_chan_cfg(UINT8 app_idx, UINT8 mcl_idx, UINT8 mdl_idx, tBTA_HL_DATA *p_data);
7915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    extern BOOLEAN bta_hl_get_l2cap_cfg(tBTA_HL_MDL_HANDLE mdl_hnd, tBTA_HL_L2CAP_CFG_INFO *p_cfg);
7925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    extern BOOLEAN bta_hl_validate_chan_cfg(UINT8 app_idx, UINT8 mcl_idx, UINT8 mdl_idx);
7935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    extern BOOLEAN bta_hl_is_cong_on(UINT8 app_id, BD_ADDR bd_addr, tBTA_HL_MDL_ID mdl_id);
7945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    extern void bta_hl_check_cch_close(UINT8 app_idx, UINT8 mcl_idx,
7955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                       tBTA_HL_DATA *p_data, BOOLEAN check_dch_setup);
7965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    extern void bta_hl_clean_app(UINT8 app_idx);
7975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    extern void bta_hl_check_deregistration(UINT8 app_idx, tBTA_HL_DATA *p_data );
7985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    extern void bta_hl_check_disable(tBTA_HL_DATA *p_data );
7995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    extern void  bta_hl_build_abort_ind(tBTA_HL *p_evt_data,
8005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                        tBTA_HL_APP_HANDLE app_handle,
8015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                        tBTA_HL_MCL_HANDLE mcl_handle);
8025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    extern void  bta_hl_build_abort_cfm(tBTA_HL *p_evt_data,
8035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                        tBTA_HL_APP_HANDLE app_handle,
8045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                        tBTA_HL_MCL_HANDLE mcl_handle,
8055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                        tBTA_HL_STATUS status);
8065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    extern void  bta_hl_build_dch_close_cfm(tBTA_HL *p_evt_data,
8075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                            tBTA_HL_APP_HANDLE app_handle,
8085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                            tBTA_HL_MCL_HANDLE mcl_handle,
8095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                            tBTA_HL_MDL_HANDLE mdl_handle,
8105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                            tBTA_HL_STATUS status);
8115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    extern void  bta_hl_build_dch_close_ind(tBTA_HL *p_evt_data,
8125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                            tBTA_HL_APP_HANDLE app_handle,
8135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                            tBTA_HL_MCL_HANDLE mcl_handle,
8145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                            tBTA_HL_MDL_HANDLE mdl_handle,
8155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                            BOOLEAN intentional);
8165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    extern void  bta_hl_build_send_data_cfm(tBTA_HL *p_evt_data,
8175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                            tBTA_HL_APP_HANDLE app_handle,
8185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                            tBTA_HL_MCL_HANDLE mcl_handle,
8195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                            tBTA_HL_MDL_HANDLE mdl_handle,
8205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                            tBTA_HL_STATUS status );
8215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    extern void  bta_hl_build_rcv_data_ind(tBTA_HL *p_evt_data,
8225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                           tBTA_HL_APP_HANDLE app_handle,
8235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                           tBTA_HL_MCL_HANDLE mcl_handle,
8245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                           tBTA_HL_MDL_HANDLE mdl_handle);
8255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    extern void  bta_hl_build_cch_open_cfm(tBTA_HL *p_evt_data,
826f8f30c2cecf221b2c3983b72d5a849d799c39dd7Priti Aghera                                            UINT8 app_id,
8275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                           tBTA_HL_APP_HANDLE app_handle,
8285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                           tBTA_HL_MCL_HANDLE mcl_handle,
8295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                           BD_ADDR bd_addr,
8305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                           tBTA_HL_STATUS status );
8315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    extern void  bta_hl_build_cch_open_ind(tBTA_HL *p_evt_data,
8325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                           tBTA_HL_APP_HANDLE app_handle,
8335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                           tBTA_HL_MCL_HANDLE mcl_handle,
8345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                           BD_ADDR bd_addr);
8355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    extern void  bta_hl_build_cch_close_cfm(tBTA_HL *p_evt_data,
8365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                            tBTA_HL_APP_HANDLE app_handle,
8375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                            tBTA_HL_MCL_HANDLE mcl_handle,
8385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                            tBTA_HL_STATUS status );
8395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    extern void   bta_hl_build_cch_close_ind(tBTA_HL *p_evt_data,
8405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                             tBTA_HL_APP_HANDLE app_handle,
8415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                             tBTA_HL_MCL_HANDLE mcl_handle,
8425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                             BOOLEAN intentional);
8435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
8445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    extern void  bta_hl_build_dch_open_cfm(tBTA_HL *p_evt_data,
8455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                           tBTA_HL_APP_HANDLE app_handle,
8465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                           tBTA_HL_MCL_HANDLE mcl_handle,
8475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                           tBTA_HL_MDL_HANDLE mdl_handle,
8485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                           tBTA_HL_MDEP_ID local_mdep_id,
8495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                           tBTA_HL_MDL_ID mdl_id,
8505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                           tBTA_HL_DCH_MODE dch_mode,
8515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                           BOOLEAN first_reliable,
8525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                           UINT16 mtu,
8535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                           tBTA_HL_STATUS status);
8545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
8555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    extern void  bta_hl_build_delete_mdl_cfm(tBTA_HL *p_evt_data,
8565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                             tBTA_HL_APP_HANDLE app_handle,
8575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                             tBTA_HL_MCL_HANDLE mcl_handle,
8585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                             tBTA_HL_MDL_ID mdl_id,
8595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                             tBTA_HL_STATUS status);
8605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    extern void  bta_hl_build_echo_test_cfm(tBTA_HL *p_evt_data,
8615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                            tBTA_HL_APP_HANDLE app_handle,
8625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                            tBTA_HL_MCL_HANDLE mcl_handle,
8635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                            tBTA_HL_STATUS status );
8645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    extern void  bta_hl_build_sdp_query_cfm(tBTA_HL *p_evt_data,
865f8f30c2cecf221b2c3983b72d5a849d799c39dd7Priti Aghera                                            UINT8 app_id,
8665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                            tBTA_HL_APP_HANDLE app_handle,
8675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                            BD_ADDR bd_addr,
8685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                            tBTA_HL_SDP *p_sdp,
8695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                            tBTA_HL_STATUS status);
8705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
8715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#if (BTA_HL_DEBUG == TRUE)
8725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    extern  char *bta_hl_status_code(tBTA_HL_STATUS status);
8735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    extern char *bta_hl_evt_code(tBTA_HL_INT_EVT evt_code);
8745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#endif
8755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#ifdef __cplusplus
8765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project}
8775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#endif
8785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#endif /* BTA_MSE_INT_H */
8795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
8805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
881