15738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/****************************************************************************** 25738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * 35738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * Copyright (C) 2009-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#ifndef BTIF_HL_H 205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTIF_HL_H 215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Constants & Macros 245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project********************************************************************************/ 255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTIF_HL_DATA_TYPE_NONE 0x0000 275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTIF_HL_DATA_TYPE_PULSE_OXIMETER 0x1004 /* from BT assigned number */ 285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTIF_HL_DATA_TYPE_BLOOD_PRESSURE_MON 0x1007 295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTIF_HL_DATA_TYPE_BODY_THERMOMETER 0x1008 305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTIF_HL_DATA_TYPE_BODY_WEIGHT_SCALE 0x100F 315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTIF_HL_DATA_TYPE_GLUCOSE_METER 0x1011 325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTIF_HL_DATA_TYPE_STEP_COUNTER 0x1068 335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTIF_HL_CCH_NUM_FILTER_ELEMS 3 355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTIF_HL_APPLICATION_NAME_LEN 512 365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTIF_HL_NV_MAX_APPS 16 385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Type definitions and return values 425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project********************************************************************************/ 435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef enum 455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BTIF_HL_SOC_STATE_IDLE, 475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BTIF_HL_SOC_STATE_W4_ADD, 485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BTIF_HL_SOC_STATE_W4_CONN, 495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BTIF_HL_SOC_STATE_W4_READ, 505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BTIF_HL_SOC_STATE_W4_REL 515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} btif_hl_soc_state_t; 525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef enum 545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BTIF_HL_STATE_DISABLED, 565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BTIF_HL_STATE_DISABLING, 575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BTIF_HL_STATE_ENABLED, 585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BTIF_HL_STATE_ENABLING, 595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} btif_hl_state_t; 605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef enum 625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BTIF_HL_CCH_OP_NONE, 645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BTIF_HL_CCH_OP_MDEP_FILTERING, 655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BTIF_HL_CCH_OP_MATCHED_CTRL_PSM, 665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BTIF_HL_CCH_OP_DCH_OPEN, 675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BTIF_HL_CCH_OP_DCH_RECONNECT, 685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BTIF_HL_CCH_OP_DCH_ECHO_TEST 695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} btif_hl_cch_op_t; 705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef enum 725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BTIF_HL_PEND_DCH_OP_NONE, 745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BTIF_HL_PEND_DCH_OP_DELETE_MDL, 755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BTIF_HL_PEND_DCH_OP_OPEN, 765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BTIF_HL_PEND_DCH_OP_RECONNECT 775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} btif_hl_pend_dch_op_t; 785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef enum 805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BTIF_HL_DCH_OP_NONE, 825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BTIF_HL_DCH_OP_DISC 835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} btif_hl_dch_op_t; 845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef enum 865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BTIF_HL_CHAN_CB_STATE_NONE, 885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BTIF_HL_CHAN_CB_STATE_CONNECTING_PENDING, 895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BTIF_HL_CHAN_CB_STATE_CONNECTED_PENDING, 905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BTIF_HL_CHAN_CB_STATE_DISCONNECTING_PENDING, 925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BTIF_HL_CHAN_CB_STATE_DISCONNECTED_PENDING, 935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BTIF_HL_CHAN_CB_STATE_DESTROYED_PENDING, 945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} btif_hl_chan_cb_state_t; 955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectenum 975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BTIF_HL_SEND_CONNECTED_CB, 995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BTIF_HL_SEND_DISCONNECTED_CB, 1005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BTIF_HL_REG_APP, 1015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BTIF_HL_UNREG_APP, 1025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BTIF_HL_UPDATE_MDL, 1035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project}; 1045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct 1065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 1075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT8 mdep_cfg_idx; 1085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project int data_type; 1095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tBTA_HL_MDEP_ID peer_mdep_id; 1105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} btif_hl_extra_mdl_cfg_t; 1115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct 1135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 1145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tBTA_HL_MDL_CFG base; 1155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project btif_hl_extra_mdl_cfg_t extra; 1165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} btif_hl_mdl_cfg_t; 1175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct 1195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 1205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project btif_hl_mdl_cfg_t mdl_cfg[BTA_HL_NUM_MDL_CFGS]; 1215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} btif_hl_nv_mdl_data_t; 1225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct 1245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 1255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tBTA_HL_SUP_FEATURE sup_feature; 1265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tBTA_HL_DCH_CFG channel_type[BTA_HL_NUM_MDEPS]; 1275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project char srv_name[BTA_SERVICE_NAME_LEN +1]; 1285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project char srv_desp[BTA_SERVICE_DESP_LEN +1]; 1295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project char provider_name[BTA_PROVIDER_NAME_LEN +1]; 1305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project char application_name[BTIF_HL_APPLICATION_NAME_LEN +1]; 1315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} btif_hl_nv_app_data_t; 1325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct 1345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 1355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BOOLEAN in_use; 1365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT16 use_freq; 1375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} btif_hl_nv_app_t; 1385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct 1405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 1415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project btif_hl_nv_app_t app[BTIF_HL_NV_MAX_APPS]; 1425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} btif_hl_nv_app_cb_t; 1435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct 1455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 1465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT8 app_nv_idx; 1475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BOOLEAN active; 1485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT8 app_idx; 1495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project btif_hl_nv_app_data_t app_data; 1505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} btif_hl_app_data_t; 1515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct 1535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 1545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BOOLEAN is_app_read; 1555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project btif_hl_nv_app_cb_t app_cb; 1565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BUFFER_Q app_queue; 1575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} btif_hl_nv_cb_t; 1585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct 1605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 1615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project int channel_id; 1625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BD_ADDR bd_addr; 1635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT8 mdep_cfg_idx; 1645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project int max_s; 1655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project int socket_id[2]; 1665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT8 app_idx; 1675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT8 mcl_idx; 1685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT8 mdl_idx; 1695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project btif_hl_soc_state_t state; 1705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project}btif_hl_soc_cb_t; 1715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct 1735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 1745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT16 data_type; 1755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT16 max_tx_apdu_size; 1765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT16 max_rx_apdu_size; 1775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} btif_hl_data_type_cfg_t; 1785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct 1805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 1815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT16 data_type; 1825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tBTA_HL_MDEP_ROLE peer_mdep_role; 1835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} btif_hl_filter_elem_t; 1845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct 1865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 1875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT8 num_elems; 1885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project btif_hl_filter_elem_t elem[BTIF_HL_CCH_NUM_FILTER_ELEMS]; 1895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} btif_hl_cch_filter_t; 1905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct 1925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 1935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BOOLEAN in_use; 1945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT16 mdl_id; 1955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tBTA_HL_MDL_HANDLE mdl_handle; 1965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project btif_hl_dch_op_t dch_oper; 1975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tBTA_HL_MDEP_ID local_mdep_id; 1985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT8 local_mdep_cfg_idx; 1995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tBTA_HL_DCH_CFG local_cfg; 2005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tBTA_HL_MDEP_ID peer_mdep_id; 2015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT16 peer_data_type; 2025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tBTA_HL_MDEP_ROLE peer_mdep_role; 2035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tBTA_HL_DCH_MODE dch_mode; 2045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tBTA_SEC sec_mask; 2055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BOOLEAN is_the_first_reliable; 2065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BOOLEAN delete_mdl; 2075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT16 mtu; 2085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tMCA_CHNL_CFG chnl_cfg; 2095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT16 tx_size; 2105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT8 *p_tx_pkt; 2115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT8 *p_rx_pkt; 2125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BOOLEAN cong; 2135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project btif_hl_soc_cb_t *p_scb; 2145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project int channel_id; 2155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} btif_hl_mdl_cb_t; 2165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 2175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct 2185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 2195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project int channel_id; 2205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project int mdep_cfg_idx; 2215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BOOLEAN in_use; 2225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project btif_hl_chan_cb_state_t cb_state; 2235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project btif_hl_pend_dch_op_t op; 2245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BD_ADDR bd_addr; 2255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BOOLEAN abort_pending; 2265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} btif_hl_pending_chan_cb_t; 2275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 2285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct 2295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 2305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project btif_hl_mdl_cb_t mdl[BTA_HL_NUM_MDLS_PER_MCL]; 2315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BOOLEAN in_use; 2325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BOOLEAN is_connected; 2335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT16 req_ctrl_psm; 2345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT16 ctrl_psm; 2355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT16 data_psm; 2365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BD_ADDR bd_addr; 2375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT16 cch_mtu; 2385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tBTA_SEC sec_mask; 2395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tBTA_HL_MCL_HANDLE mcl_handle; 2405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project btif_hl_pending_chan_cb_t pcb; 2415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BOOLEAN valid_sdp_idx; 2425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT8 sdp_idx; 2435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tBTA_HL_SDP sdp; 2445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project btif_hl_cch_op_t cch_oper; 2455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BOOLEAN cch_timer_active; 2465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project TIMER_LIST_ENT cch_timer; 2475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} btif_hl_mcl_cb_t; 2485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 2495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct 2505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 2515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BOOLEAN active; 2525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT16 mdl_id; 2535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT8 mdep_cfg_idx; 2545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BD_ADDR bd_addr; 2555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project int channel_id; 2565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} btif_hl_delete_mdl_t; 2575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 2585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct 2595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 2605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project btif_hl_mcl_cb_t mcb[BTA_HL_NUM_MCLS]; /* application Control Blocks */ 2615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BOOLEAN in_use; /* this CB is in use*/ 2625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BOOLEAN reg_pending; 2635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BOOLEAN is_new_app; 2645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT8 app_nv_idx; 2655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT8 app_id; 2665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 2675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tBTA_HL_SUP_FEATURE sup_feature; 2685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tBTA_HL_DCH_CFG channel_type[BTA_HL_NUM_MDEPS]; 2695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tBTA_HL_SDP_INFO_IND sdp_info_ind; 2705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project btif_hl_cch_filter_t filter; 2715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 2725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project btif_hl_mdl_cfg_t mdl_cfg[BTA_HL_NUM_MDL_CFGS]; 2735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project int mdl_cfg_channel_id[BTA_HL_NUM_MDL_CFGS]; 2745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 2755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project btif_hl_delete_mdl_t delete_mdl; 2765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tBTA_HL_DEVICE_TYPE dev_type; 2775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tBTA_HL_APP_HANDLE app_handle; 2785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT16 sec_mask; /* Security mask for BTM_SetSecurityLevel() */ 2795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project char srv_name[BTA_SERVICE_NAME_LEN +1]; /* service name to be used in the SDP; null terminated*/ 2805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project char srv_desp[BTA_SERVICE_DESP_LEN +1]; /* service description to be used in the SDP; null terminated */ 2815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project char provider_name[BTA_PROVIDER_NAME_LEN +1]; /* provide name to be used in the SDP; null terminated */ 2825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project char application_name[BTIF_HL_APPLICATION_NAME_LEN +1]; /* applicaiton name */ 2835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} btif_hl_app_cb_t; 2845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 2855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct 2865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 2875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BOOLEAN in_use; 2885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT8 app_idx; 2895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} btif_hl_pending_reg_cb_t; 2905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 2915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* BTIF-HL control block */ 2925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct 2935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 2945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project btif_hl_app_cb_t acb[BTA_HL_NUM_APPS]; /* HL Control Blocks */ 2955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tBTA_HL_CTRL_CBACK *p_ctrl_cback; /* pointer to control callback function */ 2965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT8 next_app_id; 2975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT16 next_channel_id; 2985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project btif_hl_state_t state; 2995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project btif_hl_nv_cb_t ncb; 3005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} btif_hl_cb_t; 3015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 3025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef UINT8 btif_hl_evt_t; 3035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 3045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct 3055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 3065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project int app_id; 3075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BD_ADDR bd_addr; 3085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project int mdep_cfg_index; 3095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project int channel_id; 3105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project btif_hl_chan_cb_state_t cb_state; 3115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project int fd; 3125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} btif_hl_send_chan_state_cb_t; 3135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 3145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 3155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct 3165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 3175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT8 app_idx; 3185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} btif_hl_reg_t; 3195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 3205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef btif_hl_reg_t btif_hl_unreg_t; 3215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef btif_hl_reg_t btif_hl_update_mdl_t; 3225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 3235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef union 3245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 3255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project btif_hl_send_chan_state_cb_t chan_cb; 3265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project btif_hl_reg_t reg; 3275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project btif_hl_unreg_t unreg; 3285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project btif_hl_update_mdl_t update_mdl; 3295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} btif_hl_evt_cb_t; 3305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 3315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 3325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 3335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Functions 3345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project********************************************************************************/ 3355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 3365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTIF_HL_GET_CB_PTR() &(btif_hl_cb) 3375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTIF_HL_GET_APP_CB_PTR(app_idx) &(btif_hl_cb.acb[(app_idx)]) 3385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTIF_HL_GET_MCL_CB_PTR(app_idx, mcl_idx) &(btif_hl_cb.acb[(app_idx)].mcb[(mcl_idx)]) 3395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTIF_HL_GET_MDL_CB_PTR(app_idx, mcl_idx, mdl_idx) &(btif_hl_cb.acb[(app_idx)].mcb[(mcl_idx)].mdl[mdl_idx]) 3405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTIF_HL_GET_PCB_PTR(app_idx, mcl_idx) &(btif_hl_cb.acb[app_idx].mcb[mcl_idx].pcb) 3415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTIF_HL_GET_MDL_CFG_PTR(app_idx, item_idx) &(btif_hl_cb.acb[(app_idx)].mdl_cfg[(item_idx)]) 3425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTIF_HL_GET_MDL_CFG_CHANNEL_ID_PTR(app_idx, item_idx) &(btif_hl_cb.acb[(app_idx)].mdl_cfg_channel_id[(item_idx)]) 3435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 3445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectextern btif_hl_cb_t btif_hl_cb; 3455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectextern btif_hl_cb_t *p_btif_hl_cb; 3465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectextern btif_hl_nv_cb_t *p_ncb; 3475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 3485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectextern BOOLEAN btif_hl_find_mcl_idx(UINT8 app_idx, BD_ADDR p_bd_addr, UINT8 *p_mcl_idx); 3495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectextern BOOLEAN btif_hl_find_app_idx(UINT8 app_id, UINT8 *p_app_idx); 3505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectextern BOOLEAN btif_hl_find_avail_mcl_idx(UINT8 app_idx, UINT8 *p_mcl_idx); 3515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectextern BOOLEAN btif_hl_find_avail_mdl_idx(UINT8 app_idx, UINT8 mcl_idx, 3525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT8 *p_mdl_idx); 3535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectextern BOOLEAN btif_hl_find_mcl_idx_using_handle( tBTA_HL_MCL_HANDLE mcl_handle, 3545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT8 *p_app_idx, UINT8 *p_mcl_idx); 3555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectextern BOOLEAN btif_hl_save_mdl_cfg(UINT8 app_id, UINT8 item_idx, tBTA_HL_MDL_CFG *p_mdl_cfg); 3565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectextern BOOLEAN btif_hl_delete_mdl_cfg(UINT8 app_id, UINT8 item_idx); 3575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectextern void * btif_hl_get_buf(UINT16 size); 3585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectextern void btif_hl_free_buf(void **p); 3595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectextern BOOLEAN btif_hl_find_mdl_idx_using_handle(tBTA_HL_MDL_HANDLE mdl_handle, 3605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT8 *p_app_idx,UINT8 *p_mcl_idx, 3615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT8 *p_mdl_idx); 3625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectextern void btif_hl_abort_pending_chan_setup(UINT8 app_idx, UINT8 mcl_idx); 3635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectextern BOOLEAN btif_hl_proc_pending_op(UINT8 app_idx, UINT8 mcl_idx); 3645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectextern BOOLEAN btif_hl_load_mdl_config (UINT8 app_id, UINT8 buffer_size, 3655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tBTA_HL_MDL_CFG *p_mdl_buf ); 3665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#endif 367