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/******************************************************************************
205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *
215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *  This is the implementation of the API for the HeaLth device profile (HL)
225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *  subsystem of BTA, Broadcom Corp's Bluetooth application layer for mobile
235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *  phones.
245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *
255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project ******************************************************************************/
265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#include <string.h>
285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#include "bt_target.h"
305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#if defined(HL_INCLUDED) && (HL_INCLUDED == TRUE)
315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
32a11035b5ecbc6cbd9da5bd707683504c47e2744ePavlin Radoslavov#include "bt_common.h"
335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#include "bta_hl_api.h"
345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#include "bta_hl_int.h"
355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*****************************************************************************
375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**  Constants
385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*****************************************************************************/
395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectstatic const tBTA_SYS_REG bta_hl_reg =
415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    bta_hl_hdl_event,
435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BTA_HlDisable
445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project};
455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         BTA_HlEnable
495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      Enable the HL subsystems.  This function must be
515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  called before any other functions in the HL API are called.
525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  When the enable operation is completed the callback function
535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  will be called with an BTA_HL_CTRL_ENABLE_CFM_EVT event.
545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Parameters       p_cback - HL event call back function
565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          void
585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectvoid BTA_HlEnable(tBTA_HL_CTRL_CBACK *p_ctrl_cback)
615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
625fe6f0cf6b223e3ed6be4912d55b3ed5b41ce0cdPavlin Radoslavov    tBTA_HL_API_ENABLE *p_buf =
635fe6f0cf6b223e3ed6be4912d55b3ed5b41ce0cdPavlin Radoslavov        (tBTA_HL_API_ENABLE *)osi_malloc(sizeof(tBTA_HL_API_ENABLE));
645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    /* register with BTA system manager */
665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    bta_sys_register(BTA_ID_HL, &bta_hl_reg);
675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
685fe6f0cf6b223e3ed6be4912d55b3ed5b41ce0cdPavlin Radoslavov    p_buf->hdr.event = BTA_HL_API_ENABLE_EVT;
695fe6f0cf6b223e3ed6be4912d55b3ed5b41ce0cdPavlin Radoslavov    p_buf->p_cback = p_ctrl_cback;
705fe6f0cf6b223e3ed6be4912d55b3ed5b41ce0cdPavlin Radoslavov
715fe6f0cf6b223e3ed6be4912d55b3ed5b41ce0cdPavlin Radoslavov    bta_sys_sendmsg(p_buf);
725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project}
735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         BTA_HlDisable
775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description     Disable the HL subsystem.
795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          void
815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectvoid BTA_HlDisable(void)
845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
855fe6f0cf6b223e3ed6be4912d55b3ed5b41ce0cdPavlin Radoslavov    BT_HDR *p_buf = (BT_HDR *)osi_malloc(sizeof(BT_HDR));
865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    bta_sys_deregister(BTA_ID_HL);
885fe6f0cf6b223e3ed6be4912d55b3ed5b41ce0cdPavlin Radoslavov    p_buf->event = BTA_HL_API_DISABLE_EVT;
895fe6f0cf6b223e3ed6be4912d55b3ed5b41ce0cdPavlin Radoslavov
905fe6f0cf6b223e3ed6be4912d55b3ed5b41ce0cdPavlin Radoslavov    bta_sys_sendmsg(p_buf);
915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project}
925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
95f8f30c2cecf221b2c3983b72d5a849d799c39dd7Priti Aghera** Function         BTA_HlUpdate
96f8f30c2cecf221b2c3983b72d5a849d799c39dd7Priti Aghera**
97f8f30c2cecf221b2c3983b72d5a849d799c39dd7Priti Aghera** Description      Register an HDP application
98f8f30c2cecf221b2c3983b72d5a849d799c39dd7Priti Aghera**
99f8f30c2cecf221b2c3983b72d5a849d799c39dd7Priti Aghera** Parameters       app_id        - Application ID
100f8f30c2cecf221b2c3983b72d5a849d799c39dd7Priti Aghera**                  p_reg_param   - non-platform related parameters for the
101f8f30c2cecf221b2c3983b72d5a849d799c39dd7Priti Aghera**                                  HDP application
102f8f30c2cecf221b2c3983b72d5a849d799c39dd7Priti Aghera**                  p_cback       - HL event callback fucntion
103f8f30c2cecf221b2c3983b72d5a849d799c39dd7Priti Aghera**
104f8f30c2cecf221b2c3983b72d5a849d799c39dd7Priti Aghera** Returns          void
105f8f30c2cecf221b2c3983b72d5a849d799c39dd7Priti Aghera**
106f8f30c2cecf221b2c3983b72d5a849d799c39dd7Priti Aghera*******************************************************************************/
1075fe6f0cf6b223e3ed6be4912d55b3ed5b41ce0cdPavlin Radoslavovvoid BTA_HlUpdate(UINT8 app_id, tBTA_HL_REG_PARAM *p_reg_param,
1085fe6f0cf6b223e3ed6be4912d55b3ed5b41ce0cdPavlin Radoslavov                  BOOLEAN is_register, tBTA_HL_CBACK *p_cback)
109f8f30c2cecf221b2c3983b72d5a849d799c39dd7Priti Aghera{
1105fe6f0cf6b223e3ed6be4912d55b3ed5b41ce0cdPavlin Radoslavov    tBTA_HL_API_UPDATE *p_buf =
1115fe6f0cf6b223e3ed6be4912d55b3ed5b41ce0cdPavlin Radoslavov        (tBTA_HL_API_UPDATE *)osi_malloc(sizeof(tBTA_HL_API_UPDATE));
1125fe6f0cf6b223e3ed6be4912d55b3ed5b41ce0cdPavlin Radoslavov
1135fe6f0cf6b223e3ed6be4912d55b3ed5b41ce0cdPavlin Radoslavov    APPL_TRACE_DEBUG("%s", __func__);
1145fe6f0cf6b223e3ed6be4912d55b3ed5b41ce0cdPavlin Radoslavov
1155fe6f0cf6b223e3ed6be4912d55b3ed5b41ce0cdPavlin Radoslavov    p_buf->hdr.event = BTA_HL_API_UPDATE_EVT;
1165fe6f0cf6b223e3ed6be4912d55b3ed5b41ce0cdPavlin Radoslavov    p_buf->app_id = app_id;
1175fe6f0cf6b223e3ed6be4912d55b3ed5b41ce0cdPavlin Radoslavov    p_buf->is_register = is_register;
1185fe6f0cf6b223e3ed6be4912d55b3ed5b41ce0cdPavlin Radoslavov
1195fe6f0cf6b223e3ed6be4912d55b3ed5b41ce0cdPavlin Radoslavov    if (is_register) {
1205fe6f0cf6b223e3ed6be4912d55b3ed5b41ce0cdPavlin Radoslavov        p_buf->sec_mask = (p_reg_param->sec_mask | BTA_SEC_AUTHENTICATE | BTA_SEC_ENCRYPT);
1215fe6f0cf6b223e3ed6be4912d55b3ed5b41ce0cdPavlin Radoslavov        p_buf->p_cback = p_cback;
1225fe6f0cf6b223e3ed6be4912d55b3ed5b41ce0cdPavlin Radoslavov        if (p_reg_param->p_srv_name)
1235fe6f0cf6b223e3ed6be4912d55b3ed5b41ce0cdPavlin Radoslavov            strlcpy(p_buf->srv_name, p_reg_param->p_srv_name, BTA_SERVICE_NAME_LEN);
1245fe6f0cf6b223e3ed6be4912d55b3ed5b41ce0cdPavlin Radoslavov        else
1255fe6f0cf6b223e3ed6be4912d55b3ed5b41ce0cdPavlin Radoslavov            p_buf->srv_name[0] = 0;
1265fe6f0cf6b223e3ed6be4912d55b3ed5b41ce0cdPavlin Radoslavov
1275fe6f0cf6b223e3ed6be4912d55b3ed5b41ce0cdPavlin Radoslavov        if (p_reg_param->p_srv_desp)
1285fe6f0cf6b223e3ed6be4912d55b3ed5b41ce0cdPavlin Radoslavov            strlcpy(p_buf->srv_desp, p_reg_param->p_srv_desp, BTA_SERVICE_DESP_LEN);
1295fe6f0cf6b223e3ed6be4912d55b3ed5b41ce0cdPavlin Radoslavov        else
1305fe6f0cf6b223e3ed6be4912d55b3ed5b41ce0cdPavlin Radoslavov            p_buf->srv_desp[0] = 0;
131f8f30c2cecf221b2c3983b72d5a849d799c39dd7Priti Aghera
1325fe6f0cf6b223e3ed6be4912d55b3ed5b41ce0cdPavlin Radoslavov        if (p_reg_param->p_provider_name)
1335fe6f0cf6b223e3ed6be4912d55b3ed5b41ce0cdPavlin Radoslavov            strlcpy(p_buf->provider_name, p_reg_param->p_provider_name, BTA_PROVIDER_NAME_LEN);
1345fe6f0cf6b223e3ed6be4912d55b3ed5b41ce0cdPavlin Radoslavov        else
1355fe6f0cf6b223e3ed6be4912d55b3ed5b41ce0cdPavlin Radoslavov            p_buf->provider_name[0] = 0;
136f8f30c2cecf221b2c3983b72d5a849d799c39dd7Priti Aghera    }
1375fe6f0cf6b223e3ed6be4912d55b3ed5b41ce0cdPavlin Radoslavov
1385fe6f0cf6b223e3ed6be4912d55b3ed5b41ce0cdPavlin Radoslavov    bta_sys_sendmsg(p_buf);
139f8f30c2cecf221b2c3983b72d5a849d799c39dd7Priti Aghera}
140f8f30c2cecf221b2c3983b72d5a849d799c39dd7Priti Aghera
141f8f30c2cecf221b2c3983b72d5a849d799c39dd7Priti Aghera/*******************************************************************************
142f8f30c2cecf221b2c3983b72d5a849d799c39dd7Priti Aghera**
1435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         BTA_HlRegister
1445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
1455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      Register an HDP application
1465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
1475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Parameters       app_id        - Application ID
1485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  p_reg_param   - non-platform related parameters for the
1495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                                  HDP application
1505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  p_cback       - HL event callback fucntion
1515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
1525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          void
1535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
1545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
1555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectvoid BTA_HlRegister(UINT8  app_id,
1565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                    tBTA_HL_REG_PARAM *p_reg_param,
1575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                    tBTA_HL_CBACK *p_cback)
1585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
1595fe6f0cf6b223e3ed6be4912d55b3ed5b41ce0cdPavlin Radoslavov    tBTA_HL_API_REGISTER *p_buf =
1605fe6f0cf6b223e3ed6be4912d55b3ed5b41ce0cdPavlin Radoslavov        (tBTA_HL_API_REGISTER *)osi_malloc(sizeof(tBTA_HL_API_REGISTER));
1615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1625fe6f0cf6b223e3ed6be4912d55b3ed5b41ce0cdPavlin Radoslavov    p_buf->hdr.event    = BTA_HL_API_REGISTER_EVT;
1635fe6f0cf6b223e3ed6be4912d55b3ed5b41ce0cdPavlin Radoslavov    p_buf->app_id       = app_id;
1645fe6f0cf6b223e3ed6be4912d55b3ed5b41ce0cdPavlin Radoslavov    p_buf->sec_mask     = (p_reg_param->sec_mask | BTA_SEC_AUTHENTICATE | BTA_SEC_ENCRYPT);
1655fe6f0cf6b223e3ed6be4912d55b3ed5b41ce0cdPavlin Radoslavov    p_buf->p_cback = p_cback;
1665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1675fe6f0cf6b223e3ed6be4912d55b3ed5b41ce0cdPavlin Radoslavov    if (p_reg_param->p_srv_name)
1685fe6f0cf6b223e3ed6be4912d55b3ed5b41ce0cdPavlin Radoslavov        strlcpy(p_buf->srv_name, p_reg_param->p_srv_name, BTA_SERVICE_NAME_LEN);
1695fe6f0cf6b223e3ed6be4912d55b3ed5b41ce0cdPavlin Radoslavov    else
1705fe6f0cf6b223e3ed6be4912d55b3ed5b41ce0cdPavlin Radoslavov        p_buf->srv_name[0] = 0;
1715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1725fe6f0cf6b223e3ed6be4912d55b3ed5b41ce0cdPavlin Radoslavov    if (p_reg_param->p_srv_desp)
1735fe6f0cf6b223e3ed6be4912d55b3ed5b41ce0cdPavlin Radoslavov        strlcpy(p_buf->srv_desp, p_reg_param->p_srv_desp, BTA_SERVICE_DESP_LEN);
1745fe6f0cf6b223e3ed6be4912d55b3ed5b41ce0cdPavlin Radoslavov    else
1755fe6f0cf6b223e3ed6be4912d55b3ed5b41ce0cdPavlin Radoslavov        p_buf->srv_desp[0] = 0;
1765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1775fe6f0cf6b223e3ed6be4912d55b3ed5b41ce0cdPavlin Radoslavov    if (p_reg_param->p_provider_name)
1785fe6f0cf6b223e3ed6be4912d55b3ed5b41ce0cdPavlin Radoslavov        strlcpy(p_buf->provider_name, p_reg_param->p_provider_name, BTA_PROVIDER_NAME_LEN);
1795fe6f0cf6b223e3ed6be4912d55b3ed5b41ce0cdPavlin Radoslavov    else
1805fe6f0cf6b223e3ed6be4912d55b3ed5b41ce0cdPavlin Radoslavov        p_buf->provider_name[0] = 0;
1815fe6f0cf6b223e3ed6be4912d55b3ed5b41ce0cdPavlin Radoslavov
1825fe6f0cf6b223e3ed6be4912d55b3ed5b41ce0cdPavlin Radoslavov    bta_sys_sendmsg(p_buf);
1835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project}
1845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
1865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
1875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         BTA_HlDeregister
1885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
1895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      Deregister an HDP application
1905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
1915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Parameters       app_handle - Application handle
1925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
1935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns           void
1945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
1955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
196f8f30c2cecf221b2c3983b72d5a849d799c39dd7Priti Agheravoid BTA_HlDeregister(UINT8 app_id,tBTA_HL_APP_HANDLE app_handle)
1975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
1985fe6f0cf6b223e3ed6be4912d55b3ed5b41ce0cdPavlin Radoslavov    tBTA_HL_API_DEREGISTER *p_buf =
1995fe6f0cf6b223e3ed6be4912d55b3ed5b41ce0cdPavlin Radoslavov        (tBTA_HL_API_DEREGISTER *)osi_malloc(sizeof(tBTA_HL_API_DEREGISTER));
2005fe6f0cf6b223e3ed6be4912d55b3ed5b41ce0cdPavlin Radoslavov
2015fe6f0cf6b223e3ed6be4912d55b3ed5b41ce0cdPavlin Radoslavov    p_buf->hdr.event   = BTA_HL_API_DEREGISTER_EVT;
2025fe6f0cf6b223e3ed6be4912d55b3ed5b41ce0cdPavlin Radoslavov    p_buf->app_id      = app_id;
2035fe6f0cf6b223e3ed6be4912d55b3ed5b41ce0cdPavlin Radoslavov    p_buf->app_handle  = app_handle;
2045fe6f0cf6b223e3ed6be4912d55b3ed5b41ce0cdPavlin Radoslavov
2055fe6f0cf6b223e3ed6be4912d55b3ed5b41ce0cdPavlin Radoslavov    bta_sys_sendmsg(p_buf);
2065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project}
2075fe6f0cf6b223e3ed6be4912d55b3ed5b41ce0cdPavlin Radoslavov
2085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
2095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
2105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         BTA_HlCchOpen
2115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
2125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      Open a Control channel connection with the specified BD address
2135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
2145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Parameters       app_handle - Application Handle
2155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  p_open_param - parameters for opening a control channel
2165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
2175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          void
2185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
2195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  Note: The control PSM value is used to select which
2205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  HDP insatnce should be used in case the peer device support
2215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  multiple HDP instances. Also, if the control PSM value is zero
2225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  then the first HDP instance is used for the control channel setup
2235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
224f8f30c2cecf221b2c3983b72d5a849d799c39dd7Priti Agheravoid BTA_HlCchOpen(UINT8 app_id, tBTA_HL_APP_HANDLE app_handle,
2255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                   tBTA_HL_CCH_OPEN_PARAM *p_open_param)
2265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
2275fe6f0cf6b223e3ed6be4912d55b3ed5b41ce0cdPavlin Radoslavov    tBTA_HL_API_CCH_OPEN *p_buf =
2285fe6f0cf6b223e3ed6be4912d55b3ed5b41ce0cdPavlin Radoslavov        (tBTA_HL_API_CCH_OPEN *)osi_malloc(sizeof(tBTA_HL_API_CCH_OPEN));
2295fe6f0cf6b223e3ed6be4912d55b3ed5b41ce0cdPavlin Radoslavov
2305fe6f0cf6b223e3ed6be4912d55b3ed5b41ce0cdPavlin Radoslavov    p_buf->hdr.event = BTA_HL_API_CCH_OPEN_EVT;
2315fe6f0cf6b223e3ed6be4912d55b3ed5b41ce0cdPavlin Radoslavov    p_buf->app_id = app_id;
2325fe6f0cf6b223e3ed6be4912d55b3ed5b41ce0cdPavlin Radoslavov    p_buf->app_handle = app_handle;
2335fe6f0cf6b223e3ed6be4912d55b3ed5b41ce0cdPavlin Radoslavov    p_buf->sec_mask = (p_open_param->sec_mask | BTA_SEC_AUTHENTICATE | BTA_SEC_ENCRYPT);
2345fe6f0cf6b223e3ed6be4912d55b3ed5b41ce0cdPavlin Radoslavov    bdcpy(p_buf->bd_addr, p_open_param->bd_addr);
2355fe6f0cf6b223e3ed6be4912d55b3ed5b41ce0cdPavlin Radoslavov    p_buf->ctrl_psm = p_open_param->ctrl_psm;
2365fe6f0cf6b223e3ed6be4912d55b3ed5b41ce0cdPavlin Radoslavov
2375fe6f0cf6b223e3ed6be4912d55b3ed5b41ce0cdPavlin Radoslavov    bta_sys_sendmsg(p_buf);
2385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project}
2395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
2415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
2425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         BTA_HlCchClose
2435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
2445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      Close a Control channel connection with the specified MCL
2455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  handle
2465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
2475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Parameters       mcl_handle - MCL handle
2485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
2495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          void
2505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
2515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
2525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectvoid BTA_HlCchClose(tBTA_HL_MCL_HANDLE mcl_handle)
2535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
2545fe6f0cf6b223e3ed6be4912d55b3ed5b41ce0cdPavlin Radoslavov    tBTA_HL_API_CCH_CLOSE *p_buf =
2555fe6f0cf6b223e3ed6be4912d55b3ed5b41ce0cdPavlin Radoslavov        (tBTA_HL_API_CCH_CLOSE *)osi_malloc(sizeof(tBTA_HL_API_CCH_CLOSE));
2565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2575fe6f0cf6b223e3ed6be4912d55b3ed5b41ce0cdPavlin Radoslavov    p_buf->hdr.event = BTA_HL_API_CCH_CLOSE_EVT;
2585fe6f0cf6b223e3ed6be4912d55b3ed5b41ce0cdPavlin Radoslavov    p_buf->mcl_handle = mcl_handle;
2595fe6f0cf6b223e3ed6be4912d55b3ed5b41ce0cdPavlin Radoslavov
2605fe6f0cf6b223e3ed6be4912d55b3ed5b41ce0cdPavlin Radoslavov    bta_sys_sendmsg(p_buf);
2615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project}
2625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
2645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
2655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         BTA_HlDchOpen
2665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
2675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      Open a data channel connection with the specified DCH parameters
2685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
2695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Parameters       mcl_handle - MCL handle
2705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  p_open_param - parameters for opening a data channel
2715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
2725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          void
2735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
2745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
2755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectvoid BTA_HlDchOpen(tBTA_HL_MCL_HANDLE mcl_handle,
2765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                   tBTA_HL_DCH_OPEN_PARAM *p_open_param)
2775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
2785fe6f0cf6b223e3ed6be4912d55b3ed5b41ce0cdPavlin Radoslavov    tBTA_HL_API_DCH_OPEN *p_buf =
2795fe6f0cf6b223e3ed6be4912d55b3ed5b41ce0cdPavlin Radoslavov        (tBTA_HL_API_DCH_OPEN *)osi_malloc(sizeof(tBTA_HL_API_DCH_OPEN));
2805fe6f0cf6b223e3ed6be4912d55b3ed5b41ce0cdPavlin Radoslavov
2815fe6f0cf6b223e3ed6be4912d55b3ed5b41ce0cdPavlin Radoslavov    p_buf->hdr.event = BTA_HL_API_DCH_OPEN_EVT;
2825fe6f0cf6b223e3ed6be4912d55b3ed5b41ce0cdPavlin Radoslavov    p_buf->mcl_handle = mcl_handle;
2835fe6f0cf6b223e3ed6be4912d55b3ed5b41ce0cdPavlin Radoslavov    p_buf->ctrl_psm = p_open_param->ctrl_psm;
2845fe6f0cf6b223e3ed6be4912d55b3ed5b41ce0cdPavlin Radoslavov    p_buf->local_mdep_id = p_open_param->local_mdep_id;
2855fe6f0cf6b223e3ed6be4912d55b3ed5b41ce0cdPavlin Radoslavov    p_buf->peer_mdep_id = p_open_param->peer_mdep_id;
2865fe6f0cf6b223e3ed6be4912d55b3ed5b41ce0cdPavlin Radoslavov    p_buf->local_cfg = p_open_param->local_cfg;
2875fe6f0cf6b223e3ed6be4912d55b3ed5b41ce0cdPavlin Radoslavov    p_buf->sec_mask = (p_open_param->sec_mask | BTA_SEC_AUTHENTICATE | BTA_SEC_ENCRYPT);
2885fe6f0cf6b223e3ed6be4912d55b3ed5b41ce0cdPavlin Radoslavov
2895fe6f0cf6b223e3ed6be4912d55b3ed5b41ce0cdPavlin Radoslavov    bta_sys_sendmsg(p_buf);
2905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project}
2915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
2935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
2945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         BTA_HlDchReconnect
2955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
2965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      Reconnect a data channel with the specified MDL_ID
2975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
2985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Parameters       mcl_handle      - MCL handle
2995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*8                  p_recon_param   - parameters for reconnecting a data channel
3005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
3015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          void
3025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
3035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
3045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectvoid BTA_HlDchReconnect(tBTA_HL_MCL_HANDLE mcl_handle,
3055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                        tBTA_HL_DCH_RECONNECT_PARAM *p_recon_param)
3065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
3075fe6f0cf6b223e3ed6be4912d55b3ed5b41ce0cdPavlin Radoslavov    tBTA_HL_API_DCH_RECONNECT *p_buf =
3085fe6f0cf6b223e3ed6be4912d55b3ed5b41ce0cdPavlin Radoslavov        (tBTA_HL_API_DCH_RECONNECT *)osi_malloc(sizeof(tBTA_HL_API_DCH_RECONNECT));
3095fe6f0cf6b223e3ed6be4912d55b3ed5b41ce0cdPavlin Radoslavov
3105fe6f0cf6b223e3ed6be4912d55b3ed5b41ce0cdPavlin Radoslavov    p_buf->hdr.event = BTA_HL_API_DCH_RECONNECT_EVT;
3115fe6f0cf6b223e3ed6be4912d55b3ed5b41ce0cdPavlin Radoslavov    p_buf->mcl_handle = mcl_handle;
3125fe6f0cf6b223e3ed6be4912d55b3ed5b41ce0cdPavlin Radoslavov    p_buf->ctrl_psm = p_recon_param->ctrl_psm;
3135fe6f0cf6b223e3ed6be4912d55b3ed5b41ce0cdPavlin Radoslavov    p_buf->mdl_id = p_recon_param->mdl_id;
3145fe6f0cf6b223e3ed6be4912d55b3ed5b41ce0cdPavlin Radoslavov
3155fe6f0cf6b223e3ed6be4912d55b3ed5b41ce0cdPavlin Radoslavov    bta_sys_sendmsg(p_buf);
3165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project}
3175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
3185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
3195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
3205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         BTA_HlDchClose
3215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
3225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      Close a data channel with the specified MDL handle
3235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
3245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Parameters       mdl_handle  - MDL handle
3255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
3265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          void
3275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
3285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
3295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectvoid BTA_HlDchClose(tBTA_HL_MDL_HANDLE mdl_handle)
3305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
3315fe6f0cf6b223e3ed6be4912d55b3ed5b41ce0cdPavlin Radoslavov    tBTA_HL_API_DCH_CLOSE *p_buf =
3325fe6f0cf6b223e3ed6be4912d55b3ed5b41ce0cdPavlin Radoslavov        (tBTA_HL_API_DCH_CLOSE *)osi_malloc(sizeof(tBTA_HL_API_DCH_CLOSE));
3335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
3345fe6f0cf6b223e3ed6be4912d55b3ed5b41ce0cdPavlin Radoslavov    p_buf->hdr.event = BTA_HL_API_DCH_CLOSE_EVT;
3355fe6f0cf6b223e3ed6be4912d55b3ed5b41ce0cdPavlin Radoslavov    p_buf->mdl_handle = mdl_handle;
3365fe6f0cf6b223e3ed6be4912d55b3ed5b41ce0cdPavlin Radoslavov
3375fe6f0cf6b223e3ed6be4912d55b3ed5b41ce0cdPavlin Radoslavov    bta_sys_sendmsg(p_buf);
3385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project}
3395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
3405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
3415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
3425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         BTA_HlDchAbort
3435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
3445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      Abort the current data channel setup with the specified MCL
3455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  handle
3465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
3475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Parameters       mcl_handle  - MCL handle
3485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
3495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
3505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          void
3515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
3525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
3535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectvoid BTA_HlDchAbort(tBTA_HL_MCL_HANDLE mcl_handle)
3545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
3555fe6f0cf6b223e3ed6be4912d55b3ed5b41ce0cdPavlin Radoslavov    tBTA_HL_API_DCH_ABORT *p_buf =
3565fe6f0cf6b223e3ed6be4912d55b3ed5b41ce0cdPavlin Radoslavov        (tBTA_HL_API_DCH_ABORT *)osi_malloc(sizeof(tBTA_HL_API_DCH_ABORT));
3575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
3585fe6f0cf6b223e3ed6be4912d55b3ed5b41ce0cdPavlin Radoslavov    p_buf->hdr.event = BTA_HL_API_DCH_ABORT_EVT;
3595fe6f0cf6b223e3ed6be4912d55b3ed5b41ce0cdPavlin Radoslavov    p_buf->mcl_handle = mcl_handle;
3605fe6f0cf6b223e3ed6be4912d55b3ed5b41ce0cdPavlin Radoslavov
3615fe6f0cf6b223e3ed6be4912d55b3ed5b41ce0cdPavlin Radoslavov    bta_sys_sendmsg(p_buf);
3625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project}
3635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
3645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
3655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
3665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         BTA_HlSendData
3675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
3685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      Send an APDU to the peer device
3695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
3705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Parameters       mdl_handle  - MDL handle
3715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  pkt_size    - size of the data packet to be sent
3725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
3735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          void
3745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
3755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
3765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectvoid BTA_HlSendData(tBTA_HL_MDL_HANDLE mdl_handle,
3775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                    UINT16           pkt_size)
3785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
3795fe6f0cf6b223e3ed6be4912d55b3ed5b41ce0cdPavlin Radoslavov    tBTA_HL_API_SEND_DATA *p_buf =
3805fe6f0cf6b223e3ed6be4912d55b3ed5b41ce0cdPavlin Radoslavov        (tBTA_HL_API_SEND_DATA *)osi_malloc(sizeof(tBTA_HL_API_SEND_DATA));
3815fe6f0cf6b223e3ed6be4912d55b3ed5b41ce0cdPavlin Radoslavov
3825fe6f0cf6b223e3ed6be4912d55b3ed5b41ce0cdPavlin Radoslavov    p_buf->hdr.event = BTA_HL_API_SEND_DATA_EVT;
3835fe6f0cf6b223e3ed6be4912d55b3ed5b41ce0cdPavlin Radoslavov    p_buf->mdl_handle = mdl_handle;
3845fe6f0cf6b223e3ed6be4912d55b3ed5b41ce0cdPavlin Radoslavov    p_buf->pkt_size = pkt_size;
3855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
3865fe6f0cf6b223e3ed6be4912d55b3ed5b41ce0cdPavlin Radoslavov    bta_sys_sendmsg(p_buf);
3875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project}
3885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
3895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
3905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
3915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         BTA_HlDeleteMdl
3925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
3935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      Delete the specified MDL_ID within the specified MCL handle
3945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
3955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Parameters       mcl_handle  - MCL handle
3965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  mdl_id      - MDL ID
3975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
3985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          void
3995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
4005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  note: If mdl_id = 0xFFFF then this means to delete all MDLs
4015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                        and this value can only be used with DeleteMdl request only
4025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                        not other requests
4035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
4045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
4055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectvoid BTA_HlDeleteMdl(tBTA_HL_MCL_HANDLE mcl_handle,
4065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                     tBTA_HL_MDL_ID mdl_id )
4075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
4085fe6f0cf6b223e3ed6be4912d55b3ed5b41ce0cdPavlin Radoslavov    tBTA_HL_API_DELETE_MDL *p_buf =
4095fe6f0cf6b223e3ed6be4912d55b3ed5b41ce0cdPavlin Radoslavov        (tBTA_HL_API_DELETE_MDL *)osi_malloc(sizeof(tBTA_HL_API_DELETE_MDL));
4105fe6f0cf6b223e3ed6be4912d55b3ed5b41ce0cdPavlin Radoslavov
4115fe6f0cf6b223e3ed6be4912d55b3ed5b41ce0cdPavlin Radoslavov    p_buf->hdr.event = BTA_HL_API_DELETE_MDL_EVT;
4125fe6f0cf6b223e3ed6be4912d55b3ed5b41ce0cdPavlin Radoslavov    p_buf->mcl_handle = mcl_handle;
4135fe6f0cf6b223e3ed6be4912d55b3ed5b41ce0cdPavlin Radoslavov    p_buf->mdl_id = mdl_id;
4145fe6f0cf6b223e3ed6be4912d55b3ed5b41ce0cdPavlin Radoslavov
4155fe6f0cf6b223e3ed6be4912d55b3ed5b41ce0cdPavlin Radoslavov    bta_sys_sendmsg(p_buf);
4165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project}
4175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
4185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
4195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
4205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         BTA_HlDchEchoTest
4215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
4225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      Initiate an echo test with the specified MCL handle
4235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
4245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Parameters       mcl_handle           - MCL handle
4255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*8                  p_echo_test_param   -  parameters for echo testing
4265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
4275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          void
4285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
4295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
4305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectvoid BTA_HlDchEchoTest( tBTA_HL_MCL_HANDLE  mcl_handle,
4315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                        tBTA_HL_DCH_ECHO_TEST_PARAM *p_echo_test_param)
4325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
4335fe6f0cf6b223e3ed6be4912d55b3ed5b41ce0cdPavlin Radoslavov    tBTA_HL_API_DCH_ECHO_TEST *p_buf =
4345fe6f0cf6b223e3ed6be4912d55b3ed5b41ce0cdPavlin Radoslavov        (tBTA_HL_API_DCH_ECHO_TEST *)osi_malloc(sizeof(tBTA_HL_API_DCH_ECHO_TEST));
4355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
4365fe6f0cf6b223e3ed6be4912d55b3ed5b41ce0cdPavlin Radoslavov    p_buf->hdr.event = BTA_HL_API_DCH_ECHO_TEST_EVT;
4375fe6f0cf6b223e3ed6be4912d55b3ed5b41ce0cdPavlin Radoslavov    p_buf->mcl_handle = mcl_handle;
4385fe6f0cf6b223e3ed6be4912d55b3ed5b41ce0cdPavlin Radoslavov    p_buf->ctrl_psm = p_echo_test_param->ctrl_psm;
4395fe6f0cf6b223e3ed6be4912d55b3ed5b41ce0cdPavlin Radoslavov    p_buf->local_cfg = p_echo_test_param->local_cfg;
4405fe6f0cf6b223e3ed6be4912d55b3ed5b41ce0cdPavlin Radoslavov    p_buf->pkt_size = p_echo_test_param->pkt_size;
4415fe6f0cf6b223e3ed6be4912d55b3ed5b41ce0cdPavlin Radoslavov
4425fe6f0cf6b223e3ed6be4912d55b3ed5b41ce0cdPavlin Radoslavov    bta_sys_sendmsg(p_buf);
4435fe6f0cf6b223e3ed6be4912d55b3ed5b41ce0cdPavlin Radoslavov}
4445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
4455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
4465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
4475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         BTA_HlSdpQuery
4485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
4495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      SDP query request for the specified BD address
4505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
4515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Parameters       app_handle      - application handle
4525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  bd_addr         - BD address
4535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
4545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          void
4555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
4565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
457f8f30c2cecf221b2c3983b72d5a849d799c39dd7Priti Agheravoid BTA_HlSdpQuery(UINT8  app_id,tBTA_HL_APP_HANDLE app_handle,
4585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                    BD_ADDR bd_addr)
4595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
4605fe6f0cf6b223e3ed6be4912d55b3ed5b41ce0cdPavlin Radoslavov    tBTA_HL_API_SDP_QUERY *p_buf =
4615fe6f0cf6b223e3ed6be4912d55b3ed5b41ce0cdPavlin Radoslavov        (tBTA_HL_API_SDP_QUERY *)osi_malloc(sizeof(tBTA_HL_API_SDP_QUERY));
4625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
4635fe6f0cf6b223e3ed6be4912d55b3ed5b41ce0cdPavlin Radoslavov    p_buf->hdr.event = BTA_HL_API_SDP_QUERY_EVT;
4645fe6f0cf6b223e3ed6be4912d55b3ed5b41ce0cdPavlin Radoslavov    p_buf->app_id = app_id;
4655fe6f0cf6b223e3ed6be4912d55b3ed5b41ce0cdPavlin Radoslavov    p_buf->app_handle = app_handle;
4665fe6f0cf6b223e3ed6be4912d55b3ed5b41ce0cdPavlin Radoslavov    bdcpy(p_buf->bd_addr, bd_addr);
4675fe6f0cf6b223e3ed6be4912d55b3ed5b41ce0cdPavlin Radoslavov
4685fe6f0cf6b223e3ed6be4912d55b3ed5b41ce0cdPavlin Radoslavov    bta_sys_sendmsg(p_buf);
4695fe6f0cf6b223e3ed6be4912d55b3ed5b41ce0cdPavlin Radoslavov}
4705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
4715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
4725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
4735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         BTA_HlDchCreateMdlRsp
4745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
4755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      Set the Response and configuration values for the Create MDL
4765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  request
4775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
4785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Parameters       mcl_handle  - MCL handle
4795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  p_rsp_param - parameters specified whether the request should
4805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                                be accepted or not and if it should be accepted
4815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                                then it also specified the configuration response
4825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                                value
4835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
4845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          void
4855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
4865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
4875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectvoid BTA_HlDchCreateRsp(tBTA_HL_MCL_HANDLE mcl_handle,
4885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                        tBTA_HL_DCH_CREATE_RSP_PARAM *p_rsp_param)
4895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
4905fe6f0cf6b223e3ed6be4912d55b3ed5b41ce0cdPavlin Radoslavov    tBTA_HL_API_DCH_CREATE_RSP *p_buf =
4915fe6f0cf6b223e3ed6be4912d55b3ed5b41ce0cdPavlin Radoslavov        (tBTA_HL_API_DCH_CREATE_RSP *)osi_malloc(sizeof(tBTA_HL_API_DCH_CREATE_RSP));
4925fe6f0cf6b223e3ed6be4912d55b3ed5b41ce0cdPavlin Radoslavov
4935fe6f0cf6b223e3ed6be4912d55b3ed5b41ce0cdPavlin Radoslavov    p_buf->hdr.event = BTA_HL_API_DCH_CREATE_RSP_EVT;
4945fe6f0cf6b223e3ed6be4912d55b3ed5b41ce0cdPavlin Radoslavov    p_buf->mcl_handle = mcl_handle;
4955fe6f0cf6b223e3ed6be4912d55b3ed5b41ce0cdPavlin Radoslavov    p_buf->mdl_id = p_rsp_param->mdl_id;
4965fe6f0cf6b223e3ed6be4912d55b3ed5b41ce0cdPavlin Radoslavov    p_buf->local_mdep_id = p_rsp_param->local_mdep_id;
4975fe6f0cf6b223e3ed6be4912d55b3ed5b41ce0cdPavlin Radoslavov    p_buf->rsp_code = p_rsp_param->rsp_code;
4985fe6f0cf6b223e3ed6be4912d55b3ed5b41ce0cdPavlin Radoslavov    p_buf->cfg_rsp = p_rsp_param->cfg_rsp;
4995fe6f0cf6b223e3ed6be4912d55b3ed5b41ce0cdPavlin Radoslavov
5005fe6f0cf6b223e3ed6be4912d55b3ed5b41ce0cdPavlin Radoslavov    bta_sys_sendmsg(p_buf);
5015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project}
5025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
5035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#endif /* HL_INCLUDED */
504