btm_api.h revision 3d6accfcc0bdc5c7a8713320c9bb069cbf253348
15738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************
25738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *
35738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *  Copyright (C) 1999-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 file contains the Bluetooth Manager (BTM) API function external
225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *  definitions.
235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *
245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project ******************************************************************************/
255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#ifndef BTM_API_H
265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_API_H
275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#include "bt_target.h"
295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#include "sdp_api.h"
305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#include "hcidefs.h"
315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#include "smp_api.h"
333d6accfcc0bdc5c7a8713320c9bb069cbf253348Bryce Lee
343d6accfcc0bdc5c7a8713320c9bb069cbf253348Bryce Lee#ifdef __cplusplus
353d6accfcc0bdc5c7a8713320c9bb069cbf253348Bryce Leeextern "C" {
363d6accfcc0bdc5c7a8713320c9bb069cbf253348Bryce Lee#endif
373d6accfcc0bdc5c7a8713320c9bb069cbf253348Bryce Lee
385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*****************************************************************************
395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**  DEVICE CONTROL and COMMON
405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*****************************************************************************/
415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*****************************
425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**  Device Control Constants
435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project******************************/
445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Maximum number of bytes allowed for vendor specific command parameters */
455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_MAX_VENDOR_SPECIFIC_LEN  HCI_COMMAND_SIZE
465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* BTM application return status codes */
485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectenum
495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BTM_SUCCESS = 0,                    /* 0  Command succeeded                 */
515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BTM_CMD_STARTED,                    /* 1  Command started OK.               */
525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BTM_BUSY,                           /* 2  Device busy with another command  */
535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BTM_NO_RESOURCES,                   /* 3  No resources to issue command     */
545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BTM_MODE_UNSUPPORTED,               /* 4  Request for 1 or more unsupported modes */
555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BTM_ILLEGAL_VALUE,                  /* 5  Illegal parameter value           */
565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BTM_WRONG_MODE,                     /* 6  Device in wrong mode for request  */
575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BTM_UNKNOWN_ADDR,                   /* 7  Unknown remote BD address         */
585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BTM_DEVICE_TIMEOUT,                 /* 8  Device timeout                    */
595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BTM_BAD_VALUE_RET,                  /* 9  A bad value was received from HCI */
605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BTM_ERR_PROCESSING,                 /* 10 Generic error                     */
615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BTM_NOT_AUTHORIZED,                 /* 11 Authorization failed              */
625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BTM_DEV_RESET,                      /* 12 Device has been reset             */
635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BTM_CMD_STORED,                     /* 13 request is stored in control block */
645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BTM_ILLEGAL_ACTION,                 /* 14 state machine gets illegal command */
655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BTM_DELAY_CHECK,                    /* 15 delay the check on encryption */
665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BTM_SCO_BAD_LENGTH,                 /* 16 Bad SCO over HCI data length */
675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BTM_SUCCESS_NO_SECURITY,            /* 17 security passed, no security set  */
68899b77140675a157dba034e98527ab546bc9ac35Mudumba Ananth    BTM_FAILED_ON_SECURITY,             /* 18 security failed                   */
69899b77140675a157dba034e98527ab546bc9ac35Mudumba Ananth    BTM_REPEATED_ATTEMPTS,              /* 19 repeated attempts for LE security requests */
70899b77140675a157dba034e98527ab546bc9ac35Mudumba Ananth    BTM_MODE4_LEVEL4_NOT_SUPPORTED      /* 20 Secure Connections Only Mode can't be supported */
715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project};
725725fc6d2c639a8c22a08b9b6629309eeda3715eSatya Calloji
735725fc6d2c639a8c22a08b9b6629309eeda3715eSatya Callojitypedef uint8_t tBTM_STATUS;
745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
757f3e42943b834ff0f556cd5c063a896f54d53167Matthew Xie#if (defined(BTA_HOST_INTERLEAVE_SEARCH) && BTA_HOST_INTERLEAVE_SEARCH == TRUE)
767f3e42943b834ff0f556cd5c063a896f54d53167Matthew Xietypedef enum
777f3e42943b834ff0f556cd5c063a896f54d53167Matthew Xie{
787f3e42943b834ff0f556cd5c063a896f54d53167Matthew Xie    BTM_BR_ONE,                         /*0 First state or BR/EDR scan 1*/
797f3e42943b834ff0f556cd5c063a896f54d53167Matthew Xie    BTM_BLE_ONE,                        /*1BLE scan 1*/
807f3e42943b834ff0f556cd5c063a896f54d53167Matthew Xie    BTM_BR_TWO,                         /*2 BR/EDR scan 2*/
817f3e42943b834ff0f556cd5c063a896f54d53167Matthew Xie    BTM_BLE_TWO,                        /*3 BLE scan 2*/
827f3e42943b834ff0f556cd5c063a896f54d53167Matthew Xie    BTM_FINISH,                         /*4 End of Interleave Scan, or normal scan*/
837f3e42943b834ff0f556cd5c063a896f54d53167Matthew Xie    BTM_NO_INTERLEAVING                 /*5 No Interleaving*/
847f3e42943b834ff0f556cd5c063a896f54d53167Matthew Xie}btm_inq_state;
857f3e42943b834ff0f556cd5c063a896f54d53167Matthew Xie#endif
867f3e42943b834ff0f556cd5c063a896f54d53167Matthew Xie
877f3e42943b834ff0f556cd5c063a896f54d53167Matthew Xie
887f3e42943b834ff0f556cd5c063a896f54d53167Matthew Xie
895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*************************
905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**  Device Control Types
915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**************************/
925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_DEVICE_ROLE_BR      0x01
935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_DEVICE_ROLE_DUAL    0x02
945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_MAX_DEVICE_ROLE     BTM_DEVICE_ROLE_DUAL
955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef UINT8 tBTM_DEVICE_ROLE;
965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Device name of peer (may be truncated to save space in BTM database) */
985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef UINT8 tBTM_BD_NAME[BTM_MAX_REM_BD_NAME_LEN + 1];
995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Structure returned with local version information */
1015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct
1025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
1035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8       hci_version;
1045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT16      hci_revision;
1055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8       lmp_version;
1065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT16      manufacturer;
1075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT16      lmp_subversion;
1085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTM_VERSION_INFO;
1095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Structure returned with Vendor Specific Command complete callback */
1115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct
1125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
1135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT16  opcode;
1145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT16  param_len;
1155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8   *p_param_buf;
1165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTM_VSC_CMPL;
1175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define  BTM_VSC_CMPL_DATA_SIZE  (BTM_MAX_VENDOR_SPECIFIC_LEN + sizeof(tBTM_VSC_CMPL))
1195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/**************************************************
1205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**  Device Control and General Callback Functions
1215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project***************************************************/
1225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Callback function for when device status changes. Appl must poll for
1235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** what the new state is (BTM_IsDeviceUp). The event occurs whenever the stack
1245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** has detected that the controller status has changed. This asynchronous event
1255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** is enabled/disabled by calling BTM_RegisterForDeviceStatusNotif().
1265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/
1275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectenum
1285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
1295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BTM_DEV_STATUS_UP,
1305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BTM_DEV_STATUS_DOWN,
1315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BTM_DEV_STATUS_CMD_TOUT
1325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project};
1335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef UINT8 tBTM_DEV_STATUS;
1355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef void (tBTM_DEV_STATUS_CB) (tBTM_DEV_STATUS status);
1385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Callback function for when a vendor specific event occurs. The length and
1415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** array of returned parameter bytes are included. This asynchronous event
1425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** is enabled/disabled by calling BTM_RegisterForVSEvents().
1435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/
1445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef void (tBTM_VS_EVT_CB) (UINT8 len, UINT8 *p);
1455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* General callback function for notifying an application that a synchronous
1485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** BTM function is complete. The pointer contains the address of any returned data.
1495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/
1505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef void (tBTM_CMPL_CB) (void *p1);
1515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* VSC callback function for notifying an application that a synchronous
1535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** BTM function is complete. The pointer contains the address of any returned data.
1545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/
1555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef void (tBTM_VSC_CMPL_CB) (tBTM_VSC_CMPL *p1);
1565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Callback for apps to check connection and inquiry filters.
1585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Parameters are the BD Address of remote and the Dev Class of remote.
1595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** If the app returns none zero, the connection or inquiry result will be dropped.
1605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/
1615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef UINT8 (tBTM_FILTER_CB) (BD_ADDR bd_addr, DEV_CLASS dc);
1625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*****************************************************************************
1645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**  DEVICE DISCOVERY - Inquiry, Remote Name, Discovery, Class of Device
1655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*****************************************************************************/
1665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************
1675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**  Device Discovery Constants
1685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project********************************/
1695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Discoverable modes */
1705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_NON_DISCOVERABLE        0
1715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_LIMITED_DISCOVERABLE    1
1725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_GENERAL_DISCOVERABLE    2
1735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_DISCOVERABLE_MASK       (BTM_LIMITED_DISCOVERABLE|BTM_GENERAL_DISCOVERABLE)
1745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_MAX_DISCOVERABLE        BTM_GENERAL_DISCOVERABLE
1755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* high byte for BLE Discoverable modes */
1765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_BLE_NON_DISCOVERABLE        0x0000
1775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_BLE_LIMITED_DISCOVERABLE    0x0100
1785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_BLE_GENERAL_DISCOVERABLE    0x0200
1795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_BLE_MAX_DISCOVERABLE        BTM_BLE_GENERAL_DISCOVERABLE
1805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_BLE_DISCOVERABLE_MASK       (BTM_BLE_NON_DISCOVERABLE|BTM_BLE_LIMITED_DISCOVERABLE|BTM_BLE_GENERAL_DISCOVERABLE)
1815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Connectable modes */
1835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_NON_CONNECTABLE         0
1845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_CONNECTABLE             1
1855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_CONNECTABLE_MASK        (BTM_NON_CONNECTABLE | BTM_CONNECTABLE)
1865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* high byte for BLE Connectable modes */
1875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_BLE_NON_CONNECTABLE      0x0000
1885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_BLE_CONNECTABLE          0x0100
1895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_BLE_MAX_CONNECTABLE      BTM_BLE_CONNECTABLE
1905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_BLE_CONNECTABLE_MASK    (BTM_BLE_NON_CONNECTABLE | BTM_BLE_CONNECTABLE)
1915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Inquiry modes
1935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * Note: These modes are associated with the inquiry active values (BTM_*ACTIVE) */
1943aa60544585b5fb0f35c1165539a4a859fc0f25cAndre Eisenbach#define BTM_INQUIRY_NONE            0
195ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta#define BTM_GENERAL_INQUIRY         0x01
196ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta#define BTM_LIMITED_INQUIRY         0x02
197ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta#define BTM_BR_INQUIRY_MASK         (BTM_GENERAL_INQUIRY | BTM_LIMITED_INQUIRY)
198ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta
1995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* high byte of inquiry mode for BLE inquiry mode */
2005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_BLE_INQUIRY_NONE         0x00
2015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_BLE_GENERAL_INQUIRY      0x10
2025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_BLE_LIMITED_INQUIRY      0x20
2035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_BLE_INQUIRY_MASK         (BTM_BLE_GENERAL_INQUIRY|BTM_BLE_LIMITED_INQUIRY)
2045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* BTM_IsInquiryActive return values (Bit Mask)
2065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * Note: These bit masks are associated with the inquiry modes (BTM_*_INQUIRY) */
2075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_INQUIRY_INACTIVE        0x0     /* no inquiry in progress */
2087fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define BTM_GENERAL_INQUIRY_ACTIVE  BTM_GENERAL_INQUIRY     /* a general inquiry is in progress */
2097fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define BTM_LIMITED_INQUIRY_ACTIVE  BTM_LIMITED_INQUIRY     /* a limited inquiry is in progress */
2105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_PERIODIC_INQUIRY_ACTIVE 0x8     /* a periodic inquiry is active */
2115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_SSP_INQUIRY_ACTIVE      0x4     /* SSP is active, so inquiry is disallowed (work around for FW bug) */
2127fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define BTM_LE_GENERAL_INQUIRY_ACTIVE  BTM_BLE_GENERAL_INQUIRY     /* a general inquiry is in progress */
2137fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define BTM_LE_LIMITED_INQUIRY_ACTIVE  BTM_BLE_LIMITED_INQUIRY      /* a limited inquiry is in progress */
214ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta
215ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta/* inquiry activity mask */
2167fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define BTM_BR_INQ_ACTIVE_MASK        (BTM_GENERAL_INQUIRY_ACTIVE|BTM_LIMITED_INQUIRY_ACTIVE|BTM_PERIODIC_INQUIRY_ACTIVE) /* BR/EDR inquiry activity mask */
2177fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define BTM_BLE_SCAN_ACTIVE_MASK      0xF0     /* LE scan activity mask */
2187fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define BTM_BLE_INQ_ACTIVE_MASK       (BTM_LE_GENERAL_INQUIRY_ACTIVE|BTM_LE_LIMITED_INQUIRY_ACTIVE) /* LE inquiry activity mask*/
2197fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define BTM_INQUIRY_ACTIVE_MASK       (BTM_BR_INQ_ACTIVE_MASK | BTM_BLE_INQ_ACTIVE_MASK) /* inquiry activity mask */
2205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Define scan types */
2225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_SCAN_TYPE_STANDARD      0
2235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_SCAN_TYPE_INTERLACED    1       /* 1.2 devices only */
2245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Define inquiry results mode */
2265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_INQ_RESULT_STANDARD     0
2275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_INQ_RESULT_WITH_RSSI    1
2285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_INQ_RESULT_EXTENDED     2
2295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_INQ_RES_IGNORE_RSSI     0x7f    /* RSSI value not supplied (ignore it) */
2315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Inquiry Filter Condition types (see tBTM_INQ_PARMS) */
2335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_CLR_INQUIRY_FILTER          0                   /* Inquiry Filtering is turned off */
2345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_FILTER_COND_DEVICE_CLASS    HCI_FILTER_COND_DEVICE_CLASS /* Filter on device class */
2355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_FILTER_COND_BD_ADDR         HCI_FILTER_COND_BD_ADDR /* Filter on device addr */
2365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* State of the remote name retrieval during inquiry operations.
2385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Used in the tBTM_INQ_INFO structure, and returned in the
2395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** BTM_InqDbRead, BTM_InqDbFirst, and BTM_InqDbNext functions.
2405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** The name field is valid when the state returned is
2415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** BTM_INQ_RMT_NAME_DONE */
2425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_INQ_RMT_NAME_EMPTY      0
2435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_INQ_RMT_NAME_PENDING    1
2445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_INQ_RMT_NAME_DONE       2
2455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_INQ_RMT_NAME_FAILED     3
2465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*********************************
2485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *** Class of Device constants ***
2495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *********************************/
2505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_FORMAT_TYPE_1   0x00
2515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/****************************
2535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** minor device class field
2545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*****************************/
2555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* 0x00 is used as unclassified for all minor device classes */
2575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_COD_MINOR_UNCLASSIFIED          0x00
2585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* minor device class field for Computer Major Class */
2605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* #define BTM_COD_MINOR_UNCLASSIFIED       0x00    */
2615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_COD_MINOR_DESKTOP_WORKSTATION   0x04
2625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_COD_MINOR_SERVER_COMPUTER       0x08
2635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_COD_MINOR_LAPTOP                0x0C
2645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_COD_MINOR_HANDHELD_PC_PDA       0x10    /* clam shell */
2655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_COD_MINOR_PALM_SIZE_PC_PDA      0x14
2665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_COD_MINOR_WEARABLE_COMPUTER     0x18    /* watch sized */
2675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* minor device class field for Phone Major Class */
2695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* #define BTM_COD_MINOR_UNCLASSIFIED       0x00    */
2705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_COD_MINOR_CELLULAR              0x04
2715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_COD_MINOR_CORDLESS              0x08
2725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_COD_MINOR_SMART_PHONE           0x0C
2735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_COD_MINOR_WIRED_MDM_V_GTWY      0x10 /* wired modem or voice gatway */
2745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_COD_MINOR_ISDN_ACCESS           0x14
2755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* minor device class field for LAN Access Point Major Class */
2775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Load Factor Field bit 5-7 */
2785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_COD_MINOR_FULLY_AVAILABLE       0x00
2795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_COD_MINOR_1_17_UTILIZED         0x20
2805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_COD_MINOR_17_33_UTILIZED        0x40
2815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_COD_MINOR_33_50_UTILIZED        0x60
2825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_COD_MINOR_50_67_UTILIZED        0x80
2835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_COD_MINOR_67_83_UTILIZED        0xA0
2845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_COD_MINOR_83_99_UTILIZED        0xC0
2855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_COD_MINOR_NO_SERVICE_AVAILABLE  0xE0
2865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* sub-Field bit 2-4 */
2875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* #define BTM_COD_MINOR_UNCLASSIFIED       0x00    */
2885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* minor device class field for Audio/Video Major Class */
2905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* #define BTM_COD_MINOR_UNCLASSIFIED       0x00    */
2915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_COD_MINOR_CONFM_HEADSET         0x04
2925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_COD_MINOR_CONFM_HANDSFREE       0x08
2935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_COD_MINOR_MICROPHONE            0x10
2945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_COD_MINOR_LOUDSPEAKER           0x14
2955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_COD_MINOR_HEADPHONES            0x18
2965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_COD_MINOR_PORTABLE_AUDIO        0x1C
2975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_COD_MINOR_CAR_AUDIO             0x20
2985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_COD_MINOR_SET_TOP_BOX           0x24
2995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_COD_MINOR_HIFI_AUDIO            0x28
3005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_COD_MINOR_VCR                   0x2C
3015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_COD_MINOR_VIDEO_CAMERA          0x30
3025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_COD_MINOR_CAMCORDER             0x34
3035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_COD_MINOR_VIDEO_MONITOR         0x38
3045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_COD_MINOR_VIDDISP_LDSPKR        0x3C
3055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_COD_MINOR_VIDEO_CONFERENCING    0x40
3065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_COD_MINOR_GAMING_TOY            0x48
3075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
3085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* minor device class field for Peripheral Major Class */
3095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Bits 6-7 independently specify mouse, keyboard, or combo mouse/keyboard */
3105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_COD_MINOR_KEYBOARD              0x40
3115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_COD_MINOR_POINTING              0x80
3125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_COD_MINOR_COMBO                 0xC0
3135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Bits 2-5 OR'd with selection from bits 6-7 */
3145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* #define BTM_COD_MINOR_UNCLASSIFIED       0x00    */
3155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_COD_MINOR_JOYSTICK              0x04
3165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_COD_MINOR_GAMEPAD               0x08
3175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_COD_MINOR_REMOTE_CONTROL        0x0C
3185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_COD_MINOR_SENSING_DEVICE        0x10
3195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_COD_MINOR_DIGITIZING_TABLET     0x14
3205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_COD_MINOR_CARD_READER           0x18    /* e.g. SIM card reader */
3215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_COD_MINOR_DIGITAL_PAN           0x1C
3225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_COD_MINOR_HAND_SCANNER          0x20
3235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_COD_MINOR_HAND_GESTURAL_INPUT   0x24
3245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
3255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* minor device class field for Imaging Major Class */
3265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Bits 5-7 independently specify display, camera, scanner, or printer */
3275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_COD_MINOR_DISPLAY               0x10
3285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_COD_MINOR_CAMERA                0x20
3295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_COD_MINOR_SCANNER               0x40
3305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_COD_MINOR_PRINTER               0x80
3315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Bits 2-3 Reserved */
3325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* #define BTM_COD_MINOR_UNCLASSIFIED       0x00    */
3335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
3345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* minor device class field for Wearable Major Class */
3355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Bits 2-7 meaningful    */
3365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_COD_MINOR_WRIST_WATCH           0x04
3375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_COD_MINOR_PAGER                 0x08
3385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_COD_MINOR_JACKET                0x0C
3395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_COD_MINOR_HELMET                0x10
3405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_COD_MINOR_GLASSES               0x14
3415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
3425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* minor device class field for Toy Major Class */
3435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Bits 2-7 meaningful    */
3445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_COD_MINOR_ROBOT                 0x04
3455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_COD_MINOR_VEHICLE               0x08
3465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_COD_MINOR_DOLL_ACTION_FIGURE    0x0C
3475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_COD_MINOR_CONTROLLER            0x10
3485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_COD_MINOR_GAME                  0x14
3495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
3505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* minor device class field for Health Major Class */
3515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Bits 2-7 meaningful    */
3525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_COD_MINOR_BLOOD_MONITOR         0x04
3535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_COD_MINOR_THERMOMETER           0x08
3545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_COD_MINOR_WEIGHING_SCALE        0x0C
3555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_COD_MINOR_GLUCOSE_METER         0x10
3565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_COD_MINOR_PULSE_OXIMETER        0x14
3575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_COD_MINOR_HEART_PULSE_MONITOR   0x18
3585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_COD_MINOR_HEALTH_DATA_DISPLAY   0x1C
3595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_COD_MINOR_STEP_COUNTER          0x20
3605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_COD_MINOR_BODY_COM_ANALYZER     0x24
3615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_COD_MINOR_PEAK_FLOW_MONITOR     0x28
3625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_COD_MINOR_MEDICATION_MONITOR    0x2C
3635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_COD_MINOR_KNEE_PROSTHESIS       0x30
3645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_COD_MINOR_ANKLE_PROSTHESIS      0x34
3655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
3665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
3675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/***************************
3685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** major device class field
3695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project****************************/
3705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_COD_MAJOR_MISCELLANEOUS         0x00
3715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_COD_MAJOR_COMPUTER              0x01
3725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_COD_MAJOR_PHONE                 0x02
3735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_COD_MAJOR_LAN_ACCESS_PT         0x03
3745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_COD_MAJOR_AUDIO                 0x04
3755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_COD_MAJOR_PERIPHERAL            0x05
3765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_COD_MAJOR_IMAGING               0x06
3775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_COD_MAJOR_WEARABLE              0x07
3785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_COD_MAJOR_TOY                   0x08
3795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_COD_MAJOR_HEALTH                0x09
3805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_COD_MAJOR_UNCLASSIFIED          0x1F
3815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
3825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/***************************
3835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** service class fields
3845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project****************************/
3855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_COD_SERVICE_LMTD_DISCOVER       0x0020
3865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_COD_SERVICE_POSITIONING         0x0100
3875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_COD_SERVICE_NETWORKING          0x0200
3885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_COD_SERVICE_RENDERING           0x0400
3895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_COD_SERVICE_CAPTURING           0x0800
3905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_COD_SERVICE_OBJ_TRANSFER        0x1000
3915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_COD_SERVICE_AUDIO               0x2000
3925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_COD_SERVICE_TELEPHONY           0x4000
3935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_COD_SERVICE_INFORMATION         0x8000
3945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
3955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* class of device field macros */
3965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_COD_FORMAT_TYPE(u8, pd)         {u8  = pd[2]&0x03;}
3975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_COD_MINOR_CLASS(u8, pd)         {u8  = pd[2]&0xFC;}
3985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_COD_MAJOR_CLASS(u8, pd)         {u8  = pd[1]&0x1F;}
3995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_COD_SERVICE_CLASS(u16, pd)      {u16 = pd[0]; u16<<=8; u16 += pd[1]&0xE0;}
4005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
4015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* to set the fields (assumes that format type is always 0) */
4025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define FIELDS_TO_COD(pd, mn, mj, sv) {pd[2] = mn; pd[1] =              \
4035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                       mj+ ((sv)&BTM_COD_SERVICE_CLASS_LO_B); \
4045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                       pd[0] = (sv) >> 8;}
4055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
4065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* the COD masks */
4075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_COD_FORMAT_TYPE_MASK      0x03
4085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_COD_MINOR_CLASS_MASK      0xFC
4095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_COD_MAJOR_CLASS_MASK      0x1F
4105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_COD_SERVICE_CLASS_LO_B    0x00E0
4115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_COD_SERVICE_CLASS_MASK    0xFFE0
4125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
4135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
4145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* BTM service definitions
4155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Used for storing EIR data to bit mask
4165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/
4175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectenum
4185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
4195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BTM_EIR_UUID_SERVCLASS_SERVICE_DISCOVERY_SERVER,
4205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*    BTM_EIR_UUID_SERVCLASS_BROWSE_GROUP_DESCRIPTOR,   */
4215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*    BTM_EIR_UUID_SERVCLASS_PUBLIC_BROWSE_GROUP,       */
4225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BTM_EIR_UUID_SERVCLASS_SERIAL_PORT,
4235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BTM_EIR_UUID_SERVCLASS_LAN_ACCESS_USING_PPP,
4245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BTM_EIR_UUID_SERVCLASS_DIALUP_NETWORKING,
4255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BTM_EIR_UUID_SERVCLASS_IRMC_SYNC,
4265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BTM_EIR_UUID_SERVCLASS_OBEX_OBJECT_PUSH,
4275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BTM_EIR_UUID_SERVCLASS_OBEX_FILE_TRANSFER,
4285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BTM_EIR_UUID_SERVCLASS_IRMC_SYNC_COMMAND,
4295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BTM_EIR_UUID_SERVCLASS_HEADSET,
4305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BTM_EIR_UUID_SERVCLASS_CORDLESS_TELEPHONY,
4315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BTM_EIR_UUID_SERVCLASS_AUDIO_SOURCE,
4325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BTM_EIR_UUID_SERVCLASS_AUDIO_SINK,
4335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BTM_EIR_UUID_SERVCLASS_AV_REM_CTRL_TARGET,
4345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*    BTM_EIR_UUID_SERVCLASS_ADV_AUDIO_DISTRIBUTION,    */
4355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BTM_EIR_UUID_SERVCLASS_AV_REMOTE_CONTROL,
4365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*    BTM_EIR_UUID_SERVCLASS_VIDEO_CONFERENCING,        */
4375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BTM_EIR_UUID_SERVCLASS_INTERCOM,
4385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BTM_EIR_UUID_SERVCLASS_FAX,
4395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BTM_EIR_UUID_SERVCLASS_HEADSET_AUDIO_GATEWAY,
4405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*    BTM_EIR_UUID_SERVCLASS_WAP,                       */
4415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*    BTM_EIR_UUID_SERVCLASS_WAP_CLIENT,                */
4425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BTM_EIR_UUID_SERVCLASS_PANU,
4435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BTM_EIR_UUID_SERVCLASS_NAP,
4445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BTM_EIR_UUID_SERVCLASS_GN,
4455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BTM_EIR_UUID_SERVCLASS_DIRECT_PRINTING,
4465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*    BTM_EIR_UUID_SERVCLASS_REFERENCE_PRINTING,        */
4475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BTM_EIR_UUID_SERVCLASS_IMAGING,
4485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BTM_EIR_UUID_SERVCLASS_IMAGING_RESPONDER,
4495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BTM_EIR_UUID_SERVCLASS_IMAGING_AUTO_ARCHIVE,
4505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BTM_EIR_UUID_SERVCLASS_IMAGING_REF_OBJECTS,
4515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BTM_EIR_UUID_SERVCLASS_HF_HANDSFREE,
4525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BTM_EIR_UUID_SERVCLASS_AG_HANDSFREE,
4535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BTM_EIR_UUID_SERVCLASS_DIR_PRT_REF_OBJ_SERVICE,
4545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*    BTM_EIR_UUID_SERVCLASS_REFLECTED_UI,              */
4555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BTM_EIR_UUID_SERVCLASS_BASIC_PRINTING,
4565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BTM_EIR_UUID_SERVCLASS_PRINTING_STATUS,
4575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BTM_EIR_UUID_SERVCLASS_HUMAN_INTERFACE,
4585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BTM_EIR_UUID_SERVCLASS_CABLE_REPLACEMENT,
4595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BTM_EIR_UUID_SERVCLASS_HCRP_PRINT,
4605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BTM_EIR_UUID_SERVCLASS_HCRP_SCAN,
4615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*    BTM_EIR_UUID_SERVCLASS_COMMON_ISDN_ACCESS,        */
4625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*    BTM_EIR_UUID_SERVCLASS_VIDEO_CONFERENCING_GW,     */
4635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*    BTM_EIR_UUID_SERVCLASS_UDI_MT,                    */
4645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*    BTM_EIR_UUID_SERVCLASS_UDI_TA,                    */
4655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*    BTM_EIR_UUID_SERVCLASS_VCP,                       */
4665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BTM_EIR_UUID_SERVCLASS_SAP,
4675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BTM_EIR_UUID_SERVCLASS_PBAP_PCE,
4685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BTM_EIR_UUID_SERVCLASS_PBAP_PSE,
4695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*    BTM_EIR_UUID_SERVCLASS_TE_PHONE_ACCESS,           */
4705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*    BTM_EIR_UUID_SERVCLASS_ME_PHONE_ACCESS,           */
4715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BTM_EIR_UUID_SERVCLASS_PHONE_ACCESS,
4725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BTM_EIR_UUID_SERVCLASS_HEADSET_HS,
4735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BTM_EIR_UUID_SERVCLASS_PNP_INFORMATION,
4745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*    BTM_EIR_UUID_SERVCLASS_GENERIC_NETWORKING,        */
4755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*    BTM_EIR_UUID_SERVCLASS_GENERIC_FILETRANSFER,      */
4765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*    BTM_EIR_UUID_SERVCLASS_GENERIC_AUDIO,             */
4775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*    BTM_EIR_UUID_SERVCLASS_GENERIC_TELEPHONY,         */
4785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*    BTM_EIR_UUID_SERVCLASS_UPNP_SERVICE,              */
4795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*    BTM_EIR_UUID_SERVCLASS_UPNP_IP_SERVICE,           */
4805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*    BTM_EIR_UUID_SERVCLASS_ESDP_UPNP_IP_PAN,          */
4815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*    BTM_EIR_UUID_SERVCLASS_ESDP_UPNP_IP_LAP,          */
4825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*    BTM_EIR_UUID_SERVCLASS_ESDP_UPNP_IP_L2CAP,        */
4835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BTM_EIR_UUID_SERVCLASS_VIDEO_SOURCE,
4845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BTM_EIR_UUID_SERVCLASS_VIDEO_SINK,
4855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*    BTM_EIR_UUID_SERVCLASS_VIDEO_DISTRIBUTION         */
4865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*    BTM_EIR_UUID_SERVCLASS_HDP_PROFILE                */
4875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BTM_EIR_UUID_SERVCLASS_MESSAGE_ACCESS,
4885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BTM_EIR_UUID_SERVCLASS_MESSAGE_NOTIFICATION,
4895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BTM_EIR_UUID_SERVCLASS_HDP_SOURCE,
4905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BTM_EIR_UUID_SERVCLASS_HDP_SINK,
4915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BTM_EIR_MAX_SERVICES
4925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project};
4935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
4945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* search result in EIR of inquiry database */
4955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_EIR_FOUND           0
4965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_EIR_NOT_FOUND       1
4975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_EIR_UNKNOWN         2
4985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
4995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef UINT8 tBTM_EIR_SEARCH_RESULT;
5005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
5015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_EIR_FLAGS_TYPE                  HCI_EIR_FLAGS_TYPE                  /* 0x01 */
5025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_EIR_MORE_16BITS_UUID_TYPE       HCI_EIR_MORE_16BITS_UUID_TYPE       /* 0x02 */
5035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_EIR_COMPLETE_16BITS_UUID_TYPE   HCI_EIR_COMPLETE_16BITS_UUID_TYPE   /* 0x03 */
5045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_EIR_MORE_32BITS_UUID_TYPE       HCI_EIR_MORE_32BITS_UUID_TYPE       /* 0x04 */
5055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_EIR_COMPLETE_32BITS_UUID_TYPE   HCI_EIR_COMPLETE_32BITS_UUID_TYPE   /* 0x05 */
5065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_EIR_MORE_128BITS_UUID_TYPE      HCI_EIR_MORE_128BITS_UUID_TYPE      /* 0x06 */
5075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_EIR_COMPLETE_128BITS_UUID_TYPE  HCI_EIR_COMPLETE_128BITS_UUID_TYPE  /* 0x07 */
5085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_EIR_SHORTENED_LOCAL_NAME_TYPE   HCI_EIR_SHORTENED_LOCAL_NAME_TYPE   /* 0x08 */
5095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_EIR_COMPLETE_LOCAL_NAME_TYPE    HCI_EIR_COMPLETE_LOCAL_NAME_TYPE    /* 0x09 */
5105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_EIR_TX_POWER_LEVEL_TYPE         HCI_EIR_TX_POWER_LEVEL_TYPE         /* 0x0A */
5115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_EIR_MANUFACTURER_SPECIFIC_TYPE  HCI_EIR_MANUFACTURER_SPECIFIC_TYPE  /* 0xFF */
5125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
5135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* the following EIR tags are defined to OOB, not regular EIR data */
5145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_EIR_OOB_BD_ADDR_TYPE            HCI_EIR_OOB_BD_ADDR_TYPE    /* 6 bytes */
5155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_EIR_OOB_COD_TYPE                HCI_EIR_OOB_COD_TYPE        /* 3 bytes */
5165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_EIR_OOB_SSP_HASH_C_TYPE         HCI_EIR_OOB_SSP_HASH_C_TYPE /* 16 bytes */
5175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_EIR_OOB_SSP_RAND_R_TYPE         HCI_EIR_OOB_SSP_RAND_R_TYPE /* 16 bytes */
5185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
5195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_OOB_MANDATORY_SIZE      8   /* include 2 bytes length & 6 bytes bd_addr */
5205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_OOB_DATA_LEN_SIZE       2
5215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_OOB_BD_ADDR_SIZE        6
5225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_OOB_COD_SIZE            BT_OOB_COD_SIZE
5235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_OOB_HASH_C_SIZE         BT_OOB_HASH_C_SIZE
5245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_OOB_RAND_R_SIZE         BT_OOB_RAND_R_SIZE
5255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
5265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_BLE_SEC_NONE                0
5275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_BLE_SEC_ENCRYPT             1 /* encrypt the link using current key */
5285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_BLE_SEC_ENCRYPT_NO_MITM     2
5295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_BLE_SEC_ENCRYPT_MITM        3
5305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef UINT8   tBTM_BLE_SEC_ACT;
531f40b136e7b943d7e25224817fc47bb5b171479d5Andre Eisenbach
5325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/************************************************************************************************
5335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** BTM Services MACROS handle array of UINT32 bits for more than 32 services
5345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*************************************************************************************************/
5355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Determine the number of UINT32's necessary for services */
5365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_EIR_ARRAY_BITS          32          /* Number of bits in each array element */
5375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_EIR_SERVICE_ARRAY_SIZE  (((UINT32)BTM_EIR_MAX_SERVICES / BTM_EIR_ARRAY_BITS) + \
5385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                    (((UINT32)BTM_EIR_MAX_SERVICES % BTM_EIR_ARRAY_BITS) ? 1 : 0))
5395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
5405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* MACRO to set the service bit mask in a bit stream */
5415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_EIR_SET_SERVICE(p, service)  (((UINT32 *)(p))[(((UINT32)(service)) / BTM_EIR_ARRAY_BITS)] |=  \
5425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                    ((UINT32)1 << (((UINT32)(service)) % BTM_EIR_ARRAY_BITS)))
5435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
5445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
5455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* MACRO to clear the service bit mask in a bit stream */
5465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_EIR_CLR_SERVICE(p, service)  (((UINT32 *)(p))[(((UINT32)(service)) / BTM_EIR_ARRAY_BITS)] &=  \
5475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                    ~((UINT32)1 << (((UINT32)(service)) % BTM_EIR_ARRAY_BITS)))
5485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
5495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* MACRO to check the service bit mask in a bit stream */
5505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_EIR_HAS_SERVICE(p, service)  ((((UINT32 *)(p))[(((UINT32)(service)) / BTM_EIR_ARRAY_BITS)] &  \
5515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                    ((UINT32)1 << (((UINT32)(service)) % BTM_EIR_ARRAY_BITS))) >> (((UINT32)(service)) % BTM_EIR_ARRAY_BITS))
5525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
5535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* start of EIR in HCI buffer, 4 bytes = HCI Command(2) + Length(1) + FEC_Req(1) */
5545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_HCI_EIR_OFFSET          (BT_HDR_SIZE + 4)
5555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
5565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/***************************
5575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**  Device Discovery Types
5585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project****************************/
5595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Definitions of the parameters passed to BTM_StartInquiry and
5605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** BTM_SetPeriodicInquiryMode.
5615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/
5625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct              /* contains the two device class condition fields */
5635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
5645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    DEV_CLASS       dev_class;
5655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    DEV_CLASS       dev_class_mask;
5665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTM_COD_COND;
5675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
5685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
5695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef union               /* contains the inquiry filter condition */
5705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
5715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BD_ADDR         bdaddr_cond;
5725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTM_COD_COND   cod_cond;
5735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTM_INQ_FILT_COND;
5745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
5755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
5765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct              /* contains the parameters passed to the inquiry functions */
5775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
5785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8   mode;                       /* general or limited */
5795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8   duration;                   /* duration of the inquiry (1.28 sec increments) */
5805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8   max_resps;                  /* maximum number of responses to return */
5815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BOOLEAN report_dup;                 /* report duplicated inquiry response with higher RSSI value */
5825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8   filter_cond_type;           /* new devices, BD ADDR, COD, or No filtering */
5835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTM_INQ_FILT_COND  filter_cond;    /* filter value based on filter cond type */
5847f3e42943b834ff0f556cd5c063a896f54d53167Matthew Xie#if (defined(BTA_HOST_INTERLEAVE_SEARCH) && BTA_HOST_INTERLEAVE_SEARCH == TRUE)
5857f3e42943b834ff0f556cd5c063a896f54d53167Matthew Xie    UINT8   intl_duration[4];              /*duration array storing the interleave scan's time portions*/
5867f3e42943b834ff0f556cd5c063a896f54d53167Matthew Xie#endif
5875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTM_INQ_PARMS;
5885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
5895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_INQ_RESULT_BR       0x01
5905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_INQ_RESULT_BLE      0x02
5915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
5925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#if (BLE_INCLUDED == TRUE)
5935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_BLE_EVT_CONN_ADV        0x00
5945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_BLE_EVT_CONN_DIR_ADV    0x01
5955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_BLE_EVT_DISC_ADV        0x02
5965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_BLE_EVT_NON_CONN_ADV    0x03
5975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_BLE_EVT_SCAN_RSP        0x04
5985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef UINT8 tBTM_BLE_EVT_TYPE;
5995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#endif
6005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
6015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* These are the fields returned in each device's response to the inquiry.  It
6025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** is returned in the results callback if registered.
6035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/
6045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct
6055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
6065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT16      clock_offset;
6075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BD_ADDR     remote_bd_addr;
6085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    DEV_CLASS   dev_class;
6095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8       page_scan_rep_mode;
6105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8       page_scan_per_mode;
6115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8       page_scan_mode;
6125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    INT8        rssi;       /* Set to BTM_INQ_RES_IGNORE_RSSI if  not valid */
6135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT32      eir_uuid[BTM_EIR_SERVICE_ARRAY_SIZE];
6145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BOOLEAN     eir_complete_list;
6155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#if (BLE_INCLUDED == TRUE)
6165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBT_DEVICE_TYPE         device_type;
6175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8       inq_result_type;
6185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8       ble_addr_type;
6195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTM_BLE_EVT_TYPE       ble_evt_type;
6205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8                   flag;
6215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#endif
6225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTM_INQ_RESULTS;
6235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
6245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
6255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* This is the inquiry response information held in its database by BTM, and available
6265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** to applications via BTM_InqDbRead, BTM_InqDbFirst, and BTM_InqDbNext.
6275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/
6285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct
6295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
6305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTM_INQ_RESULTS    results;
6315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
6325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BOOLEAN             appl_knows_rem_name;    /* set by application if it knows the remote name of the peer device.
6335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                                   This is later used by application to determine if remote name request is
6345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                                   required to be done. Having the flag here avoid duplicate store of inquiry results */
63576356aee883af67898ddc1aa3b628195f396d42aVenkatRaghavan VijayaRaghavan#if ( BLE_INCLUDED == TRUE)
63676356aee883af67898ddc1aa3b628195f396d42aVenkatRaghavan VijayaRaghavan    UINT16          remote_name_len;
63776356aee883af67898ddc1aa3b628195f396d42aVenkatRaghavan VijayaRaghavan    tBTM_BD_NAME    remote_name;
63876356aee883af67898ddc1aa3b628195f396d42aVenkatRaghavan VijayaRaghavan    UINT8           remote_name_state;
63976356aee883af67898ddc1aa3b628195f396d42aVenkatRaghavan VijayaRaghavan    UINT8           remote_name_type;
64076356aee883af67898ddc1aa3b628195f396d42aVenkatRaghavan VijayaRaghavan#endif
64176356aee883af67898ddc1aa3b628195f396d42aVenkatRaghavan VijayaRaghavan
6425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTM_INQ_INFO;
6435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
6445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
6455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Structure returned with inquiry complete callback */
6465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct
6475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
6485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTM_STATUS status;
6495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8       num_resp;       /* Number of results from the current inquiry */
6505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTM_INQUIRY_CMPL;
6515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
6525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
6535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Structure returned with remote name  request */
6545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct
6555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
6565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT16      status;
6577fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta    BD_ADDR     bd_addr;
6585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT16      length;
6595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BD_NAME     remote_bd_name;
6605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTM_REMOTE_DEV_NAME;
6615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
6625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct
6635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
6645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8   pcm_intf_rate;  /* PCM interface rate: 0: 128kbps, 1: 256 kbps;
6655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                2:512 bps; 3: 1024kbps; 4: 2048kbps */
6665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8   frame_type;     /* frame type: 0: short; 1: long */
6675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8   sync_mode;      /* sync mode: 0: slave; 1: master */
6685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8   clock_mode;     /* clock mode: 0: slave; 1: master */
6695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
6705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project}tBTM_SCO_PCM_PARAM;
6715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
6725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/****************************************
6735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**  Device Discovery Callback Functions
6745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*****************************************/
6755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Callback function for asynchronous notifications when the BTM inquiry DB
6765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** changes. First param is inquiry database, second is if added to or removed
6775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** from the inquiry database.
6785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/
6795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef void (tBTM_INQ_DB_CHANGE_CB) (void *p1, BOOLEAN is_new);
6805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
6815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Callback function for notifications when the BTM gets inquiry response.
6825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** First param is inquiry results database, second is pointer of EIR.
6835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/
6845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef void (tBTM_INQ_RESULTS_CB) (tBTM_INQ_RESULTS *p_inq_results, UINT8 *p_eir);
6855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
6865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*****************************************************************************
6875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**  ACL CHANNEL MANAGEMENT
6885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*****************************************************************************/
6895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************
6905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**  ACL Constants
6915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************/
6925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
6935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* ACL modes */
6945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_ACL_MODE_NORMAL     HCI_MODE_ACTIVE
6955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_ACL_MODE_HOLD       HCI_MODE_HOLD
6965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_ACL_MODE_SNIFF      HCI_MODE_SNIFF
6975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_ACL_MODE_PARK       HCI_MODE_PARK
6985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
6995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Returned with structure in role switch callback (tBTM_ROLE_SWITCH_CMPL) */
7005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_ROLE_MASTER         HCI_ROLE_MASTER
7015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_ROLE_SLAVE          HCI_ROLE_SLAVE
7025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_ROLE_UNDEFINED      0xff     /* undefined value (error status) */
7035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
7045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* ACL Packet Types */
7055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_ACL_PKT_TYPES_MASK_DM1      HCI_PKT_TYPES_MASK_DM1
7065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_ACL_PKT_TYPES_MASK_DH1      HCI_PKT_TYPES_MASK_DH1
7075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_ACL_PKT_TYPES_MASK_DM3      HCI_PKT_TYPES_MASK_DM3
7085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_ACL_PKT_TYPES_MASK_DH3      HCI_PKT_TYPES_MASK_DH3
7095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_ACL_PKT_TYPES_MASK_DM5      HCI_PKT_TYPES_MASK_DM5
7105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_ACL_PKT_TYPES_MASK_DH5      HCI_PKT_TYPES_MASK_DH5
7115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_ACL_PKT_TYPES_MASK_NO_2_DH1 HCI_PKT_TYPES_MASK_NO_2_DH1
7125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_ACL_PKT_TYPES_MASK_NO_3_DH1 HCI_PKT_TYPES_MASK_NO_3_DH1
7135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_ACL_PKT_TYPES_MASK_NO_2_DH3 HCI_PKT_TYPES_MASK_NO_2_DH3
7145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_ACL_PKT_TYPES_MASK_NO_3_DH3 HCI_PKT_TYPES_MASK_NO_3_DH3
7155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_ACL_PKT_TYPES_MASK_NO_2_DH5 HCI_PKT_TYPES_MASK_NO_2_DH5
7165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_ACL_PKT_TYPES_MASK_NO_3_DH5 HCI_PKT_TYPES_MASK_NO_3_DH5
7175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
7185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/***************
7195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**  ACL Types
7205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project****************/
7215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
7225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Structure returned with Role Switch information (in tBTM_CMPL_CB callback function)
7235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** in response to BTM_SwitchRole call.
7245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/
7255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct
7265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
7275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8   hci_status;     /* HCI status returned with the event */
7285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8   role;           /* BTM_ROLE_MASTER or BTM_ROLE_SLAVE */
7295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BD_ADDR remote_bd_addr; /* Remote BD addr involved with the switch */
7305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTM_ROLE_SWITCH_CMPL;
7315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
7325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Structure returned with QoS information (in tBTM_CMPL_CB callback function)
7335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** in response to BTM_SetQoS call.
7345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/
7355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct
7365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
7375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    FLOW_SPEC flow;
7385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT16 handle;
7395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8 status;
7405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTM_QOS_SETUP_CMPL;
7415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
7425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
7435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Structure returned with read RSSI event (in tBTM_CMPL_CB callback function)
7445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** in response to BTM_ReadRSSI call.
7455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/
7465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct
7475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
7485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTM_STATUS status;
7495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8       hci_status;
7505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    INT8        rssi;
7515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BD_ADDR     rem_bda;
7525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTM_RSSI_RESULTS;
7535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
7545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Structure returned with read current TX power event (in tBTM_CMPL_CB callback function)
7555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** in response to BTM_ReadTxPower call.
7565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/
7575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct
7585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
7595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTM_STATUS status;
7605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8       hci_status;
7615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    INT8        tx_power;
7625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BD_ADDR     rem_bda;
7635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTM_TX_POWER_RESULTS;
7645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
7655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Structure returned with read link quality event (in tBTM_CMPL_CB callback function)
7665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** in response to BTM_ReadLinkQuality call.
7675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/
7685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct
7695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
7705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTM_STATUS status;
7715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8       hci_status;
7725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8       link_quality;
7735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BD_ADDR     rem_bda;
7745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTM_LINK_QUALITY_RESULTS;
7755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
7765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Structure returned with read inq tx power quality event (in tBTM_CMPL_CB callback function)
7775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** in response to BTM_ReadInquiryRspTxPower call.
7785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/
7795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct
7805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
7815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTM_STATUS status;
7825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8       hci_status;
7835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    INT8        tx_power;
7845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTM_INQ_TXPWR_RESULTS;
7855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
7865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectenum
7875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
7885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BTM_BL_CONN_EVT,
7895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BTM_BL_DISCN_EVT,
7905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BTM_BL_UPDATE_EVT,
7915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BTM_BL_ROLE_CHG_EVT,
7925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BTM_BL_COLLISION_EVT
7935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project};
7945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef UINT8 tBTM_BL_EVENT;
7955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef UINT16 tBTM_BL_EVENT_MASK;
7965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
7975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_BL_CONN_MASK        0x0001
7985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_BL_DISCN_MASK       0x0002
7995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_BL_UPDATE_MASK      0x0004
8005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_BL_ROLE_CHG_MASK    0x0008
8015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
8023aa60544585b5fb0f35c1165539a4a859fc0f25cAndre Eisenbach/* Device features mask definitions */
8033aa60544585b5fb0f35c1165539a4a859fc0f25cAndre Eisenbach#define BTM_FEATURE_BYTES_PER_PAGE  HCI_FEATURE_BYTES_PER_PAGE
8043aa60544585b5fb0f35c1165539a4a859fc0f25cAndre Eisenbach#define BTM_EXT_FEATURES_PAGE_MAX   HCI_EXT_FEATURES_PAGE_MAX
8053aa60544585b5fb0f35c1165539a4a859fc0f25cAndre Eisenbach
8065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* the data type associated with BTM_BL_CONN_EVT */
8075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct
8085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
8095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTM_BL_EVENT   event;      /* The event reported. */
8105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BD_ADDR_PTR     p_bda;      /* The address of the newly connected device */
8115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    DEV_CLASS_PTR   p_dc;       /* The device class */
8125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BD_NAME_PTR     p_bdn;      /* The device name */
8133aa60544585b5fb0f35c1165539a4a859fc0f25cAndre Eisenbach    UINT8          *p_features; /* pointer to the remote device's features page[0] (supported features page) */
8147fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#if BLE_INCLUDED == TRUE
8157fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta    UINT16          handle;     /* connection handle */
8167fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta    tBT_TRANSPORT   transport; /* link is LE or not */
8177fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#endif
8185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTM_BL_CONN_DATA;
8195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
8205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* the data type associated with BTM_BL_DISCN_EVT */
8215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct
8225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
8235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTM_BL_EVENT   event;  /* The event reported. */
8245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BD_ADDR_PTR     p_bda;  /* The address of the disconnected device */
8257fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#if BLE_INCLUDED == TRUE
8267fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta    UINT16          handle; /* disconnected connection handle */
8277fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta    tBT_TRANSPORT   transport; /* link is LE link or not */
8287fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#endif
8295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTM_BL_DISCN_DATA;
8305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
8315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Busy-Level shall have the inquiry_paging mask set when
8325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * inquiry/paging is in progress, Else the number of ACL links */
8335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_BL_INQUIRY_PAGING_MASK 0x10
8345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_BL_INQUIRY_STARTED   (BTM_BL_INQUIRY_PAGING_MASK | 0x1)
8355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_BL_INQUIRY_CANCELLED (BTM_BL_INQUIRY_PAGING_MASK | 0x2)
8365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_BL_INQUIRY_COMPLETE  (BTM_BL_INQUIRY_PAGING_MASK | 0x3)
8375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_BL_PAGING_STARTED    (BTM_BL_INQUIRY_PAGING_MASK | 0x4)
8385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_BL_PAGING_COMPLETE   (BTM_BL_INQUIRY_PAGING_MASK | 0x5)
8395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* the data type associated with BTM_BL_UPDATE_EVT */
8405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct
8415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
8425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTM_BL_EVENT   event;  /* The event reported. */
843ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta    UINT8           busy_level;/* when paging or inquiring, level is 10.
8445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                * Otherwise, the number of ACL links. */
845ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta    UINT8           busy_level_flags; /* Notifies actual inquiry/page activities */
8465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTM_BL_UPDATE_DATA;
8475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
8485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* the data type associated with BTM_BL_ROLE_CHG_EVT */
8495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct
8505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
8515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTM_BL_EVENT   event;      /* The event reported. */
8525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BD_ADDR_PTR     p_bda;      /* The address of the peer connected device */
8535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8           new_role;
8545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8           hci_status; /* HCI status returned with the event */
8555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTM_BL_ROLE_CHG_DATA;
8565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
8575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef union
8585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
8595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTM_BL_EVENT           event;  /* The event reported. */
8605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTM_BL_CONN_DATA       conn;   /* The data associated with BTM_BL_CONN_EVT */
8615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTM_BL_DISCN_DATA      discn;  /* The data associated with BTM_BL_DISCN_EVT */
8625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTM_BL_UPDATE_DATA     update; /* The data associated with BTM_BL_UPDATE_EVT */
8635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTM_BL_ROLE_CHG_DATA   role_chg;/*The data associated with BTM_BL_ROLE_CHG_EVT */
8645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTM_BL_EVENT_DATA;
8655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
8665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Callback function for notifications when the BTM busy level
8675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** changes.
8685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/
8695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef void (tBTM_BL_CHANGE_CB) (tBTM_BL_EVENT_DATA *p_data);
8705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
8715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/***************************
8725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**  ACL Callback Functions
8735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project****************************/
8745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Callback function for notifications when the BTM ACL connection DB
8755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** changes. First param is BD address, second is if added or removed.
8765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Registered through BTM_AclRegisterForChanges call.
8775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/
8787fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#if BLE_INCLUDED == TRUE
8797fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Battatypedef void (tBTM_ACL_DB_CHANGE_CB) (BD_ADDR p_bda, DEV_CLASS p_dc,
8807fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta                                      BD_NAME p_bdn, UINT8 *features,
8817fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta                                      BOOLEAN is_new, UINT16 handle,
8827fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta                                      tBT_TRANSPORT transport);
8837fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#else
8845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef void (tBTM_ACL_DB_CHANGE_CB) (BD_ADDR p_bda, DEV_CLASS p_dc,
8853aa60544585b5fb0f35c1165539a4a859fc0f25cAndre Eisenbach                                      BD_NAME p_bdn, UINT8 *features,
8865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                      BOOLEAN is_new);
8877fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#endif
8885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*****************************************************************************
8895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**  SCO CHANNEL MANAGEMENT
8905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*****************************************************************************/
8915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************
8925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**  SCO Constants
8935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************/
8945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
8955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Define an invalid SCO index and an invalid HCI handle */
8965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_INVALID_SCO_INDEX       0xFFFF
8975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_INVALID_HCI_HANDLE      0xFFFF
8985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
8995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Define an invalid SCO disconnect reason */
9005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_INVALID_SCO_DISC_REASON 0xFFFF
9015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
902ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta/* Define first active SCO index */
903ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta#define BTM_FIRST_ACTIVE_SCO_INDEX  BTM_MAX_SCO_LINKS
904ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta
9055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Define SCO packet types used in APIs */
9065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_SCO_PKT_TYPES_MASK_HV1  HCI_ESCO_PKT_TYPES_MASK_HV1
9075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_SCO_PKT_TYPES_MASK_HV2  HCI_ESCO_PKT_TYPES_MASK_HV2
9085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_SCO_PKT_TYPES_MASK_HV3  HCI_ESCO_PKT_TYPES_MASK_HV3
9095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_SCO_PKT_TYPES_MASK_EV3  HCI_ESCO_PKT_TYPES_MASK_EV3
9105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_SCO_PKT_TYPES_MASK_EV4  HCI_ESCO_PKT_TYPES_MASK_EV4
9115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_SCO_PKT_TYPES_MASK_EV5  HCI_ESCO_PKT_TYPES_MASK_EV5
9125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_SCO_PKT_TYPES_MASK_NO_2_EV3  HCI_ESCO_PKT_TYPES_MASK_NO_2_EV3
9135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_SCO_PKT_TYPES_MASK_NO_3_EV3  HCI_ESCO_PKT_TYPES_MASK_NO_3_EV3
9145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_SCO_PKT_TYPES_MASK_NO_2_EV5  HCI_ESCO_PKT_TYPES_MASK_NO_2_EV5
9155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_SCO_PKT_TYPES_MASK_NO_3_EV5  HCI_ESCO_PKT_TYPES_MASK_NO_3_EV5
9165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
9175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_SCO_LINK_ONLY_MASK  (BTM_SCO_PKT_TYPES_MASK_HV1 | \
9185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                 BTM_SCO_PKT_TYPES_MASK_HV2 | \
9195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                 BTM_SCO_PKT_TYPES_MASK_HV3)
9205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
9215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_ESCO_LINK_ONLY_MASK (BTM_SCO_PKT_TYPES_MASK_EV3 | \
9225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                 BTM_SCO_PKT_TYPES_MASK_EV4 | \
9235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                 BTM_SCO_PKT_TYPES_MASK_EV5)
9245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
9255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_SCO_LINK_ALL_PKT_MASK   (BTM_SCO_LINK_ONLY_MASK     | \
9265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                     BTM_ESCO_LINK_ONLY_MASK)
9275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
9285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_VALID_SCO_ALL_PKT_TYPE HCI_VALID_SCO_ALL_PKT_TYPE
9295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
9305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Passed in BTM_CreateSco if the packet type parameter should be ignored */
9315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_IGNORE_SCO_PKT_TYPE     0
9325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
9335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/***************
9345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**  SCO Types
9355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project****************/
9365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_LINK_TYPE_SCO           HCI_LINK_TYPE_SCO
9375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_LINK_TYPE_ESCO          HCI_LINK_TYPE_ESCO
9385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef UINT8 tBTM_SCO_TYPE;
9395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
9405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
9415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************
9425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** SCO Routing Path
9435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project********************/
9445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_SCO_ROUTE_PCM           HCI_BRCM_SCO_ROUTE_PCM
9455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_SCO_ROUTE_HCI           HCI_BRCM_SCO_ROUTE_HCI
9465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef UINT8 tBTM_SCO_ROUTE_TYPE;
9475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
9485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
9495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************
9505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** SCO Codec Types
9515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project********************/
9526afb248849399cfba59fb1e683a06e31d88e5d1dMudumba Ananth// TODO(google) This should use common definitions
9536afb248849399cfba59fb1e683a06e31d88e5d1dMudumba Ananth// in hci/include/hci_audio.h
9545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_SCO_CODEC_NONE          0x0000
9555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_SCO_CODEC_CVSD          0x0001
9565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_SCO_CODEC_MSBC          0x0002
9575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef UINT16 tBTM_SCO_CODEC_TYPE;
9585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
959ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta
960ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta
961ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta/*******************
962ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta** SCO Air Mode Types
963ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta********************/
964ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta#define BTM_SCO_AIR_MODE_U_LAW          0
965ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta#define BTM_SCO_AIR_MODE_A_LAW          1
966ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta#define BTM_SCO_AIR_MODE_CVSD           2
967ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta#define BTM_SCO_AIR_MODE_TRANSPNT       3
968ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Battatypedef UINT8 tBTM_SCO_AIR_MODE_TYPE;
969ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta
9705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************
9715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** SCO Voice Settings
9725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project********************/
9735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_VOICE_SETTING_CVSD  ((UINT16)  (HCI_INP_CODING_LINEAR          |   \
9745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                            HCI_INP_DATA_FMT_2S_COMPLEMENT |   \
9755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                            HCI_INP_SAMPLE_SIZE_16BIT      |   \
9765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                            HCI_AIR_CODING_FORMAT_CVSD))
9775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
9785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_VOICE_SETTING_TRANS ((UINT16)  (HCI_INP_CODING_LINEAR          |   \
9795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                            HCI_INP_DATA_FMT_2S_COMPLEMENT |   \
9805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                            HCI_INP_SAMPLE_SIZE_16BIT      |   \
9815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                            HCI_AIR_CODING_FORMAT_TRANSPNT))
9825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
9835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************
9845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** SCO Data Status
9855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project********************/
9865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectenum
9875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
9885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BTM_SCO_DATA_CORRECT,
9895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BTM_SCO_DATA_PAR_ERR,
9905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BTM_SCO_DATA_NONE,
9915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BTM_SCO_DATA_PAR_LOST
9925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project};
9935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef UINT8 tBTM_SCO_DATA_FLAG;
9945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
9955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/***************************
9965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**  SCO Callback Functions
9975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project****************************/
9985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef void (tBTM_SCO_CB) (UINT16 sco_inx);
9995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef void (tBTM_SCO_DATA_CB) (UINT16 sco_inx, BT_HDR *p_data, tBTM_SCO_DATA_FLAG status);
10005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
10015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************
10025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**  eSCO Constants
10035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************/
10045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_64KBITS_RATE            0x00001f40  /* 64 kbits/sec data rate */
10055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
10065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Retransmission effort */
10075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_ESCO_RETRANS_OFF        0
10085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_ESCO_RETRANS_POWER      1
10095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_ESCO_RETRANS_QUALITY    2
10105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_ESCO_RETRANS_DONTCARE   0xff
10115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
10125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Max Latency Don't Care */
10135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_ESCO_MAX_LAT_DONTCARE   0xffff
10145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
10155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/***************
10165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**  eSCO Types
10175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project****************/
10185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* tBTM_ESCO_CBACK event types */
10195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_ESCO_CHG_EVT        1
10205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_ESCO_CONN_REQ_EVT   2
10215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef UINT8 tBTM_ESCO_EVT;
10225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
10235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Passed into BTM_SetEScoMode() */
10245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct
10255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
10265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT32 tx_bw;
10275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT32 rx_bw;
10285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT16 max_latency;
10295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT16 voice_contfmt;  /* Voice Settings or Content Format */
10305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT16 packet_types;
10315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8  retrans_effort;
10325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTM_ESCO_PARAMS;
10335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
10345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct
10355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
10365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT16 max_latency;
10375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT16 packet_types;
10385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8  retrans_effort;
10395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTM_CHG_ESCO_PARAMS;
10405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
10415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Returned by BTM_ReadEScoLinkParms() */
10425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct
10435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
10445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT16  rx_pkt_len;
10455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT16  tx_pkt_len;
10465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BD_ADDR bd_addr;
10475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8   link_type;  /* BTM_LINK_TYPE_SCO or BTM_LINK_TYPE_ESCO */
10485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8   tx_interval;
10495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8   retrans_window;
10505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8   air_mode;
10515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTM_ESCO_DATA;
10525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
10535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct
10545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
10555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT16  sco_inx;
10565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT16  rx_pkt_len;
10575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT16  tx_pkt_len;
10585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BD_ADDR bd_addr;
10595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8   hci_status;
10605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8   tx_interval;
10615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8   retrans_window;
10625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTM_CHG_ESCO_EVT_DATA;
10635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
10645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct
10655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
10665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT16        sco_inx;
10675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BD_ADDR       bd_addr;
10685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    DEV_CLASS     dev_class;
10695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTM_SCO_TYPE link_type;
10705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTM_ESCO_CONN_REQ_EVT_DATA;
10715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
10725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef union
10735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
10745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTM_CHG_ESCO_EVT_DATA      chg_evt;
10755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTM_ESCO_CONN_REQ_EVT_DATA conn_evt;
10765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTM_ESCO_EVT_DATA;
10775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
10785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/***************************
10795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**  eSCO Callback Functions
10805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project****************************/
10815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef void (tBTM_ESCO_CBACK) (tBTM_ESCO_EVT event, tBTM_ESCO_EVT_DATA *p_data);
10825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
10835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
10845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*****************************************************************************
10855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**  SECURITY MANAGEMENT
10865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*****************************************************************************/
10875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************
10885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**  Security Manager Constants
10895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project********************************/
10905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
10915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Security Mode (BTM_SetSecurityMode) */
10925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_SEC_MODE_UNDEFINED      0
10935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_SEC_MODE_NONE           1
10945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_SEC_MODE_SERVICE        2
10955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_SEC_MODE_LINK           3
10965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_SEC_MODE_SP             4
10975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_SEC_MODE_SP_DEBUG       5
1098444a8da807abaf5f9e813ce70c56a79160495fb3Satya Calloji#define BTM_SEC_MODE_SC             6
10995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1100899b77140675a157dba034e98527ab546bc9ac35Mudumba Ananth/* Maximum Number of BTM Security Modes */
1101899b77140675a157dba034e98527ab546bc9ac35Mudumba Ananth#define BTM_SEC_MODES_MAX           7
1102899b77140675a157dba034e98527ab546bc9ac35Mudumba Ananth
11035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Security Service Levels [bit mask] (BTM_SetSecurityLevel)
11045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Encryption should not be used without authentication
11055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/
11065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_SEC_NONE               0x0000 /* Nothing required */
11075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_SEC_IN_AUTHORIZE       0x0001 /* Inbound call requires authorization */
11085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_SEC_IN_AUTHENTICATE    0x0002 /* Inbound call requires authentication */
11095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_SEC_IN_ENCRYPT         0x0004 /* Inbound call requires encryption */
11105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_SEC_OUT_AUTHORIZE      0x0008 /* Outbound call requires authorization */
11115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_SEC_OUT_AUTHENTICATE   0x0010 /* Outbound call requires authentication */
11125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_SEC_OUT_ENCRYPT        0x0020 /* Outbound call requires encryption */
1113899b77140675a157dba034e98527ab546bc9ac35Mudumba Ananth#define BTM_SEC_MODE4_LEVEL4       0x0040 /* Secure Connections Only Mode */
11145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_SEC_FORCE_MASTER       0x0100 /* Need to switch connection to be master */
11155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_SEC_ATTEMPT_MASTER     0x0200 /* Try to switch connection to be master */
11165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_SEC_FORCE_SLAVE        0x0400 /* Need to switch connection to be master */
11175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_SEC_ATTEMPT_SLAVE      0x0800 /* Try to switch connection to be slave */
11185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_SEC_IN_MITM            0x1000 /* inbound Do man in the middle protection */
11195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_SEC_OUT_MITM           0x2000 /* outbound Do man in the middle protection */
1120818d0f2afb10c75125b0df9ea2bce6108268a269Casper Bonde#define BTM_SEC_IN_MIN_16_DIGIT_PIN 0x4000 /* enforce a minimum of 16 digit for sec mode 2 */
11215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
11225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Security Flags [bit mask] (BTM_GetSecurityFlags)
11235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/
11245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_SEC_FLAG_AUTHORIZED     0x01
11255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_SEC_FLAG_AUTHENTICATED  0x02
11265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_SEC_FLAG_ENCRYPTED      0x04
11275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_SEC_FLAG_LKEY_KNOWN     0x10
11285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_SEC_FLAG_LKEY_AUTHED    0x20
11295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
11305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* PIN types */
11315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_PIN_TYPE_VARIABLE       HCI_PIN_TYPE_VARIABLE
11325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_PIN_TYPE_FIXED          HCI_PIN_TYPE_FIXED
11335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
11345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Link Key types used to generate the new link key.
11355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** returned in link key notification callback function
11365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/
11375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_LKEY_TYPE_COMBINATION   HCI_LKEY_TYPE_COMBINATION
11385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_LKEY_TYPE_LOCAL_UNIT    HCI_LKEY_TYPE_LOCAL_UNIT
11395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_LKEY_TYPE_REMOTE_UNIT   HCI_LKEY_TYPE_REMOTE_UNIT
11405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_LKEY_TYPE_DEBUG_COMB    HCI_LKEY_TYPE_DEBUG_COMB
11415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_LKEY_TYPE_UNAUTH_COMB   HCI_LKEY_TYPE_UNAUTH_COMB
11425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_LKEY_TYPE_AUTH_COMB     HCI_LKEY_TYPE_AUTH_COMB
11435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_LKEY_TYPE_CHANGED_COMB  HCI_LKEY_TYPE_CHANGED_COMB
1144444a8da807abaf5f9e813ce70c56a79160495fb3Satya Calloji
1145444a8da807abaf5f9e813ce70c56a79160495fb3Satya Calloji#define BTM_LKEY_TYPE_UNAUTH_COMB_P_256 HCI_LKEY_TYPE_UNAUTH_COMB_P_256
1146444a8da807abaf5f9e813ce70c56a79160495fb3Satya Calloji#define BTM_LKEY_TYPE_AUTH_COMB_P_256   HCI_LKEY_TYPE_AUTH_COMB_P_256
1147444a8da807abaf5f9e813ce70c56a79160495fb3Satya Calloji
1148444a8da807abaf5f9e813ce70c56a79160495fb3Satya Calloji#define BTM_LTK_DERIVED_LKEY_OFFSET 0x20    /* "easy" requirements for LK derived from LTK */
11495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_LKEY_TYPE_IGNORE        0xff    /* used when event is response from
11505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                               hci return link keys request */
11515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1152444a8da807abaf5f9e813ce70c56a79160495fb3Satya Callojitypedef UINT8 tBTM_LINK_KEY_TYPE;
1153444a8da807abaf5f9e813ce70c56a79160495fb3Satya Calloji
11545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Protocol level security (BTM_SetSecurityLevel) */
11555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_SEC_PROTO_L2CAP         0
11565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_SEC_PROTO_SDP           1
11575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_SEC_PROTO_TCS           2
11585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_SEC_PROTO_RFCOMM        3
11595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_SEC_PROTO_OBEX          4
11605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_SEC_PROTO_BNEP          5
11615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_SEC_PROTO_HID           6   /* HID      */
11625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_SEC_PROTO_AVDT          7
11635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_SEC_PROTO_MCA           8
11645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
11655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Determine the number of UINT32's necessary for security services */
11665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_SEC_ARRAY_BITS          32          /* Number of bits in each array element */
11675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_SEC_SERVICE_ARRAY_SIZE  (((UINT32)BTM_SEC_MAX_SERVICES / BTM_SEC_ARRAY_BITS) + \
11685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                    (((UINT32)BTM_SEC_MAX_SERVICES % BTM_SEC_ARRAY_BITS) ? 1 : 0))
11695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
11705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Security service definitions (BTM_SetSecurityLevel)
11715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Used for Authorization APIs
11725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/
11735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_SEC_SERVICE_SDP_SERVER      0
11745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_SEC_SERVICE_SERIAL_PORT     1
11755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_SEC_SERVICE_LAN_ACCESS      2
11765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_SEC_SERVICE_DUN             3
11775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_SEC_SERVICE_IRMC_SYNC       4
11785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_SEC_SERVICE_IRMC_SYNC_CMD   5
11795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_SEC_SERVICE_OBEX            6
11805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_SEC_SERVICE_OBEX_FTP        7
11815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_SEC_SERVICE_HEADSET         8
11825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_SEC_SERVICE_CORDLESS        9
11835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_SEC_SERVICE_INTERCOM        10
11845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_SEC_SERVICE_FAX             11
11855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_SEC_SERVICE_HEADSET_AG      12
11865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_SEC_SERVICE_PNP_INFO        13
11875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_SEC_SERVICE_GEN_NET         14
11885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_SEC_SERVICE_GEN_FILE        15
11895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_SEC_SERVICE_GEN_AUDIO       16
11905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_SEC_SERVICE_GEN_TEL         17
11915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_SEC_SERVICE_CTP_DATA        18
11925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_SEC_SERVICE_HCRP_CTRL       19
11935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_SEC_SERVICE_HCRP_DATA       20
11945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_SEC_SERVICE_HCRP_NOTIF      21
11955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_SEC_SERVICE_BPP_JOB         22
11965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_SEC_SERVICE_BPP_STATUS      23
11975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_SEC_SERVICE_BPP_REF         24
11985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_SEC_SERVICE_BNEP_PANU       25
11995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_SEC_SERVICE_BNEP_GN         26
12005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_SEC_SERVICE_BNEP_NAP        27
12015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_SEC_SERVICE_HF_HANDSFREE    28
12025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_SEC_SERVICE_AG_HANDSFREE    29
12035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_SEC_SERVICE_TE_PHONE_ACCESS 30
12045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_SEC_SERVICE_ME_PHONE_ACCESS 31
12055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
12062e7fa68bfd9723b7ec7b6b0b128d89f31a2e06eeAndre Eisenbach#define BTM_SEC_SERVICE_HIDH_SEC_CTRL   32
12072e7fa68bfd9723b7ec7b6b0b128d89f31a2e06eeAndre Eisenbach#define BTM_SEC_SERVICE_HIDH_NOSEC_CTRL 33
12082e7fa68bfd9723b7ec7b6b0b128d89f31a2e06eeAndre Eisenbach#define BTM_SEC_SERVICE_HIDH_INTR       34
12095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_SEC_SERVICE_BIP             35
12105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_SEC_SERVICE_BIP_REF         36
12115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_SEC_SERVICE_AVDTP           37
12125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_SEC_SERVICE_AVDTP_NOSEC     38
12135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_SEC_SERVICE_AVCTP           39
12145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_SEC_SERVICE_SAP             40
12155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_SEC_SERVICE_PBAP            41
12165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_SEC_SERVICE_RFC_MUX         42
12175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_SEC_SERVICE_AVCTP_BROWSE    43
12185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_SEC_SERVICE_MAP             44
12195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_SEC_SERVICE_MAP_NOTIF       45
12205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_SEC_SERVICE_MCAP_CTRL       46
12215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_SEC_SERVICE_MCAP_DATA       47
12225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_SEC_SERVICE_HDP_SNK         48
12235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_SEC_SERVICE_HDP_SRC         49
12245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_SEC_SERVICE_ATT             50
12255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
12265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Update these as services are added */
12275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_SEC_SERVICE_FIRST_EMPTY     51
12285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
12295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#ifndef BTM_SEC_MAX_SERVICES
12309fed745a38b1ff2c5d4d67ca06760da5b07b7f11Srinu Jella#define BTM_SEC_MAX_SERVICES            75
12315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#endif
12325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
12335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/************************************************************************************************
12345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Security Services MACROS handle array of UINT32 bits for more than 32 trusted services
12355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*************************************************************************************************/
12365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* MACRO to set the security service bit mask in a bit stream */
12375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_SEC_SET_SERVICE(p, service)  (((UINT32 *)(p))[(((UINT32)(service)) / BTM_SEC_ARRAY_BITS)] |=  \
12385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                    ((UINT32)1 << (((UINT32)(service)) % BTM_SEC_ARRAY_BITS)))
12395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
12405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
12415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* MACRO to clear the security service bit mask in a bit stream */
12425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_SEC_CLR_SERVICE(p, service)  (((UINT32 *)(p))[(((UINT32)(service)) / BTM_SEC_ARRAY_BITS)] &=  \
12435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                    ~((UINT32)1 << (((UINT32)(service)) % BTM_SEC_ARRAY_BITS)))
12445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
12455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* MACRO to check the security service bit mask in a bit stream (Returns TRUE or FALSE) */
12465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_SEC_IS_SERVICE_TRUSTED(p, service)    (((((UINT32 *)(p))[(((UINT32)(service)) / BTM_SEC_ARRAY_BITS)]) &   \
12475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                        (UINT32)(((UINT32)1 << (((UINT32)(service)) % BTM_SEC_ARRAY_BITS)))) ? TRUE : FALSE)
12485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
12495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* MACRO to copy two trusted device bitmask */
1250ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta#define BTM_SEC_COPY_TRUSTED_DEVICE(p_src, p_dst)   {UINT32 trst; for (trst = 0; trst < BTM_SEC_SERVICE_ARRAY_SIZE; trst++) \
12515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                                        ((UINT32 *)(p_dst))[trst] = ((UINT32 *)(p_src))[trst];}
12525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
12535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* MACRO to clear two trusted device bitmask */
1254ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta#define BTM_SEC_CLR_TRUSTED_DEVICE(p_dst)   {UINT32 trst; for (trst = 0; trst < BTM_SEC_SERVICE_ARRAY_SIZE; trst++) \
12555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                                        ((UINT32 *)(p_dst))[trst] = 0;}
12565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
12575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Following bits can be provided by host in the trusted_mask array */
12585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* 0..31 bits of mask[0] (Least Significant Word) */
12595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_SEC_TRUST_SDP_SERVER        (1 << BTM_SEC_SERVICE_SDP_SERVER)
12605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_SEC_TRUST_SERIAL_PORT       (1 << BTM_SEC_SERVICE_SERIAL_PORT)
12615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_SEC_TRUST_LAN_ACCESS        (1 << BTM_SEC_SERVICE_LAN_ACCESS)
12625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_SEC_TRUST_DUN               (1 << BTM_SEC_SERVICE_DUN)
12635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_SEC_TRUST_IRMC_SYNC         (1 << BTM_SEC_SERVICE_IRMC_SYNC)
12645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_SEC_TRUST_IRMC_SYNC_CMD     (1 << BTM_SEC_SERVICE_IRMC_SYNC_CMD)
12655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_SEC_TRUST_OBEX              (1 << BTM_SEC_SERVICE_OBEX)
12665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_SEC_TRUST_OBEX_FTP          (1 << BTM_SEC_SERVICE_OBEX_FTP)
12675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_SEC_TRUST_HEADSET           (1 << BTM_SEC_SERVICE_HEADSET)
12685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_SEC_TRUST_CORDLESS          (1 << BTM_SEC_SERVICE_CORDLESS)
12695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_SEC_TRUST_INTERCOM          (1 << BTM_SEC_SERVICE_INTERCOM)
12705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_SEC_TRUST_FAX               (1 << BTM_SEC_SERVICE_FAX)
12715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_SEC_TRUST_HEADSET_AG        (1 << BTM_SEC_SERVICE_HEADSET_AG)
12725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_SEC_TRUST_PNP_INFO          (1 << BTM_SEC_SERVICE_PNP_INFO)
12735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_SEC_TRUST_GEN_NET           (1 << BTM_SEC_SERVICE_GEN_NET)
12745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_SEC_TRUST_GEN_FILE          (1 << BTM_SEC_SERVICE_GEN_FILE)
12755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_SEC_TRUST_GEN_AUDIO         (1 << BTM_SEC_SERVICE_GEN_AUDIO)
12765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_SEC_TRUST_GEN_TEL           (1 << BTM_SEC_SERVICE_GEN_TEL)
12775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_SEC_TRUST_CTP_DATA          (1 << BTM_SEC_SERVICE_CTP_DATA)
12785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_SEC_TRUST_HCRP_CTRL         (1 << BTM_SEC_SERVICE_HCRP_CTRL)
12795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_SEC_TRUST_HCRP_DATA         (1 << BTM_SEC_SERVICE_HCRP_DATA)
12805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_SEC_TRUST_HCRP_NOTIF        (1 << BTM_SEC_SERVICE_HCRP_NOTIF)
12815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_SEC_TRUST_BPP_JOB           (1 << BTM_SEC_SERVICE_JOB)
12825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_SEC_TRUST_BPP_STATUS        (1 << BTM_SEC_SERVICE_STATUS)
12835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_SEC_TRUST_BPP_REF           (1 << BTM_SEC_SERVICE_REF)
12845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_SEC_TRUST_BNEP_PANU         (1 << BTM_SEC_SERVICE_BNEP_PANU)
12855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_SEC_TRUST_BNEP_GN           (1 << BTM_SEC_SERVICE_BNEP_GN)
12865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_SEC_TRUST_BNEP_NAP          (1 << BTM_SEC_SERVICE_BNEP_NAP)
12875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_SEC_TRUST_HFP_HF            (1 << BTM_SEC_SERVICE_HF_HANDSFREE)
12885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_SEC_TRUST_HFP_AG            (1 << BTM_SEC_SERVICE_AG_HANDSFREE)
12895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_SEC_TRUST_TE_PHONE_ACCESS   (1 << BTM_SEC_SERVICE_TE_PHONE_ACCESS)
12905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_SEC_TRUST_ME_PHONE_ACCESS   (1 << BTM_SEC_SERVICE_ME_PHONE_ACCESS)
12915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
12925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* 0..31 bits of mask[1] (Most Significant Word) */
12932e7fa68bfd9723b7ec7b6b0b128d89f31a2e06eeAndre Eisenbach#define BTM_SEC_TRUST_HIDH_CTRL         (1 << (BTM_SEC_SERVICE_HIDH_SEC_CTRL - 32))
12942e7fa68bfd9723b7ec7b6b0b128d89f31a2e06eeAndre Eisenbach#define BTM_SEC_TRUST_HIDH_NOSEC_CTRL   (1 << (BTM_SEC_SERVICE_HIDH_NOSEC_CTRL - 32))
12952e7fa68bfd9723b7ec7b6b0b128d89f31a2e06eeAndre Eisenbach#define BTM_SEC_TRUST_HIDH_INTR         (1 << (BTM_SEC_SERVICE_HIDH_INTR - 32))
12965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_SEC_TRUST_BIP               (1 << (BTM_SEC_SERVICE_BIP - 32))
12975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_SEC_TRUST_BIP_REF           (1 << (BTM_SEC_SERVICE_BIP_REF - 32))
12985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_SEC_TRUST_AVDTP             (1 << (BTM_SEC_SERVICE_AVDTP - 32))
12995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_SEC_TRUST_AVDTP_NOSEC       (1 << (BTM_SEC_SERVICE_AVDTP_NOSEC - 32))
13005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_SEC_TRUST_AVCTP             (1 << (BTM_SEC_SERVICE_AVCTP - 32))
13015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_SEC_TRUST_SAP               (1 << (BTM_SEC_SERVICE_SAP - 32))
13025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_SEC_TRUST_PBAP              (1 << (BTM_SEC_SERVICE_PBAP - 32))
13035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_SEC_TRUST_RFC_MUX           (1 << (BTM_SEC_SERVICE_RFC_MUX - 32))
13045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_SEC_TRUST_AVCTP_BROWSE      (1 << (BTM_SEC_SERVICE_AVCTP_BROWSE - 32))
13055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_SEC_TRUST_MAP               (1 << (BTM_SEC_SERVICE_MAP - 32))
13065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_SEC_TRUST_MAP_NOTIF         (1 << (BTM_SEC_SERVICE_MAP_NOTIF - 32))
13075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_SEC_TRUST_MCAP_CTRL         (1 << (BTM_SEC_SERVICE_MCAP_CTRL - 32))
13085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_SEC_TRUST_MCAP_DATA         (1 << (BTM_SEC_SERVICE_MCAP_DATA - 32))
13095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_SEC_TRUST_HDP_SNK           (1 << (BTM_SEC_SERVICE_HDP_SNK - 32))
13105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_SEC_TRUST_HDP_SRC           (1 << (BTM_SEC_SERVICE_HDP_SRC - 32))
13115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
13125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_SEC_TRUST_ALL               0xFFFFFFFF  /* for each array element */
13135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
13145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/****************************************
13155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**  Security Manager Callback Functions
13165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*****************************************/
13175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Authorize device for service.  Parameters are
13185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**              BD Address of remote
13195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**              Device Class of remote
13205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**              BD Name of remote
13215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**              Service name
13225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**              Service Id (NULL - unknown service or unused
13235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                                 [BTM_SEC_SERVICE_NAME_LEN set to 0])
13245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**              Is originator of the connection
13255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**              Result of the operation
13265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/
13275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef UINT8 (tBTM_AUTHORIZE_CALLBACK) (BD_ADDR bd_addr, DEV_CLASS dev_class,
13285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                         tBTM_BD_NAME bd_name, UINT8 *service_name,
13295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                         UINT8 service_id, BOOLEAN is_originator);
13305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
13315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Get PIN for the connection.  Parameters are
13325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**              BD Address of remote
13335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**              Device Class of remote
13345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**              BD Name of remote
1335818d0f2afb10c75125b0df9ea2bce6108268a269Casper Bonde**              Flag indicating the minimum pin code length to be 16 digits
13365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/
13375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef UINT8 (tBTM_PIN_CALLBACK) (BD_ADDR bd_addr, DEV_CLASS dev_class,
1338818d0f2afb10c75125b0df9ea2bce6108268a269Casper Bonde                                   tBTM_BD_NAME bd_name, BOOLEAN min_16_digit);
13395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
13405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* New Link Key for the connection.  Parameters are
13415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**              BD Address of remote
13425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**              Link Key
13435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**              Key Type: Combination, Local Unit, or Remote Unit
13445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/
13455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef UINT8 (tBTM_LINK_KEY_CALLBACK) (BD_ADDR bd_addr, DEV_CLASS dev_class,
13465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                        tBTM_BD_NAME bd_name, UINT8 *key,
13475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                        UINT8 key_type);
13485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
13495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
13505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Remote Name Resolved.  Parameters are
13515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**              BD Address of remote
13525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**              BD Name of remote
13535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/
13545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef void (tBTM_RMT_NAME_CALLBACK) (BD_ADDR bd_addr, DEV_CLASS dc,
13555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                       tBTM_BD_NAME bd_name);
13565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
13575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
13585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Authentication complete for the connection.  Parameters are
13595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**              BD Address of remote
13605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**              Device Class of remote
13615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**              BD Name of remote
13625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
13635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/
13645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef UINT8 (tBTM_AUTH_COMPLETE_CALLBACK) (BD_ADDR bd_addr, DEV_CLASS dev_class,
13655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                             tBTM_BD_NAME bd_name, int result);
13665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
13675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectenum
13685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
13695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BTM_SP_IO_REQ_EVT,      /* received IO_CAPABILITY_REQUEST event */
13705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BTM_SP_IO_RSP_EVT,      /* received IO_CAPABILITY_RESPONSE event */
13715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BTM_SP_CFM_REQ_EVT,     /* received USER_CONFIRMATION_REQUEST event */
13725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BTM_SP_KEY_NOTIF_EVT,   /* received USER_PASSKEY_NOTIFY event */
13735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BTM_SP_KEY_REQ_EVT,     /* received USER_PASSKEY_REQUEST event */
13745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BTM_SP_KEYPRESS_EVT,    /* received KEYPRESS_NOTIFY event */
13755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BTM_SP_LOC_OOB_EVT,     /* received result for READ_LOCAL_OOB_DATA command */
13765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BTM_SP_RMT_OOB_EVT,     /* received REMOTE_OOB_DATA_REQUEST event */
13775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BTM_SP_COMPLT_EVT,      /* received SIMPLE_PAIRING_COMPLETE event */
13785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BTM_SP_UPGRADE_EVT      /* check if the application wants to upgrade the link key */
13795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project};
13805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef UINT8 tBTM_SP_EVT;
13815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
13825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_IO_CAP_OUT      0   /* DisplayOnly */
13835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_IO_CAP_IO       1   /* DisplayYesNo */
13845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_IO_CAP_IN       2   /* KeyboardOnly */
13855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_IO_CAP_NONE     3   /* NoInputNoOutput */
13865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#if BLE_INCLUDED == TRUE && SMP_INCLUDED == TRUE
13875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_IO_CAP_KBDISP   4   /* Keyboard display */
13885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_IO_CAP_MAX      5
13895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#else
13905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_IO_CAP_MAX      4
13915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#endif
13925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
13935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef UINT8 tBTM_IO_CAP;
13945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
13955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_MAX_PASSKEY_VAL (999999)
13965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_MIN_PASSKEY_VAL (0)
13975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
13985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_AUTH_SP_NO      0   /* MITM Protection Not Required - Single Profile/non-bonding
13995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                Numeric comparison with automatic accept allowed */
14005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_AUTH_SP_YES     1   /* MITM Protection Required - Single Profile/non-bonding
14015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                Use IO Capabilities to determine authentication procedure */
14025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_AUTH_AP_NO      2   /* MITM Protection Not Required - All Profiles/dedicated bonding
14035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                Numeric comparison with automatic accept allowed */
14045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_AUTH_AP_YES     3   /* MITM Protection Required - All Profiles/dedicated bonding
14055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                Use IO Capabilities to determine authentication procedure */
14065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_AUTH_SPGB_NO    4   /* MITM Protection Not Required - Single Profiles/general bonding
14075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                Numeric comparison with automatic accept allowed */
14085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_AUTH_SPGB_YES   5   /* MITM Protection Required - Single Profiles/general bonding
14095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                Use IO Capabilities to determine authentication procedure */
14105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_AUTH_DD_BOND    2   /* this bit is ORed to the BTM_AUTH_SP_* when IO exchange for dedicated bonding */
14115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_AUTH_GB_BIT     4   /* the genernal bonding bit */
14125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_AUTH_BONDS      6   /* the general/dedicated bonding bits  */
14135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_AUTH_YN_BIT     1   /* this is the Yes or No bit  */
14145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1415e28055315f96c0d06e73a66a9bb06df85247b5a7Chaojing Sun#define BTM_BLE_INITIATOR_KEY_SIZE 15
1416e28055315f96c0d06e73a66a9bb06df85247b5a7Chaojing Sun#define BTM_BLE_RESPONDER_KEY_SIZE 15
1417e28055315f96c0d06e73a66a9bb06df85247b5a7Chaojing Sun#define BTM_BLE_MAX_KEY_SIZE       16
1418e28055315f96c0d06e73a66a9bb06df85247b5a7Chaojing Sun
14195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef UINT8 tBTM_AUTH_REQ;
14205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
14215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectenum
14225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
14235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BTM_OOB_NONE,
1424175da70b6d60349dffdee3a9cd13182b293edf4cJakub Pawlowski    BTM_OOB_PRESENT,
1425175da70b6d60349dffdee3a9cd13182b293edf4cJakub Pawlowski    BTM_OOB_UNKNOWN
14265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project};
14275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef UINT8 tBTM_OOB_DATA;
14285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
14295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* data type for BTM_SP_IO_REQ_EVT */
14305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct
14315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
14325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BD_ADDR         bd_addr;        /* peer address */
14335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTM_IO_CAP     io_cap;         /* local IO capabilities */
14345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTM_OOB_DATA   oob_data;       /* OOB data present (locally) for the peer device */
14355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTM_AUTH_REQ   auth_req;       /* Authentication required (for local device) */
14365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BOOLEAN         is_orig;        /* TRUE, if local device initiated the SP process */
14375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTM_SP_IO_REQ;
14385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
14395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* data type for BTM_SP_IO_RSP_EVT */
14405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct
14415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
14425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BD_ADDR         bd_addr;        /* peer address */
14435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTM_IO_CAP     io_cap;         /* peer IO capabilities */
14445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTM_OOB_DATA   oob_data;       /* OOB data present at peer device for the local device */
14455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTM_AUTH_REQ   auth_req;       /* Authentication required for peer device */
14465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTM_SP_IO_RSP;
14475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
14485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* data type for BTM_SP_CFM_REQ_EVT */
14495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct
14505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
14515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BD_ADDR         bd_addr;        /* peer address */
14525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    DEV_CLASS       dev_class;      /* peer CoD */
14535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTM_BD_NAME    bd_name;        /* peer device name */
14545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT32          num_val;        /* the numeric value for comparison. If just_works, do not show this number to UI */
14555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BOOLEAN         just_works;     /* TRUE, if "Just Works" association model */
14565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTM_AUTH_REQ   loc_auth_req;   /* Authentication required for local device */
14575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTM_AUTH_REQ   rmt_auth_req;   /* Authentication required for peer device */
14585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTM_IO_CAP     loc_io_caps;    /* IO Capabilities of the local device */
14595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTM_IO_CAP     rmt_io_caps;    /* IO Capabilities of the remot device */
14605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTM_SP_CFM_REQ;
14615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
14625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* data type for BTM_SP_KEY_REQ_EVT */
14635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct
14645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
14655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BD_ADDR         bd_addr;        /* peer address */
14665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    DEV_CLASS       dev_class;      /* peer CoD */
14675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTM_BD_NAME    bd_name;        /* peer device name */
14685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTM_SP_KEY_REQ;
14695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
14705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* data type for BTM_SP_KEY_NOTIF_EVT */
14715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct
14725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
14735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BD_ADDR         bd_addr;        /* peer address */
14745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    DEV_CLASS       dev_class;      /* peer CoD */
14755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTM_BD_NAME    bd_name;        /* peer device name */
14765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT32          passkey;        /* passkey */
14775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTM_SP_KEY_NOTIF;
14785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
14795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectenum
14805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
1481444a8da807abaf5f9e813ce70c56a79160495fb3Satya Calloji    BTM_SP_KEY_STARTED,         /* 0 - passkey entry started */
1482444a8da807abaf5f9e813ce70c56a79160495fb3Satya Calloji    BTM_SP_KEY_ENTERED,         /* 1 - passkey digit entered */
1483444a8da807abaf5f9e813ce70c56a79160495fb3Satya Calloji    BTM_SP_KEY_ERASED,          /* 2 - passkey digit erased */
1484444a8da807abaf5f9e813ce70c56a79160495fb3Satya Calloji    BTM_SP_KEY_CLEARED,         /* 3 - passkey cleared */
1485444a8da807abaf5f9e813ce70c56a79160495fb3Satya Calloji    BTM_SP_KEY_COMPLT,          /* 4 - passkey entry completed */
1486444a8da807abaf5f9e813ce70c56a79160495fb3Satya Calloji    BTM_SP_KEY_OUT_OF_RANGE     /* 5 - out of range */
14875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project};
14885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef UINT8   tBTM_SP_KEY_TYPE;
14895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
14905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* data type for BTM_SP_KEYPRESS_EVT */
14915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct
14925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
14935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BD_ADDR             bd_addr;        /* peer address */
14945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTM_SP_KEY_TYPE   notif_type;
14955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTM_SP_KEYPRESS;
14965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
14975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* data type for BTM_SP_LOC_OOB_EVT */
14985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct
14995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
15005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTM_STATUS     status;         /* */
15015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BT_OCTET16      c;              /* Simple Pairing Hash C */
15025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BT_OCTET16      r;              /* Simple Pairing Randomnizer R */
15035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTM_SP_LOC_OOB;
15045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
15055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* data type for BTM_SP_RMT_OOB_EVT */
15065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct
15075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
15085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BD_ADDR         bd_addr;        /* peer address */
15095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    DEV_CLASS       dev_class;      /* peer CoD */
15105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTM_BD_NAME    bd_name;        /* peer device name */
15115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTM_SP_RMT_OOB;
15125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
15135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
15145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* data type for BTM_SP_COMPLT_EVT */
15155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct
15165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
15175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BD_ADDR         bd_addr;        /* peer address */
15185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    DEV_CLASS       dev_class;      /* peer CoD */
15195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTM_BD_NAME    bd_name;        /* peer device name */
15205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTM_STATUS     status;         /* status of the simple pairing process */
15215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTM_SP_COMPLT;
15225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
15235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* data type for BTM_SP_UPGRADE_EVT */
15245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct
15255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
15265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BD_ADDR         bd_addr;        /* peer address */
15275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BOOLEAN         upgrade;        /* TRUE, to upgrade the link key */
15285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTM_SP_UPGRADE;
15295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
15305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef union
15315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
15325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTM_SP_IO_REQ      io_req;     /* BTM_SP_IO_REQ_EVT      */
15335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTM_SP_IO_RSP      io_rsp;     /* BTM_SP_IO_RSP_EVT      */
15345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTM_SP_CFM_REQ     cfm_req;    /* BTM_SP_CFM_REQ_EVT     */
15355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTM_SP_KEY_NOTIF   key_notif;  /* BTM_SP_KEY_NOTIF_EVT   */
15365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTM_SP_KEY_REQ     key_req;    /* BTM_SP_KEY_REQ_EVT     */
15375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTM_SP_KEYPRESS    key_press;  /* BTM_SP_KEYPRESS_EVT    */
15385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTM_SP_LOC_OOB     loc_oob;    /* BTM_SP_LOC_OOB_EVT     */
15395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTM_SP_RMT_OOB     rmt_oob;    /* BTM_SP_RMT_OOB_EVT     */
15405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTM_SP_COMPLT      complt;     /* BTM_SP_COMPLT_EVT      */
15415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTM_SP_UPGRADE     upgrade;    /* BTM_SP_UPGRADE_EVT      */
15425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTM_SP_EVT_DATA;
15435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
15445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Simple Pairing Events.  Called by the stack when Simple Pairing related
15455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** events occur.
15465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/
15475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef UINT8 (tBTM_SP_CALLBACK) (tBTM_SP_EVT event, tBTM_SP_EVT_DATA *p_data);
15485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
15495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
15505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef void (tBTM_MKEY_CALLBACK) (BD_ADDR bd_addr, UINT8 status, UINT8 key_flag) ;
15515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
15525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Encryption enabled/disabled complete: Optionally passed with BTM_SetEncryption.
15535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Parameters are
15545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**              BD Address of remote
15555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**              optional data passed in by BTM_SetEncryption
15565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**              tBTM_STATUS - result of the operation
15575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/
15587fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Battatypedef void (tBTM_SEC_CBACK) (BD_ADDR bd_addr, tBT_TRANSPORT trasnport,
15597fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta                                void *p_ref_data, tBTM_STATUS result);
15605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
15615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Bond Cancel complete. Parameters are
15625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**              Result of the cancel operation
15635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
15645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/
15655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef void (tBTM_BOND_CANCEL_CMPL_CALLBACK) (tBTM_STATUS result);
15665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
15675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* LE related event and data structure
15685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/
1569444a8da807abaf5f9e813ce70c56a79160495fb3Satya Calloji#define BTM_LE_IO_REQ_EVT       SMP_IO_CAP_REQ_EVT     /* received IO_CAPABILITY_REQUEST event */
1570444a8da807abaf5f9e813ce70c56a79160495fb3Satya Calloji#define BTM_LE_SEC_REQUEST_EVT  SMP_SEC_REQUEST_EVT    /* security request event */
1571444a8da807abaf5f9e813ce70c56a79160495fb3Satya Calloji#define BTM_LE_KEY_NOTIF_EVT    SMP_PASSKEY_NOTIF_EVT  /* received USER_PASSKEY_NOTIFY event */
1572444a8da807abaf5f9e813ce70c56a79160495fb3Satya Calloji#define BTM_LE_KEY_REQ_EVT      SMP_PASSKEY_REQ_EVT    /* received USER_PASSKEY_REQUEST event */
1573444a8da807abaf5f9e813ce70c56a79160495fb3Satya Calloji#define BTM_LE_OOB_REQ_EVT      SMP_OOB_REQ_EVT        /* OOB data request event */
1574444a8da807abaf5f9e813ce70c56a79160495fb3Satya Calloji#define BTM_LE_NC_REQ_EVT       SMP_NC_REQ_EVT          /* Numeric Comparison request event */
1575444a8da807abaf5f9e813ce70c56a79160495fb3Satya Calloji#define BTM_LE_PR_KEYPR_NOT_EVT SMP_PEER_KEYPR_NOT_EVT /* Peer keypress notification recd event */
1576444a8da807abaf5f9e813ce70c56a79160495fb3Satya Calloji/* SC OOB request event (both local and peer OOB data) can be expected in response */
1577444a8da807abaf5f9e813ce70c56a79160495fb3Satya Calloji#define BTM_LE_SC_OOB_REQ_EVT   SMP_SC_OOB_REQ_EVT
1578444a8da807abaf5f9e813ce70c56a79160495fb3Satya Calloji/* SC OOB local data set is created (as result of SMP_CrLocScOobData(...)) */
1579444a8da807abaf5f9e813ce70c56a79160495fb3Satya Calloji#define BTM_LE_SC_LOC_OOB_EVT   SMP_SC_LOC_OOB_DATA_UP_EVT
1580444a8da807abaf5f9e813ce70c56a79160495fb3Satya Calloji#define BTM_LE_BR_KEYS_REQ_EVT  SMP_BR_KEYS_REQ_EVT     /* SMP over BR keys request event */
1581444a8da807abaf5f9e813ce70c56a79160495fb3Satya Calloji#define BTM_LE_COMPLT_EVT       SMP_COMPLT_EVT         /* SMP complete event */
1582444a8da807abaf5f9e813ce70c56a79160495fb3Satya Calloji#define BTM_LE_LAST_FROM_SMP    BTM_LE_BR_KEYS_REQ_EVT
1583444a8da807abaf5f9e813ce70c56a79160495fb3Satya Calloji#define BTM_LE_KEY_EVT          BTM_LE_LAST_FROM_SMP + 1 /* KEY update event */
15845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef UINT8 tBTM_LE_EVT;
15855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1586444a8da807abaf5f9e813ce70c56a79160495fb3Satya Calloji#define BTM_LE_KEY_NONE           0
15875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_LE_KEY_PENC      SMP_SEC_KEY_TYPE_ENC        /* encryption information of peer device */
15885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_LE_KEY_PID       SMP_SEC_KEY_TYPE_ID         /* identity key of the peer device */
1589444a8da807abaf5f9e813ce70c56a79160495fb3Satya Calloji#define BTM_LE_KEY_PCSRK     SMP_SEC_KEY_TYPE_CSRK      /* peer SRK */
1590444a8da807abaf5f9e813ce70c56a79160495fb3Satya Calloji#define BTM_LE_KEY_PLK       SMP_SEC_KEY_TYPE_LK
1591444a8da807abaf5f9e813ce70c56a79160495fb3Satya Calloji#define BTM_LE_KEY_LLK       (SMP_SEC_KEY_TYPE_LK << 4)
1592444a8da807abaf5f9e813ce70c56a79160495fb3Satya Calloji#define BTM_LE_KEY_LENC      (SMP_SEC_KEY_TYPE_ENC << 4)  /* master role security information:div */
1593444a8da807abaf5f9e813ce70c56a79160495fb3Satya Calloji#define BTM_LE_KEY_LID       (SMP_SEC_KEY_TYPE_ID << 4)   /* master device ID key */
1594444a8da807abaf5f9e813ce70c56a79160495fb3Satya Calloji#define BTM_LE_KEY_LCSRK     (SMP_SEC_KEY_TYPE_CSRK << 4) /* local CSRK has been deliver to peer */
15955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef UINT8 tBTM_LE_KEY_TYPE;
15965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
15975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_LE_AUTH_REQ_NO_BOND SMP_AUTH_NO_BOND   /* 0 */
15985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_LE_AUTH_REQ_BOND    SMP_AUTH_GEN_BOND  /* 1 << 0 */
15995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_LE_AUTH_REQ_MITM    SMP_AUTH_YN_BIT    /* 1 << 2 */
16005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef UINT8 tBTM_LE_AUTH_REQ;
1601444a8da807abaf5f9e813ce70c56a79160495fb3Satya Calloji#define BTM_LE_SC_SUPPORT_BIT           SMP_SC_SUPPORT_BIT     /* (1 << 3) */
1602444a8da807abaf5f9e813ce70c56a79160495fb3Satya Calloji#define BTM_LE_KP_SUPPORT_BIT           SMP_KP_SUPPORT_BIT     /* (1 << 4) */
16035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1604444a8da807abaf5f9e813ce70c56a79160495fb3Satya Calloji#define BTM_LE_AUTH_REQ_SC_ONLY         SMP_AUTH_SC_ENC_ONLY    /* 1 << 3 */
1605444a8da807abaf5f9e813ce70c56a79160495fb3Satya Calloji#define BTM_LE_AUTH_REQ_SC_BOND         SMP_AUTH_SC_GB          /* 1001 */
1606444a8da807abaf5f9e813ce70c56a79160495fb3Satya Calloji#define BTM_LE_AUTH_REQ_SC_MITM         SMP_AUTH_SC_MITM_NB     /* 1100 */
1607444a8da807abaf5f9e813ce70c56a79160495fb3Satya Calloji#define BTM_LE_AUTH_REQ_SC_MITM_BOND    SMP_AUTH_SC_MITM_GB     /* 1101 */
1608444a8da807abaf5f9e813ce70c56a79160495fb3Satya Calloji#define BTM_LE_AUTH_REQ_MASK            SMP_AUTH_MASK           /* 0x1D */
16095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
16105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* LE security level */
16115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_LE_SEC_NONE             SMP_SEC_NONE
1612ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta#define BTM_LE_SEC_UNAUTHENTICATE   SMP_SEC_UNAUTHENTICATE      /* 1 */
1613ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta#define BTM_LE_SEC_AUTHENTICATED    SMP_SEC_AUTHENTICATED       /* 4 */
16145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef UINT8 tBTM_LE_SEC;
16155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
16165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
16175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct
16185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
16195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTM_IO_CAP         io_cap;         /* local IO capabilities */
16205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8               oob_data;       /* OOB data present (locally) for the peer device */
16215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTM_LE_AUTH_REQ    auth_req;       /* Authentication request (for local device) contain bonding and MITM info */
16225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8               max_key_size;   /* max encryption key size */
16235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTM_LE_KEY_TYPE    init_keys;      /* keys to be distributed, bit mask */
16245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTM_LE_KEY_TYPE    resp_keys;      /* keys to be distributed, bit mask */
16255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTM_LE_IO_REQ;
16265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
16275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#if BLE_INCLUDED == TRUE && SMP_INCLUDED == TRUE
16285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* data type for tBTM_LE_COMPLT */
16295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct
16305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
1631e28055315f96c0d06e73a66a9bb06df85247b5a7Chaojing Sun    UINT8 reason;
1632e28055315f96c0d06e73a66a9bb06df85247b5a7Chaojing Sun    UINT8 sec_level;
1633e28055315f96c0d06e73a66a9bb06df85247b5a7Chaojing Sun    BOOLEAN is_pair_cancel;
1634e28055315f96c0d06e73a66a9bb06df85247b5a7Chaojing Sun    BOOLEAN smp_over_br;
16355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project}tBTM_LE_COMPLT;
16365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#endif
16375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
16385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* BLE encryption keys */
16395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct
16405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
16415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BT_OCTET16  ltk;
16425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BT_OCTET8   rand;
16435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT16      ediv;
16445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8       sec_level;
16455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8       key_size;
16465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project}tBTM_LE_PENC_KEYS;
16475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
16485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* BLE CSRK keys */
16495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct
16505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
16515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT32          counter;
16525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BT_OCTET16      csrk;
16535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8           sec_level;
16545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project}tBTM_LE_PCSRK_KEYS;
16555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
16565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* BLE Encryption reproduction keys */
16575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct
16585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
1659444a8da807abaf5f9e813ce70c56a79160495fb3Satya Calloji    BT_OCTET16  ltk;
16605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT16      div;
16615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8       key_size;
16625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8       sec_level;
16635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project}tBTM_LE_LENC_KEYS;
16645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
16655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* BLE SRK keys */
16665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct
16675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
16685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT32          counter;
16695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT16          div;
16705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8           sec_level;
1671444a8da807abaf5f9e813ce70c56a79160495fb3Satya Calloji    BT_OCTET16      csrk;
16725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project}tBTM_LE_LCSRK_KEYS;
16735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1674ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Battatypedef struct
1675ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta{
1676ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta    BT_OCTET16          irk;
1677ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta    tBLE_ADDR_TYPE      addr_type;
1678ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta    BD_ADDR             static_addr;
1679ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta}tBTM_LE_PID_KEYS;
16805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
16815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef union
16825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
16835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTM_LE_PENC_KEYS   penc_key;       /* received peer encryption key */
1684444a8da807abaf5f9e813ce70c56a79160495fb3Satya Calloji    tBTM_LE_PCSRK_KEYS  pcsrk_key;      /* received peer device SRK */
1685ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta    tBTM_LE_PID_KEYS    pid_key;        /* peer device ID key */
16865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTM_LE_LENC_KEYS   lenc_key;       /* local encryption reproduction keys LTK = = d1(ER,DIV,0)*/
1687444a8da807abaf5f9e813ce70c56a79160495fb3Satya Calloji    tBTM_LE_LCSRK_KEYS   lcsrk_key;     /* local device CSRK = d1(ER,DIV,1)*/
16885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project}tBTM_LE_KEY_VALUE;
16895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
16905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct
16915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
16925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTM_LE_KEY_TYPE        key_type;
16935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTM_LE_KEY_VALUE       *p_key_value;
16945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project}tBTM_LE_KEY;
16955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
16965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef union
16975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
16985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTM_LE_IO_REQ      io_req;     /* BTM_LE_IO_REQ_EVT      */
16995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT32              key_notif;  /* BTM_LE_KEY_NOTIF_EVT   */
1700444a8da807abaf5f9e813ce70c56a79160495fb3Satya Calloji                                    /* BTM_LE_NC_REQ_EVT */
1701444a8da807abaf5f9e813ce70c56a79160495fb3Satya Calloji                                    /* no callback data for BTM_LE_KEY_REQ_EVT */
1702444a8da807abaf5f9e813ce70c56a79160495fb3Satya Calloji                                    /* and BTM_LE_OOB_REQ_EVT  */
17035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#if BLE_INCLUDED == TRUE && SMP_INCLUDED == TRUE
17045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTM_LE_COMPLT      complt;     /* BTM_LE_COMPLT_EVT      */
1705444a8da807abaf5f9e813ce70c56a79160495fb3Satya Calloji    tSMP_OOB_DATA_TYPE  req_oob_type;
17065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#endif
17075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTM_LE_KEY         key;
17085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTM_LE_EVT_DATA;
17095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
17105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Simple Pairing Events.  Called by the stack when Simple Pairing related
17115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** events occur.
17125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/
17135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef UINT8 (tBTM_LE_CALLBACK) (tBTM_LE_EVT event, BD_ADDR bda, tBTM_LE_EVT_DATA *p_data);
17145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
17155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_BLE_KEY_TYPE_ID         1
17165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_BLE_KEY_TYPE_ER         2
17175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_BLE_KEY_TYPE_COUNTER    3  //tobe obsolete
17185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
17195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct
17205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
17215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BT_OCTET16       ir;
17225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BT_OCTET16       irk;
17235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BT_OCTET16       dhk;
17245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
17255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project}tBTM_BLE_LOCAL_ID_KEYS;
17265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
17275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef union
17285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
17295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTM_BLE_LOCAL_ID_KEYS  id_keys;
17305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BT_OCTET16              er;
17315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project}tBTM_BLE_LOCAL_KEYS;
17325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
17335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
17345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* New LE identity key for local device.
17355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/
17365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef void (tBTM_LE_KEY_CALLBACK) (UINT8 key_type, tBTM_BLE_LOCAL_KEYS *p_key);
17375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
17385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
17395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/***************************
17405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**  Security Manager Types
17415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project****************************/
17425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Structure that applications use to register with BTM_SecRegister */
17435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct
17445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
17455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTM_AUTHORIZE_CALLBACK     *p_authorize_callback;
17465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTM_PIN_CALLBACK           *p_pin_callback;
17475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTM_LINK_KEY_CALLBACK      *p_link_key_callback;
17485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTM_AUTH_COMPLETE_CALLBACK *p_auth_complete_callback;
17495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTM_BOND_CANCEL_CMPL_CALLBACK *p_bond_cancel_cmpl_callback;
17505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTM_SP_CALLBACK            *p_sp_callback;
17515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#if BLE_INCLUDED == TRUE
17525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#if SMP_INCLUDED == TRUE
17535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTM_LE_CALLBACK            *p_le_callback;
17545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#endif
17555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTM_LE_KEY_CALLBACK        *p_le_key_callback;
17565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#endif
17575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTM_APPL_INFO;
17585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
17595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Callback function for when a link supervision timeout event occurs.
17605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** This asynchronous event is enabled/disabled by calling BTM_RegForLstoEvt().
17615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/
17625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef void (tBTM_LSTO_CBACK) (BD_ADDR remote_bda, UINT16 timeout);
17635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
17645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*****************************************************************************
17655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**  POWER MANAGEMENT
17665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*****************************************************************************/
17675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/****************************
17685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**  Power Manager Constants
17695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*****************************/
17705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* BTM Power manager status codes */
17715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectenum
17725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
17735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BTM_PM_STS_ACTIVE = HCI_MODE_ACTIVE,
17745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BTM_PM_STS_HOLD   = HCI_MODE_HOLD,
17755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BTM_PM_STS_SNIFF  = HCI_MODE_SNIFF,
17765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BTM_PM_STS_PARK   = HCI_MODE_PARK,
17775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BTM_PM_STS_SSR,     /* report the SSR parameters in HCI_SNIFF_SUB_RATE_EVT */
17785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BTM_PM_STS_PENDING,   /* when waiting for status from controller */
17795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BTM_PM_STS_ERROR   /* when HCI command status returns error */
17805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project};
17815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef UINT8 tBTM_PM_STATUS;
17825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
17835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* BTM Power manager modes */
17845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectenum
17855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
17865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BTM_PM_MD_ACTIVE = BTM_PM_STS_ACTIVE,
17875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BTM_PM_MD_HOLD   = BTM_PM_STS_HOLD,
17885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BTM_PM_MD_SNIFF  = BTM_PM_STS_SNIFF,
17895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BTM_PM_MD_PARK   = BTM_PM_STS_PARK,
17905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BTM_PM_MD_FORCE  = 0x10 /* OR this to force ACL link to a certain mode */
17915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project};
17925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef UINT8 tBTM_PM_MODE;
17935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
17945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_PM_SET_ONLY_ID  0x80
17955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
17965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Operation codes */
17975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_PM_REG_SET      1 /* The module wants to set the desired power mode */
17985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_PM_REG_NOTIF    2 /* The module wants to receive mode change event */
17995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_PM_DEREG        4 /* The module does not want to involve with PM anymore */
18005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
18015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/************************
18025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**  Power Manager Types
18035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*************************/
18045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct
18055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
18065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT16          max;
18075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT16          min;
18085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT16          attempt;
18095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT16          timeout;
18105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTM_PM_MODE    mode;
18115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTM_PM_PWR_MD;
18125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
18135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*************************************
18145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**  Power Manager Callback Functions
18155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**************************************/
18165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef void (tBTM_PM_STATUS_CBACK) (BD_ADDR p_bda, tBTM_PM_STATUS status,
18175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                     UINT16 value, UINT8 hci_status);
18185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
18195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
18205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/************************
18215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**  Stored Linkkey Types
18225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*************************/
18235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_CB_EVT_DELETE_STORED_LINK_KEYS  4
18245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
18255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct
18265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
18275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8          event;
18285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8          status;
18295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT16         num_keys;
18305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
18315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTM_DELETE_STORED_LINK_KEY_COMPLETE;
18325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
18335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* MIP evnets, callbacks    */
18345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectenum
18355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
18365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BTM_MIP_MODE_CHG_EVT,
18375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BTM_MIP_DISCONNECT_EVT,
18385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BTM_MIP_PKTS_COMPL_EVT,
18395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BTM_MIP_RXDATA_EVT
18405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project};
18415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef UINT8 tBTM_MIP_EVT;
18425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
18435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct
18445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
18455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTM_MIP_EVT    event;
18465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BD_ADDR         bd_addr;
18475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT16          mip_id;
18485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTM_MIP_MODE_CHANGE;
18495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
18505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct
18515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
18525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTM_MIP_EVT    event;
18535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT16          mip_id;
18545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8           disc_reason;
18555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTM_MIP_CONN_TIMEOUT;
18565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
18575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_MIP_MAX_RX_LEN  17
18585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
18595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct
18605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
18615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTM_MIP_EVT    event;
18625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT16          mip_id;
18635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8           rx_len;
18645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8           rx_data[BTM_MIP_MAX_RX_LEN];
18655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTM_MIP_RXDATA;
18665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
18675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct
18685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
18695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTM_MIP_EVT    event;
18705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BD_ADDR         bd_addr;
18715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8           data[11];       /* data[0] shows Vender-specific device type */
18725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTM_MIP_EIR_HANDSHAKE;
18735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
18745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct
18755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
18765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTM_MIP_EVT    event;
18775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT16          num_sent;       /* Number of packets completed at the controller */
18785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTM_MIP_PKTS_COMPL;
18795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
18805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef union
18815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
18825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTM_MIP_EVT            event;
18835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTM_MIP_MODE_CHANGE    mod_chg;
18845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTM_MIP_CONN_TIMEOUT   conn_tmo;
18855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTM_MIP_EIR_HANDSHAKE  eir;
18865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTM_MIP_PKTS_COMPL     completed;
18875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTM_MIP_RXDATA         rxdata;
18885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTM_MIP_EVENT_DATA;
18895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
18905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* MIP event callback function  */
18915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef void (tBTM_MIP_EVENTS_CB) (tBTM_MIP_EVT event, tBTM_MIP_EVENT_DATA data);
18925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
18935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* MIP Device query callback function  */
18945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef BOOLEAN (tBTM_MIP_QUERY_CB) (BD_ADDR dev_addr, UINT8 *p_mode, LINK_KEY link_key);
18955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1896e5ba8841cd39e17c05aeb4ab65b5b761d41577daSatya Calloji#define BTM_CONTRL_ACTIVE  1       /* ACL link on, SCO link ongoing, sniff mode */
1897e5ba8841cd39e17c05aeb4ab65b5b761d41577daSatya Calloji#define BTM_CONTRL_SCAN    2       /* Scan state - paging/inquiry/trying to connect*/
1898e5ba8841cd39e17c05aeb4ab65b5b761d41577daSatya Calloji#define BTM_CONTRL_IDLE    3       /* Idle state - page scan, LE advt, inquiry scan */
1899e5ba8841cd39e17c05aeb4ab65b5b761d41577daSatya Calloji
1900e5ba8841cd39e17c05aeb4ab65b5b761d41577daSatya Callojitypedef UINT8 tBTM_CONTRL_STATE;
1901e5ba8841cd39e17c05aeb4ab65b5b761d41577daSatya Calloji
19025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*****************************************************************************
19035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**  EXTERNAL FUNCTION DECLARATIONS
19045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*****************************************************************************/
19055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
19065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*****************************************************************************
19075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**  DEVICE CONTROL and COMMON FUNCTIONS
19085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*****************************************************************************/
19095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
19105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
19115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
19125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         BTM_DeviceReset
19135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
19145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      This function is called to reset the controller.The Callback function
19155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  if provided is called when startup of the device has
19165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  completed.
19175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
19185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          void
19195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
19205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
192124933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern void BTM_DeviceReset (tBTM_CMPL_CB *p_cb);
19225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
19235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
19245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
19255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
19265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         BTM_IsDeviceUp
19275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
19285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      This function is called to check if the device is up.
19295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
19305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          TRUE if device is up, else FALSE
19315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
19325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
193324933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern BOOLEAN BTM_IsDeviceUp (void);
19345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
19355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
19365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
19375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
19385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         BTM_SetLocalDeviceName
19395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
19405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      This function is called to set the local device name.
19415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
19425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          BTM_CMD_STARTED if successful, otherwise an error
19435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
19445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
194524933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern tBTM_STATUS BTM_SetLocalDeviceName (char *p_name);
19465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
19475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
19485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
19495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         BTM_SetDeviceClass
19505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
19515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      This function is called to set the local device class
19525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
19535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          BTM_SUCCESS if successful, otherwise an error
19545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
19555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
195624933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern tBTM_STATUS  BTM_SetDeviceClass (DEV_CLASS dev_class);
19575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
19585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
19595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
19605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
19615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         BTM_ReadLocalDeviceName
19625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
19635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      This function is called to read the local device name.
19645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
19655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          status of the operation
19665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  If success, BTM_SUCCESS is returned and p_name points stored
19675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                              local device name
19685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  If BTM doesn't store local device name, BTM_NO_RESOURCES is
19695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                              is returned and p_name is set to NULL
19705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
19715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
197224933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern tBTM_STATUS BTM_ReadLocalDeviceName (char **p_name);
19735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
19745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
19755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
19765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         BTM_ReadLocalDeviceNameFromController
19775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
19785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      Get local device name from controller. Do not use cached
19795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  name (used to get chip-id prior to btm reset complete).
19805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
19815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          BTM_CMD_STARTED if successful, otherwise an error
19825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
19835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
198424933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern tBTM_STATUS BTM_ReadLocalDeviceNameFromController (tBTM_CMPL_CB *p_rln_cmpl_cback);
19855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
19865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
19875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
19885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         BTM_ReadDeviceClass
19895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
19905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      This function is called to read the local device class
19915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
19925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          pointer to the device class
19935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
19945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
199524933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern UINT8 *BTM_ReadDeviceClass (void);
19965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
19975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
19985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
19995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
20005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         BTM_ReadLocalFeatures
20015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
20025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      This function is called to read the local features
20035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
20045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          pointer to the local features string
20055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
20065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
200724933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern UINT8 *BTM_ReadLocalFeatures (void);
20085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
20095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
20105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
20115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         BTM_RegisterForDeviceStatusNotif
20125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
20135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      This function is called to register for device status
20145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  change notifications.
20155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
20165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          pointer to previous caller's callback function or NULL if first
20175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  registration.
20185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
20195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
202024933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern tBTM_DEV_STATUS_CB *BTM_RegisterForDeviceStatusNotif (tBTM_DEV_STATUS_CB *p_cb);
20215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
20225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
20235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
20245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
20255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         BTM_RegisterForVSEvents
20265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
20275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      This function is called to register/deregister for vendor
20285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  specific HCI events.
20295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
20305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  If is_register=TRUE, then the function will be registered;
20315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  if is_register=FALSE, then the function will be deregistered.
20325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
20335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          BTM_SUCCESS if successful,
20345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  BTM_BUSY if maximum number of callbacks have already been
20355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                           registered.
20365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
20375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
203824933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern tBTM_STATUS BTM_RegisterForVSEvents (tBTM_VS_EVT_CB *p_cb, BOOLEAN is_register);
20395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
20405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
20415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
20425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
20435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         BTM_VendorSpecificCommand
20445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
20455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      Send a vendor specific HCI command to the controller.
20465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
20475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns
20485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**      BTM_SUCCESS         Command sent. Does not expect command complete
20495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                              event. (command cmpl callback param is NULL)
20505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**      BTM_CMD_STARTED     Command sent. Waiting for command cmpl event.
20515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**      BTM_BUSY            Command not sent. Waiting for cmd cmpl event for
20525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                              prior command.
20535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
20545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
205524933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern tBTM_STATUS BTM_VendorSpecificCommand(UINT16 opcode,
205624933b5b1a06274c47133debac5251a97128a267June R. Tate-Gans                                             UINT8 param_len,
205724933b5b1a06274c47133debac5251a97128a267June R. Tate-Gans                                             UINT8 *p_param_buf,
205824933b5b1a06274c47133debac5251a97128a267June R. Tate-Gans                                             tBTM_VSC_CMPL_CB *p_cb);
20595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
20605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
20615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
20625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
20635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         BTM_AllocateSCN
20645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
20655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      Look through the Server Channel Numbers for a free one to be
20665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  used with an RFCOMM connection.
20675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
20685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          Allocated SCN number or 0 if none.
20695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
20705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
207124933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern UINT8 BTM_AllocateSCN(void);
20725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
20735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
20745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
20755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         BTM_TryAllocateSCN
20765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
20775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      Try to allocate a fixed server channel
20785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
20795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          Returns TRUE if server channel was available
20805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
20815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
208224933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern BOOLEAN BTM_TryAllocateSCN(UINT8 scn);
20835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
20845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
20855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
20865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
20875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         BTM_FreeSCN
20885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
20895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      Free the specified SCN.
20905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
20915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          TRUE if successful, FALSE if SCN is not in use or invalid
20925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
20935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
209424933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern BOOLEAN BTM_FreeSCN(UINT8 scn);
20955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
20965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
20975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
20985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
20995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         BTM_SetTraceLevel
21005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
21015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      This function sets the trace level for BTM.  If called with
21025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  a value of 0xFF, it simply returns the current trace level.
21035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
21045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          The new or current trace level
21055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
21065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
210724933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern UINT8 BTM_SetTraceLevel (UINT8 new_level);
21085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
21095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
21105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
21115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
21125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         BTM_WritePageTimeout
21135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
21145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      Send HCI Wite Page Timeout.
21155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
21165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns
21175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**      BTM_SUCCESS         Command sent.
21185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**      BTM_NO_RESOURCES    If out of resources to send the command.
21195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
21205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
212124933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern tBTM_STATUS BTM_WritePageTimeout(UINT16 timeout);
21225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
21235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
21245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
21255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         BTM_WriteVoiceSettings
21265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
21275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      Send HCI Write Voice Settings command.
21285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  See hcidefs.h for settings bitmask values.
21295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
21305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns
21315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**      BTM_SUCCESS         Command sent.
21325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**      BTM_NO_RESOURCES     If out of resources to send the command.
21335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
21345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
21355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
213624933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern tBTM_STATUS BTM_WriteVoiceSettings(UINT16 settings);
21375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
21385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
21395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
21405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         BTM_EnableTestMode
21415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
21425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      Send HCI the enable device under test command.
21435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
21445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  Note: Controller can only be taken out of this mode by
21455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                      resetting the controller.
21465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
21475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns
21485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**      BTM_SUCCESS         Command sent.
21495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**      BTM_NO_RESOURCES    If out of resources to send the command.
21505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
21515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
21525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
215324933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern tBTM_STATUS BTM_EnableTestMode(void);
21545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
21555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
21565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*****************************************************************************
21575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**  DEVICE DISCOVERY FUNCTIONS - Inquiry, Remote Name, Discovery, Class of Device
21585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*****************************************************************************/
21595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
21605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
21615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
21625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         BTM_SetDiscoverability
21635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
21645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      This function is called to set the device into or out of
21655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  discoverable mode. Discoverable mode means inquiry
21665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  scans are enabled.  If a value of '0' is entered for window or
21675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  interval, the default values are used.
21685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
21695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          BTM_SUCCESS if successful
21705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  BTM_BUSY if a setting of the filter is already in progress
21715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  BTM_NO_RESOURCES if couldn't get a memory pool buffer
21725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  BTM_ILLEGAL_VALUE if a bad parameter was detected
21735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  BTM_WRONG_MODE if the device is not up.
21745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
21755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
217624933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern tBTM_STATUS  BTM_SetDiscoverability (UINT16 inq_mode, UINT16 window,
217724933b5b1a06274c47133debac5251a97128a267June R. Tate-Gans                                            UINT16 interval);
21785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
21795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
21805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
21815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
21825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         BTM_ReadDiscoverability
21835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
21845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      This function is called to read the current discoverability
21855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  mode of the device.
21865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
21875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Output Params:   p_window - current inquiry scan duration
21885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  p_interval - current inquiry scan interval
21895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
21905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          BTM_NON_DISCOVERABLE, BTM_LIMITED_DISCOVERABLE, or
21915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  BTM_GENERAL_DISCOVERABLE
21925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
21935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
219424933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern UINT16       BTM_ReadDiscoverability (UINT16 *p_window,
219524933b5b1a06274c47133debac5251a97128a267June R. Tate-Gans                                             UINT16 *p_interval);
21965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
21975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
21985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
21995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
22005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         BTM_SetPeriodicInquiryMode
22015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
22025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      This function is called to set the device periodic inquiry mode.
22035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  If the duration is zero, the periodic inquiry mode is cancelled.
22045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
22055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Parameters:      p_inqparms - pointer to the inquiry information
22065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                      mode - GENERAL or LIMITED inquiry
22075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                      duration - length in 1.28 sec intervals (If '0', the inquiry is CANCELLED)
22085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                      max_resps - maximum amount of devices to search for before ending the inquiry
22095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                      filter_cond_type - BTM_CLR_INQUIRY_FILTER, BTM_FILTER_COND_DEVICE_CLASS, or
22105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                                         BTM_FILTER_COND_BD_ADDR
22115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                      filter_cond - value for the filter (based on filter_cond_type)
22125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
22135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  max_delay - maximum amount of time between successive inquiries
22145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  min_delay - minimum amount of time between successive inquiries
22155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  p_results_cb - callback returning pointer to results (tBTM_INQ_RESULTS)
22165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
22175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          BTM_CMD_STARTED if successfully started
22185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  BTM_ILLEGAL_VALUE if a bad parameter is detected
22195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  BTM_NO_RESOURCES if could not allocate a message buffer
22205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  BTM_SUCCESS - if cancelling the periodic inquiry
22215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  BTM_BUSY - if an inquiry is already active
22225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  BTM_WRONG_MODE if the device is not up.
22235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
22245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
222524933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern tBTM_STATUS  BTM_SetPeriodicInquiryMode (tBTM_INQ_PARMS *p_inqparms,
222624933b5b1a06274c47133debac5251a97128a267June R. Tate-Gans                                                UINT16 max_delay, UINT16 min_delay,
222724933b5b1a06274c47133debac5251a97128a267June R. Tate-Gans                                                tBTM_INQ_RESULTS_CB *p_results_cb);
22285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
22295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
22305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
22315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
22325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         BTM_StartInquiry
22335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
22345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      This function is called to start an inquiry.
22355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
22365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Parameters:      p_inqparms - pointer to the inquiry information
22375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                      mode - GENERAL or LIMITED inquiry
22385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                      duration - length in 1.28 sec intervals (If '0', the inquiry is CANCELLED)
22395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                      max_resps - maximum amount of devices to search for before ending the inquiry
22405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                      filter_cond_type - BTM_CLR_INQUIRY_FILTER, BTM_FILTER_COND_DEVICE_CLASS, or
22415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                                         BTM_FILTER_COND_BD_ADDR
22425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                      filter_cond - value for the filter (based on filter_cond_type)
22435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
22445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  p_results_cb   - Pointer to the callback routine which gets called
22455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                                upon receipt of an inquiry result. If this field is
22465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                                NULL, the application is not notified.
22475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
22485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  p_cmpl_cb   - Pointer to the callback routine which gets called
22495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                                upon completion.  If this field is NULL, the
22505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                                application is not notified when completed.
22515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          tBTM_STATUS
22525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  BTM_CMD_STARTED if successfully initiated
22535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  BTM_BUSY if already in progress
22545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  BTM_ILLEGAL_VALUE if parameter(s) are out of range
22555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  BTM_NO_RESOURCES if could not allocate resources to start the command
22565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  BTM_WRONG_MODE if the device is not up.
22575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
22585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
225924933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern tBTM_STATUS  BTM_StartInquiry (tBTM_INQ_PARMS *p_inqparms,
226024933b5b1a06274c47133debac5251a97128a267June R. Tate-Gans                                      tBTM_INQ_RESULTS_CB *p_results_cb,
226124933b5b1a06274c47133debac5251a97128a267June R. Tate-Gans                                      tBTM_CMPL_CB *p_cmpl_cb);
22625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
22635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
22645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
22655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
22665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         BTM_IsInquiryActive
22675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
22685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      This function returns a bit mask of the current inquiry state
22695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
22705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          BTM_INQUIRY_INACTIVE if inactive (0)
22715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  BTM_LIMITED_INQUIRY_ACTIVE if a limted inquiry is active
22725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  BTM_GENERAL_INQUIRY_ACTIVE if a general inquiry is active
22735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  BTM_PERIODIC_INQUIRY_ACTIVE if a periodic inquiry is active
22745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
22755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
227624933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern UINT16 BTM_IsInquiryActive (void);
22775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
22785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
22795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
22805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
22815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         BTM_CancelInquiry
22825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
22835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      This function cancels an inquiry if active
22845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
22855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          BTM_SUCCESS if successful
22865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  BTM_NO_RESOURCES if could not allocate a message buffer
22875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  BTM_WRONG_MODE if the device is not up.
22885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
22895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
229024933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern tBTM_STATUS BTM_CancelInquiry(void);
22915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
22925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
22935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
22945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
22955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         BTM_CancelPeriodicInquiry
22965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
22975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      This function cancels a periodic inquiry
22985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
22995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns
23005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  BTM_NO_RESOURCES if could not allocate a message buffer
23015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  BTM_SUCCESS - if cancelling the periodic inquiry
23025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  BTM_WRONG_MODE if the device is not up.
23035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
23045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
230524933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern tBTM_STATUS BTM_CancelPeriodicInquiry(void);
23065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
23075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
23085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
23095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
23105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         BTM_SetConnectability
23115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
23125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      This function is called to set the device into or out of
23135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  connectable mode. Discoverable mode means page scans enabled.
23145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
23155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          BTM_SUCCESS if successful
23165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  BTM_ILLEGAL_VALUE if a bad parameter is detected
23175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  BTM_NO_RESOURCES if could not allocate a message buffer
23185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  BTM_WRONG_MODE if the device is not up.
23195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
23205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
232124933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern tBTM_STATUS BTM_SetConnectability (UINT16 page_mode, UINT16 window,
232224933b5b1a06274c47133debac5251a97128a267June R. Tate-Gans                                          UINT16 interval);
23235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
23245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
23255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
23265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
23275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         BTM_ReadConnectability
23285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
23295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      This function is called to read the current discoverability
23305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  mode of the device.
23315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Output Params    p_window - current page scan duration
23325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  p_interval - current time between page scans
23335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
23345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          BTM_NON_CONNECTABLE or BTM_CONNECTABLE
23355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
23365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
233724933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern UINT16 BTM_ReadConnectability (UINT16 *p_window, UINT16 *p_interval);
23385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
23395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
23405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
23415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
23425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         BTM_SetInquiryMode
23435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
23445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      This function is called to set standard, with RSSI
23455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  mode or extended of the inquiry for local device.
23465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
23475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Input Params:    BTM_INQ_RESULT_STANDARD, BTM_INQ_RESULT_WITH_RSSI or
23485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  BTM_INQ_RESULT_EXTENDED
23495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
23505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          BTM_SUCCESS if successful
23515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  BTM_NO_RESOURCES if couldn't get a memory pool buffer
23525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  BTM_ILLEGAL_VALUE if a bad parameter was detected
23535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  BTM_WRONG_MODE if the device is not up.
23545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
23555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
235624933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern tBTM_STATUS  BTM_SetInquiryMode (UINT8 mode);
23575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
23585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
23595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
23605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         BTM_SetInquiryScanType
23615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
23625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      This function is called to set the iquiry scan-type to
23635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  standard or interlaced.
23645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
23655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Input Params:    BTM_SCAN_TYPE_STANDARD or BTM_SCAN_TYPE_INTERLACED
23665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
23675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          BTM_SUCCESS if successful
23685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  BTM_MODE_UNSUPPORTED if not a 1.2 device
23695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  BTM_WRONG_MODE if the device is not up.
23705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
23715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
237224933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern tBTM_STATUS BTM_SetInquiryScanType (UINT16 scan_type);
23735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
23745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
23755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
23765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         BTM_SetPageScanType
23775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
23785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      This function is called to set the page scan-type to
23795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  standard or interlaced.
23805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
23815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Input Params:    BTM_SCAN_TYPE_STANDARD or BTM_SCAN_TYPE_INTERLACED
23825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
23835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          BTM_SUCCESS if successful
23845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  BTM_MODE_UNSUPPORTED if not a 1.2 device
23855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  BTM_WRONG_MODE if the device is not up.
23865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
23875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
23885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
238924933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern tBTM_STATUS BTM_SetPageScanType (UINT16 scan_type);
23905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
23915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
23925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
23935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         BTM_ReadRemoteDeviceName
23945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
23955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      This function initiates a remote device HCI command to the
23965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  controller and calls the callback when the process has completed.
23975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
23985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Input Params:    remote_bda      - device address of name to retrieve
23995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  p_cb            - callback function called when BTM_CMD_STARTED
24005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                                    is returned.
24015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                                    A pointer to tBTM_REMOTE_DEV_NAME is passed to the
24025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                                    callback.
24035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
24045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns
24055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  BTM_CMD_STARTED is returned if the request was successfully sent
24065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                                  to HCI.
24075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  BTM_BUSY if already in progress
24085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  BTM_UNKNOWN_ADDR if device address is bad
24095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  BTM_NO_RESOURCES if could not allocate resources to start the command
24105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  BTM_WRONG_MODE if the device is not up.
24115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
24125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
241324933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern tBTM_STATUS  BTM_ReadRemoteDeviceName (BD_ADDR remote_bda,
241424933b5b1a06274c47133debac5251a97128a267June R. Tate-Gans                                              tBTM_CMPL_CB *p_cb,
241524933b5b1a06274c47133debac5251a97128a267June R. Tate-Gans                                              tBT_TRANSPORT transport);
24165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
24175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
24185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
24195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
24205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         BTM_CancelRemoteDeviceName
24215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
24225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      This function initiates the cancel request for the specified
24235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  remote device.
24245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
24255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Input Params:    None
24265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
24275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns
24285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  BTM_CMD_STARTED is returned if the request was successfully sent
24295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                                  to HCI.
24305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  BTM_NO_RESOURCES if could not allocate resources to start the command
24315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  BTM_WRONG_MODE if there is not an active remote name request.
24325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
24335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
243424933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern tBTM_STATUS  BTM_CancelRemoteDeviceName (void);
24355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
24365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
24375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
24385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         BTM_ReadRemoteVersion
24395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
24405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      This function is called to read a remote device's version
24415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
24425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          BTM_SUCCESS if successful, otherwise an error
24435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
24445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
244524933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern tBTM_STATUS BTM_ReadRemoteVersion (BD_ADDR addr,
244624933b5b1a06274c47133debac5251a97128a267June R. Tate-Gans                                          UINT8 *lmp_version,
244724933b5b1a06274c47133debac5251a97128a267June R. Tate-Gans                                          UINT16 *manufacturer,
244824933b5b1a06274c47133debac5251a97128a267June R. Tate-Gans                                          UINT16 *lmp_sub_version);
24495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
24505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
24515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
24525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         BTM_ReadRemoteFeatures
24535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
24549d140a9dc432e457a0437920d5f84c22e3baea0dGanesh Ganapathi Batta** Description      This function is called to read a remote device's
24553aa60544585b5fb0f35c1165539a4a859fc0f25cAndre Eisenbach**                  supported features mask (features mask located at page 0)
24565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
24573aa60544585b5fb0f35c1165539a4a859fc0f25cAndre Eisenbach**                  Note: The size of device features mask page is
24583aa60544585b5fb0f35c1165539a4a859fc0f25cAndre Eisenbach**                  BTM_FEATURE_BYTES_PER_PAGE bytes.
24593aa60544585b5fb0f35c1165539a4a859fc0f25cAndre Eisenbach**
24603aa60544585b5fb0f35c1165539a4a859fc0f25cAndre Eisenbach** Returns          pointer to the remote supported features mask
24615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
24625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
246324933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern UINT8 *BTM_ReadRemoteFeatures (BD_ADDR addr);
24645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
24655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
24665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
24673aa60544585b5fb0f35c1165539a4a859fc0f25cAndre Eisenbach** Function         BTM_ReadRemoteExtendedFeatures
24683aa60544585b5fb0f35c1165539a4a859fc0f25cAndre Eisenbach**
24693aa60544585b5fb0f35c1165539a4a859fc0f25cAndre Eisenbach** Description      This function is called to read a specific extended features
24703aa60544585b5fb0f35c1165539a4a859fc0f25cAndre Eisenbach**                  page of the remote device
24713aa60544585b5fb0f35c1165539a4a859fc0f25cAndre Eisenbach**
24723aa60544585b5fb0f35c1165539a4a859fc0f25cAndre Eisenbach**                  Note1: The size of device features mask page is
24733aa60544585b5fb0f35c1165539a4a859fc0f25cAndre Eisenbach**                  BTM_FEATURE_BYTES_PER_PAGE bytes.
24743aa60544585b5fb0f35c1165539a4a859fc0f25cAndre Eisenbach**                  Note2: The valid device features mask page number depends on
24753aa60544585b5fb0f35c1165539a4a859fc0f25cAndre Eisenbach**                  the remote device capabilities. It is expected to be in the
24763aa60544585b5fb0f35c1165539a4a859fc0f25cAndre Eisenbach**                  range [0 - BTM_EXT_FEATURES_PAGE_MAX].
24773aa60544585b5fb0f35c1165539a4a859fc0f25cAndre Eisenbach
24783aa60544585b5fb0f35c1165539a4a859fc0f25cAndre Eisenbach** Returns          pointer to the remote extended features mask
24793aa60544585b5fb0f35c1165539a4a859fc0f25cAndre Eisenbach**                  or NULL if page_number is not valid
24803aa60544585b5fb0f35c1165539a4a859fc0f25cAndre Eisenbach**
24813aa60544585b5fb0f35c1165539a4a859fc0f25cAndre Eisenbach*******************************************************************************/
248224933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern UINT8 *BTM_ReadRemoteExtendedFeatures (BD_ADDR addr, UINT8 page_number);
24833aa60544585b5fb0f35c1165539a4a859fc0f25cAndre Eisenbach
24843aa60544585b5fb0f35c1165539a4a859fc0f25cAndre Eisenbach/*******************************************************************************
24853aa60544585b5fb0f35c1165539a4a859fc0f25cAndre Eisenbach**
24863aa60544585b5fb0f35c1165539a4a859fc0f25cAndre Eisenbach** Function         BTM_ReadNumberRemoteFeaturesPages
24873aa60544585b5fb0f35c1165539a4a859fc0f25cAndre Eisenbach**
24883aa60544585b5fb0f35c1165539a4a859fc0f25cAndre Eisenbach** Description      This function is called to retrieve the number of feature pages
24893aa60544585b5fb0f35c1165539a4a859fc0f25cAndre Eisenbach**                  read from the remote device
24903aa60544585b5fb0f35c1165539a4a859fc0f25cAndre Eisenbach**
24913aa60544585b5fb0f35c1165539a4a859fc0f25cAndre Eisenbach** Returns          number of features pages read from the remote device
24923aa60544585b5fb0f35c1165539a4a859fc0f25cAndre Eisenbach**
24933aa60544585b5fb0f35c1165539a4a859fc0f25cAndre Eisenbach*******************************************************************************/
249424933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern UINT8 BTM_ReadNumberRemoteFeaturesPages (BD_ADDR addr);
24953aa60544585b5fb0f35c1165539a4a859fc0f25cAndre Eisenbach
24963aa60544585b5fb0f35c1165539a4a859fc0f25cAndre Eisenbach/*******************************************************************************
24973aa60544585b5fb0f35c1165539a4a859fc0f25cAndre Eisenbach**
24983aa60544585b5fb0f35c1165539a4a859fc0f25cAndre Eisenbach** Function         BTM_ReadAllRemoteFeatures
24993aa60544585b5fb0f35c1165539a4a859fc0f25cAndre Eisenbach**
25003aa60544585b5fb0f35c1165539a4a859fc0f25cAndre Eisenbach** Description      This function is called to read all features of the remote device
25013aa60544585b5fb0f35c1165539a4a859fc0f25cAndre Eisenbach**
25023aa60544585b5fb0f35c1165539a4a859fc0f25cAndre Eisenbach** Returns          pointer to the byte[0] of the page[0] of the remote device
25033aa60544585b5fb0f35c1165539a4a859fc0f25cAndre Eisenbach**                  feature mask.
25043aa60544585b5fb0f35c1165539a4a859fc0f25cAndre Eisenbach**
25053aa60544585b5fb0f35c1165539a4a859fc0f25cAndre Eisenbach** Note:            the function returns the pointer to the array of the size
25063aa60544585b5fb0f35c1165539a4a859fc0f25cAndre Eisenbach**                  BTM_FEATURE_BYTES_PER_PAGE * (BTM_EXT_FEATURES_PAGE_MAX + 1).
25073aa60544585b5fb0f35c1165539a4a859fc0f25cAndre Eisenbach**
25083aa60544585b5fb0f35c1165539a4a859fc0f25cAndre Eisenbach*******************************************************************************/
250924933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern UINT8 *BTM_ReadAllRemoteFeatures (BD_ADDR addr);
25103aa60544585b5fb0f35c1165539a4a859fc0f25cAndre Eisenbach
25113aa60544585b5fb0f35c1165539a4a859fc0f25cAndre Eisenbach/*******************************************************************************
25123aa60544585b5fb0f35c1165539a4a859fc0f25cAndre Eisenbach**
25135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         BTM_InqDbRead
25145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
25155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      This function looks through the inquiry database for a match
25165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  based on Bluetooth Device Address. This is the application's
25175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  interface to get the inquiry details of a specific BD address.
25185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
25195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          pointer to entry, or NULL if not found
25205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
25215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
2522063ca0230d902b1397bb8c19366e807980d876f3Jakub Pawlowskiextern tBTM_INQ_INFO *BTM_InqDbRead (const BD_ADDR p_bda);
25235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
25245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
25255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
25265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
25275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         BTM_InqDbFirst
25285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
25295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      This function looks through the inquiry database for the first
25305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  used entry, and returns that. This is used in conjunction with
25315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  BTM_InqDbNext by applications as a way to walk through the
25325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  inquiry database.
25335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
25345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          pointer to first in-use entry, or NULL if DB is empty
25355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
25365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
253724933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern tBTM_INQ_INFO *BTM_InqDbFirst (void);
25385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
25395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
25405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
25415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
25425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         BTM_InqDbNext
25435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
25445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      This function looks through the inquiry database for the next
25455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  used entry, and returns that.  If the input parameter is NULL,
25465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  the first entry is returned.
25475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
25485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          pointer to next in-use entry, or NULL if no more found.
25495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
25505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
255124933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern tBTM_INQ_INFO *BTM_InqDbNext (tBTM_INQ_INFO *p_cur);
25525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
25535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
25545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
25555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
25565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         BTM_ClearInqDb
25575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
25585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      This function is called to clear out a device or all devices
25595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  from the inquiry database.
25605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
25615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Parameter        p_bda - (input) BD_ADDR ->  Address of device to clear
25625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                                              (NULL clears all entries)
25635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
25645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          BTM_BUSY if an inquiry, get remote name, or event filter
25655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                          is active, otherwise BTM_SUCCESS
25665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
25675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
256824933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern tBTM_STATUS  BTM_ClearInqDb (BD_ADDR p_bda);
25695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
25705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
25715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
25725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         BTM_ReadInquiryRspTxPower
25735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
25745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      This command will read the inquiry Transmit Power level used
25755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  to transmit the FHS and EIR data packets.
25765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  This can be used directly in the Tx Power Level EIR data type.
25775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
25785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          BTM_SUCCESS if successful
25795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
25805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
258124933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern tBTM_STATUS BTM_ReadInquiryRspTxPower (tBTM_CMPL_CB *p_cb);
25825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
25835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
25845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
25855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         BTM_StartDiscovery
25865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
25875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      This function is called by an application (or profile)
25885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  when it wants to trigger an service discovery using the
25895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  BTM's discovery database.
25905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
25915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          tBTM_STATUS
25925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                      BTM_CMD_STARTED if the discovery was initiated
25935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                      BTM_BUSY if one is already in progress
25945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                      BTM_UNKNOWN_ADDR if no addresses are in the INQ DB
25955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                      BTM_ERR_PROCESSING if err initiating the command
25965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
25975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
259824933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern tBTM_STATUS BTM_StartDiscovery (tBTM_CMPL_CB *p_cmpl_cb,
259924933b5b1a06274c47133debac5251a97128a267June R. Tate-Gans                                       BD_ADDR_PTR p_rem_addr);
26005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
26015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
26025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
26035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
26045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         BTM_FindAttribute
26055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
26065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      This function is called by an application (or profile)
26075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  when it wants to see if an attribute exists in the BTM
26085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  discovery database.
26095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
26105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          Pointer to matching record, or NULL
26115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
26125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
261324933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern tSDP_DISC_REC *BTM_FindAttribute (UINT16 attr_id,
261424933b5b1a06274c47133debac5251a97128a267June R. Tate-Gans                                         tSDP_DISC_REC *p_start_rec);
26155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
26165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
26175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
26185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
26195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         BTM_FindService
26205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
26215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      This function is called by an application (or profile)
26225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  when it wants to see if a service exists in the BTM
26235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  discovery database.
26245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
26255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          Pointer to matching record, or NULL
26265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
26275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
262824933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern tSDP_DISC_REC *BTM_FindService (UINT16 service_uuid,
262924933b5b1a06274c47133debac5251a97128a267June R. Tate-Gans                                       tSDP_DISC_REC *p_start_rec);
26305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
26315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
26325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
26335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
26345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         BTM_SetDiscoveryParams
26355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
26365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      This function is called to set the BTM default discovery parameters.
26375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  These UUID and attribute filters are used during the call to
26385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  BTM_StartDiscovery.
26395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
26405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          void
26415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
26425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
264324933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern void BTM_SetDiscoveryParams (UINT16 num_uuid, tSDP_UUID *p_uuid_list,
264424933b5b1a06274c47133debac5251a97128a267June R. Tate-Gans                                    UINT16 num_attr, UINT16 *p_attr_list);
26455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
26465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
26475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*****************************************************************************
26485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**  ACL CHANNEL MANAGEMENT FUNCTIONS
26495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*****************************************************************************/
26505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
26515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
26525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         BTM_SetLinkPolicy
26535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
26545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      Create and send HCI "Write Policy Set" command
26555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
26565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          BTM_CMD_STARTED if successfully initiated, otherwise error
26575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
26585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
265924933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern tBTM_STATUS BTM_SetLinkPolicy (BD_ADDR remote_bda,
266024933b5b1a06274c47133debac5251a97128a267June R. Tate-Gans                                      UINT16 *settings);
26615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
26625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
26635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
26645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         BTM_SetDefaultLinkPolicy
26655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
26665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      Set the default value for HCI "Write Policy Set" command
26675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  to use when an ACL link is created.
26685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
26695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          void
26705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
26715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
267224933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern void BTM_SetDefaultLinkPolicy (UINT16 settings);
26735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
26745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
26755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
26765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
26775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         BTM_SetDefaultLinkSuperTout
26785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
26795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      Set the default value for HCI "Write Link Supervision Timeout"
26805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  command to use when an ACL link is created.
26815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
26825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          void
26835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
26845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
268524933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern void BTM_SetDefaultLinkSuperTout (UINT16 timeout);
26865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
26875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
26885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
26895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
26905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         BTM_SetLinkSuperTout
26915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
26925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      Create and send HCI "Write Link Supervision Timeout" command
26935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
26945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          BTM_CMD_STARTED if successfully initiated, otherwise error
26955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
26965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
269724933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern tBTM_STATUS BTM_SetLinkSuperTout (BD_ADDR remote_bda,
269824933b5b1a06274c47133debac5251a97128a267June R. Tate-Gans                                         UINT16 timeout);
2699ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta/*******************************************************************************
2700ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta**
2701ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta** Function         BTM_GetLinkSuperTout
2702ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta**
2703ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta** Description      Read the link supervision timeout value of the connection
2704ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta**
2705ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta** Returns          status of the operation
2706ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta**
2707ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta*******************************************************************************/
270824933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern tBTM_STATUS BTM_GetLinkSuperTout (BD_ADDR remote_bda,
270924933b5b1a06274c47133debac5251a97128a267June R. Tate-Gans                                         UINT16 *p_timeout);
27105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
27115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
27125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
27135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         BTM_IsAclConnectionUp
27145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
27155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      This function is called to check if an ACL connection exists
27165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  to a specific remote BD Address.
27175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
27185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          TRUE if connection is up, else FALSE.
27195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
27205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
272124933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern BOOLEAN BTM_IsAclConnectionUp (BD_ADDR remote_bda, tBT_TRANSPORT transport);
27225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
27235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
27245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
27255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
27265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         BTM_GetRole
27275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
27285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      This function is called to get the role of the local device
27295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  for the ACL connection with the specified remote device
27305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
27315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          BTM_SUCCESS if connection exists.
27325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  BTM_UNKNOWN_ADDR if no active link with bd addr specified
27335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
27345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
273524933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern tBTM_STATUS BTM_GetRole (BD_ADDR remote_bd_addr, UINT8 *p_role);
27365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
27375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
27385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
27395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
27405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
27415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         BTM_SwitchRole
27425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
27435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      This function is called to switch role between master and
27445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  slave.  If role is already set it will do nothing.  If the
27455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  command was initiated, the callback function is called upon
27465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  completion.
27475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
27485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          BTM_SUCCESS if already in specified role.
27495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  BTM_CMD_STARTED if command issued to controller.
27505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  BTM_NO_RESOURCES if couldn't allocate memory to issue command
27515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  BTM_UNKNOWN_ADDR if no active link with bd addr specified
27525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  BTM_MODE_UNSUPPORTED if local device does not support role switching
27535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
27545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
275524933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern tBTM_STATUS BTM_SwitchRole (BD_ADDR remote_bd_addr,
275624933b5b1a06274c47133debac5251a97128a267June R. Tate-Gans                                   UINT8 new_role,
275724933b5b1a06274c47133debac5251a97128a267June R. Tate-Gans                                   tBTM_CMPL_CB *p_cb);
27585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
27595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
27605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
27615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         BTM_ReadRSSI
27625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
27635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      This function is called to read the link policy settings.
27645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  The address of link policy results are returned in the callback.
27655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  (tBTM_RSSI_RESULTS)
27665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
27675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          BTM_CMD_STARTED if command issued to controller.
27685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  BTM_NO_RESOURCES if couldn't allocate memory to issue command
27695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  BTM_UNKNOWN_ADDR if no active link with bd addr specified
27705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  BTM_BUSY if command is already in progress
27715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
27725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
2773063ca0230d902b1397bb8c19366e807980d876f3Jakub Pawlowskiextern tBTM_STATUS BTM_ReadRSSI (const BD_ADDR remote_bda, tBTM_CMPL_CB *p_cb);
27745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
27755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
27765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
27775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
27785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         BTM_ReadTxPower
27795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
27805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      This function is called to read the current connection
27815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  TX power of the connection. The TX power level results
27825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  are returned in the callback.
27835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  (tBTM_RSSI_RESULTS)
27845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
27855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          BTM_CMD_STARTED if command issued to controller.
27865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  BTM_NO_RESOURCES if couldn't allocate memory to issue command
27875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  BTM_UNKNOWN_ADDR if no active link with bd addr specified
27885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  BTM_BUSY if command is already in progress
27895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
27905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
279124933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern tBTM_STATUS BTM_ReadTxPower (BD_ADDR remote_bda,
279224933b5b1a06274c47133debac5251a97128a267June R. Tate-Gans                                    tBT_TRANSPORT transport, tBTM_CMPL_CB *p_cb);
27935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
27945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
27955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
27965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         BTM_ReadLinkQuality
27975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
27985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      This function is called to read the link quality.
27995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  The value of the link quality is returned in the callback.
28005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  (tBTM_LINK_QUALITY_RESULTS)
28015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
28025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          BTM_CMD_STARTED if command issued to controller.
28035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  BTM_NO_RESOURCES if couldn't allocate memory to issue command
28045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  BTM_UNKNOWN_ADDR if no active link with bd addr specified
28055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  BTM_BUSY if command is already in progress
28065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
28075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
280824933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern tBTM_STATUS BTM_ReadLinkQuality (BD_ADDR remote_bda, tBTM_CMPL_CB *p_cb);
28095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
28105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
28115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
28125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         BTM_RegBusyLevelNotif
28135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
28145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      This function is called to register a callback to receive
28155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  busy level change events.
28165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
28175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          BTM_SUCCESS if successfully registered, otherwise error
28185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
28195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
282024933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern tBTM_STATUS BTM_RegBusyLevelNotif (tBTM_BL_CHANGE_CB *p_cb, UINT8 *p_level,
282124933b5b1a06274c47133debac5251a97128a267June R. Tate-Gans                                          tBTM_BL_EVENT_MASK evt_mask);
28225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
28235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
28245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
28255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         BTM_AclRegisterForChanges
28265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
28275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      This function is called to register a callback to receive
28285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  ACL database change events, i.e. new connection or removed.
28295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
28305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          BTM_SUCCESS if successfully initiated, otherwise error
28315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
28325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
283324933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern tBTM_STATUS BTM_AclRegisterForChanges (tBTM_ACL_DB_CHANGE_CB *p_cb);
28345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
28355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
28365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
28375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         BTM_GetNumAclLinks
28385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
28395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      This function is called to count the number of
28405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  ACL links that are active.
28415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
28425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          UINT16  Number of active ACL links
28435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
28445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
284524933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern UINT16 BTM_GetNumAclLinks (void);
28465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
28475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
28485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
28495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         BTM_SetQoS
28505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
28515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      This function is called to setup QoS
28525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
28535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          BTM_CMD_STARTED if successfully initiated, otherwise error
28545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
28555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
285624933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern tBTM_STATUS BTM_SetQoS(BD_ADDR bd, FLOW_SPEC *p_flow,
285724933b5b1a06274c47133debac5251a97128a267June R. Tate-Gans                              tBTM_CMPL_CB *p_cb);
28585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
28595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
28605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*****************************************************************************
28615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**  (e)SCO CHANNEL MANAGEMENT FUNCTIONS
28625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*****************************************************************************/
28635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
28645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
28655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         BTM_CreateSco
28665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
28675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      This function is called to create an SCO connection. If the
28685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  "is_orig" flag is TRUE, the connection will be originated,
28695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  otherwise BTM will wait for the other side to connect.
28705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
28715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          BTM_UNKNOWN_ADDR if the ACL connection is not up
28725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  BTM_BUSY         if another SCO being set up to
28735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                                   the same BD address
28745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  BTM_NO_RESOURCES if the max SCO limit has been reached
28755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  BTM_CMD_STARTED  if the connection establishment is started.
28765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                                   In this case, "*p_sco_inx" is filled in
28775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                                   with the sco index used for the connection.
28785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
28795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
288024933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern tBTM_STATUS BTM_CreateSco (BD_ADDR remote_bda, BOOLEAN is_orig,
288124933b5b1a06274c47133debac5251a97128a267June R. Tate-Gans                                  UINT16 pkt_types, UINT16 *p_sco_inx,
288224933b5b1a06274c47133debac5251a97128a267June R. Tate-Gans                                  tBTM_SCO_CB *p_conn_cb,
288324933b5b1a06274c47133debac5251a97128a267June R. Tate-Gans                                  tBTM_SCO_CB *p_disc_cb);
28845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
28855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
28865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
28875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
28885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         BTM_RemoveSco
28895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
28905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      This function is called to remove a specific SCO connection.
28915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
28925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          BTM_CMD_STARTED if successfully initiated, otherwise error
28935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
28945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
289524933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern tBTM_STATUS BTM_RemoveSco (UINT16 sco_inx);
28965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
28975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
28985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
28995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
29005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         BTM_SetScoPacketTypes
29015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
29025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      This function is called to set the packet types used for
29035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  a specific SCO connection,
29045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
29055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Parameters       pkt_types - One or more of the following
29065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  BTM_SCO_PKT_TYPES_MASK_HV1
29075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  BTM_SCO_PKT_TYPES_MASK_HV2
29085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  BTM_SCO_PKT_TYPES_MASK_HV3
29095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  BTM_SCO_PKT_TYPES_MASK_EV3
29105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  BTM_SCO_PKT_TYPES_MASK_EV4
29115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  BTM_SCO_PKT_TYPES_MASK_EV5
29125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
29135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  BTM_SCO_LINK_ALL_MASK   - enables all supported types
29145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
29155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          BTM_CMD_STARTED if successfully initiated, otherwise error
29165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
29175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
291824933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern tBTM_STATUS BTM_SetScoPacketTypes (UINT16 sco_inx, UINT16 pkt_types);
29195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
29205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
29215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
29225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
29235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         BTM_ReadScoPacketTypes
29245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
29255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      This function is read the packet types used for a specific
29265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  SCO connection.
29275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
29285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns       One or more of the following (bitmask)
29295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  BTM_SCO_PKT_TYPES_MASK_HV1
29305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  BTM_SCO_PKT_TYPES_MASK_HV2
29315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  BTM_SCO_PKT_TYPES_MASK_HV3
29325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  BTM_SCO_PKT_TYPES_MASK_EV3
29335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  BTM_SCO_PKT_TYPES_MASK_EV4
29345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  BTM_SCO_PKT_TYPES_MASK_EV5
29355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
29365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          packet types supported for the connection
29375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
29385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
293924933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern UINT16 BTM_ReadScoPacketTypes (UINT16 sco_inx);
29405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
29415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
29425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
29435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
29445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         BTM_ReadDeviceScoPacketTypes
29455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
29465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      This function is read the SCO packet types that
29475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  the device supports.
29485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
29495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          packet types supported by the device.
29505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
29515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
295224933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern UINT16 BTM_ReadDeviceScoPacketTypes (void);
29535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
29545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
29555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
29565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
29575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         BTM_ReadScoHandle
29585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
29595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      This function is used to read the HCI handle used for a specific
29605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  SCO connection,
29615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
29625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          handle for the connection, or 0xFFFF if invalid SCO index.
29635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
29645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
296524933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern UINT16 BTM_ReadScoHandle (UINT16 sco_inx);
29665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
29675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
29685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
29695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
29705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         BTM_ReadScoBdAddr
29715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
29725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      This function is read the remote BD Address for a specific
29735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  SCO connection,
29745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
29755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          pointer to BD address or NULL if not known
29765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
29775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
297824933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern UINT8 *BTM_ReadScoBdAddr (UINT16 sco_inx);
29795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
29805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
29815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
29825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
29835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         BTM_ReadScoDiscReason
29845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
29855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      This function is returns the reason why an (e)SCO connection
29865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  has been removed. It contains the value until read, or until
29875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  another (e)SCO connection has disconnected.
29885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
29895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          HCI reason or BTM_INVALID_SCO_DISC_REASON if not set.
29905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
29915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
299224933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern UINT16 BTM_ReadScoDiscReason (void);
29935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
29945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
29955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
29965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
29975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         BTM_SetEScoMode
29985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
29995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      This function sets up the negotiated parameters for SCO or
30005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  eSCO, and sets as the default mode used for calls to
30015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  BTM_CreateSco.  It can be called only when there are no
30025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  active (e)SCO links.
30035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
30045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          BTM_SUCCESS if the successful.
30055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  BTM_BUSY if there are one or more active (e)SCO links.
30065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
30075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
300824933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern tBTM_STATUS BTM_SetEScoMode (tBTM_SCO_TYPE sco_mode,
300924933b5b1a06274c47133debac5251a97128a267June R. Tate-Gans                                    tBTM_ESCO_PARAMS *p_parms);
30105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
30115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
30125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
30135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         BTM_SetWBSCodec
30145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
30155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      This function sends command to the controller to setup
30165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  WBS codec for the upcoming eSCO connection.
30175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
30185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          BTM_SUCCESS.
30195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
30205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
30215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
302224933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern tBTM_STATUS BTM_SetWBSCodec (tBTM_SCO_CODEC_TYPE codec_type);
30235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
30245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
30255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
30265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         BTM_RegForEScoEvts
30275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
30285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      This function registers a SCO event callback with the
30295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  specified instance.  It should be used to received
30305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  connection indication events and change of link parameter
30315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  events.
30325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
30335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          BTM_SUCCESS if the successful.
30345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  BTM_ILLEGAL_VALUE if there is an illegal sco_inx
30355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
30365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
303724933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern tBTM_STATUS BTM_RegForEScoEvts (UINT16 sco_inx,
303824933b5b1a06274c47133debac5251a97128a267June R. Tate-Gans                                       tBTM_ESCO_CBACK *p_esco_cback);
30395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
30405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
30415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
30425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         BTM_ReadEScoLinkParms
30435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
30445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      This function returns the current eSCO link parameters for
30455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  the specified handle.  This can be called anytime a connection
30465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  is active, but is typically called after receiving the SCO
30475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  opened callback.
30485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
3049ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta**                  Note: If called over a 1.1 controller, only the packet types
3050ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta**                        field has meaning.
3051ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta**                  Note: If the upper layer doesn't know the current sco index,
3052ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta**                  BTM_FIRST_ACTIVE_SCO_INDEX can be used as the first parameter to
3053ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta**                  find the first active SCO index
30545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
30555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          BTM_SUCCESS if returned data is valid connection.
30565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  BTM_ILLEGAL_VALUE if no connection for specified sco_inx.
30575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  BTM_MODE_UNSUPPORTED if local controller does not support
30585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                      1.2 specification.
30595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
30605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
306124933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern tBTM_STATUS BTM_ReadEScoLinkParms (UINT16 sco_inx,
306224933b5b1a06274c47133debac5251a97128a267June R. Tate-Gans                                          tBTM_ESCO_DATA *p_parms);
30635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
30645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
30655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
30665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         BTM_ChangeEScoLinkParms
30675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
30685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      This function requests renegotiation of the parameters on
30695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  the current eSCO Link.  If any of the changes are accepted
30705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  by the controllers, the BTM_ESCO_CHG_EVT event is sent in
30715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  the tBTM_ESCO_CBACK function with the current settings of
30725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  the link. The callback is registered through the call to
30735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  BTM_SetEScoMode.
30745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
30755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
30765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          BTM_CMD_STARTED if command is successfully initiated.
30775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  BTM_ILLEGAL_VALUE if no connection for specified sco_inx.
30785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  BTM_NO_RESOURCES - not enough resources to initiate command.
30795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  BTM_MODE_UNSUPPORTED if local controller does not support
30805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                      1.2 specification.
30815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
30825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
308324933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern tBTM_STATUS BTM_ChangeEScoLinkParms (UINT16 sco_inx,
308424933b5b1a06274c47133debac5251a97128a267June R. Tate-Gans                                            tBTM_CHG_ESCO_PARAMS *p_parms);
30855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
30865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
30875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
30885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         BTM_EScoConnRsp
30895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
30905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      This function is called upon receipt of an (e)SCO connection
30915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  request event (BTM_ESCO_CONN_REQ_EVT) to accept or reject
30925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  the request. Parameters used to negotiate eSCO links.
30935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  If p_parms is NULL, then values set through BTM_SetEScoMode
30945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  are used.
30955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  If the link type of the incoming request is SCO, then only
30965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  the tx_bw, max_latency, content format, and packet_types are
30975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  valid.  The hci_status parameter should be
30985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  ([0x0] to accept, [0x0d..0x0f] to reject)
30995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
31005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
31015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          void
31025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
31035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
310424933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern void BTM_EScoConnRsp (UINT16 sco_inx, UINT8 hci_status,
310524933b5b1a06274c47133debac5251a97128a267June R. Tate-Gans                             tBTM_ESCO_PARAMS *p_parms);
31065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
31075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
31085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
31095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         BTM_GetNumScoLinks
31105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
31115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      This function returns the number of active SCO links.
31125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
31135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          UINT8
31145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
31155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
311624933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern UINT8 BTM_GetNumScoLinks (void);
31175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
31185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*****************************************************************************
31195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**  SECURITY MANAGEMENT FUNCTIONS
31205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*****************************************************************************/
31215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
31225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
31235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         BTM_SecRegister
31245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
31255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      Application manager calls this function to register for
31265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  security services.  There can be one and only one application
31275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  saving link keys.  BTM allows only first registration.
31285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
31295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          TRUE if registered OK, else FALSE
31305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
31315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
313224933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern BOOLEAN BTM_SecRegister (tBTM_APPL_INFO *p_cb_info);
31335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
3134877123f5b9df90e7a71ea7b15997c521229decc1Satya Calloji/*******************************************************************************
3135877123f5b9df90e7a71ea7b15997c521229decc1Satya Calloji**
3136877123f5b9df90e7a71ea7b15997c521229decc1Satya Calloji** Function         BTM_SecRegisterLinkKeyNotificationCallback
3137877123f5b9df90e7a71ea7b15997c521229decc1Satya Calloji**
3138877123f5b9df90e7a71ea7b15997c521229decc1Satya Calloji** Description      Profiles can register to be notified when a new Link Key
3139877123f5b9df90e7a71ea7b15997c521229decc1Satya Calloji**                  is generated per connection.
3140877123f5b9df90e7a71ea7b15997c521229decc1Satya Calloji**
3141877123f5b9df90e7a71ea7b15997c521229decc1Satya Calloji** Returns          TRUE if registered OK, else FALSE
3142877123f5b9df90e7a71ea7b15997c521229decc1Satya Calloji**
3143877123f5b9df90e7a71ea7b15997c521229decc1Satya Calloji*******************************************************************************/
3144877123f5b9df90e7a71ea7b15997c521229decc1Satya Callojiextern BOOLEAN BTM_SecRegisterLinkKeyNotificationCallback(
3145877123f5b9df90e7a71ea7b15997c521229decc1Satya Calloji                                                        tBTM_LINK_KEY_CALLBACK *p_callback);
31465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
31475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
31485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
31495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         BTM_SecAddRmtNameNotifyCallback
31505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
31515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      Profiles can register to be notified when name of the
31525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  remote device is resolved (up to BTM_SEC_MAX_RMT_NAME_CALLBACKS).
31535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
31545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          TRUE if registered OK, else FALSE
31555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
31565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
315724933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern BOOLEAN BTM_SecAddRmtNameNotifyCallback (tBTM_RMT_NAME_CALLBACK *p_callback);
31585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
31595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
31605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
31615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
31625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         BTM_SecDeleteRmtNameNotifyCallback
31635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
31645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      A profile can deregister notification when a new Link Key
31655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  is generated per connection.
31665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
31675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          TRUE if OK, else FALSE
31685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
31695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
317024933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern BOOLEAN BTM_SecDeleteRmtNameNotifyCallback (tBTM_RMT_NAME_CALLBACK *p_callback);
31715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
31725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
31735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
31745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         BTM_GetSecurityFlags
31755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
31765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      Get security flags for the device
31775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
31785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          BOOLEAN TRUE or FALSE is device found
31795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
31805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
318124933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern BOOLEAN BTM_GetSecurityFlags (BD_ADDR bd_addr, UINT8 * p_sec_flags);
31825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
31835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
31845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
31857fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta** Function         BTM_GetSecurityFlagsByTransport
31867fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta**
31877fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta** Description      Get security flags for the device on a particular transport
31887fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta**
31897fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta** Parameters      bd_addr: BD address of remote device
31907fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta**                  p_sec_flags : Out parameter to be filled with security flags for the connection
31917fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta**                  transport :  Physical transport of the connection (BR/EDR or LE)
31927fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta**
31937fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta** Returns          BOOLEAN TRUE or FALSE is device found
31947fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta**
31957fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta*******************************************************************************/
319624933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern BOOLEAN BTM_GetSecurityFlagsByTransport (BD_ADDR bd_addr,
319724933b5b1a06274c47133debac5251a97128a267June R. Tate-Gans                                                UINT8 * p_sec_flags, tBT_TRANSPORT transport);
31987fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta
31997fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta/*******************************************************************************
32007fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta**
32015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         BTM_ReadTrustedMask
32025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
32035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      Get trusted mask for the device
32045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
32055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          NULL, if the device record is not found.
32065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  otherwise, the trusted mask
32075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
32085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
320924933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern UINT32 * BTM_ReadTrustedMask (BD_ADDR bd_addr);
32105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
32115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
32125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
32135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         BTM_SetPinType
32145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
32155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      Set PIN type for the device.
32165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
32175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          void
32185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
32195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
322024933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern void BTM_SetPinType (UINT8 pin_type, PIN_CODE pin_code, UINT8 pin_code_len);
32215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
32225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
32235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
32245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
32255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         BTM_SetPairableMode
32265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
32275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      Enable or disable pairing
32285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
32295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Parameters       allow_pairing - (TRUE or FALSE) whether or not the device
32305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                      allows pairing.
32315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  connect_only_paired - (TRUE or FALSE) whether or not to
32325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                      only allow paired devices to connect.
32335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
32345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          void
32355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
32365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
323724933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern void BTM_SetPairableMode (BOOLEAN allow_pairing, BOOLEAN connect_only_paired);
32385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
32395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
32405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
3241899b77140675a157dba034e98527ab546bc9ac35Mudumba Ananth** Function         BTM_SetSecureConnectionsOnly
3242899b77140675a157dba034e98527ab546bc9ac35Mudumba Ananth**
3243899b77140675a157dba034e98527ab546bc9ac35Mudumba Ananth** Description      Enable or disable default treatment for Mode 4 Level 0 services
3244899b77140675a157dba034e98527ab546bc9ac35Mudumba Ananth**
3245899b77140675a157dba034e98527ab546bc9ac35Mudumba Ananth** Parameter        secure_connections_only_mode - (TRUE or FALSE)
3246899b77140675a157dba034e98527ab546bc9ac35Mudumba Ananth**                  TRUE means that the device should treat Mode 4 Level 0 services as
3247899b77140675a157dba034e98527ab546bc9ac35Mudumba Ananth**                  services of other levels.
3248899b77140675a157dba034e98527ab546bc9ac35Mudumba Ananth**                  FALSE means that the device should provide default treatment for
3249899b77140675a157dba034e98527ab546bc9ac35Mudumba Ananth**                  Mode 4 Level 0 services.
3250899b77140675a157dba034e98527ab546bc9ac35Mudumba Ananth**
3251899b77140675a157dba034e98527ab546bc9ac35Mudumba Ananth** Returns          void
3252899b77140675a157dba034e98527ab546bc9ac35Mudumba Ananth**
3253899b77140675a157dba034e98527ab546bc9ac35Mudumba Ananth*******************************************************************************/
3254899b77140675a157dba034e98527ab546bc9ac35Mudumba Ananthextern void BTM_SetSecureConnectionsOnly (BOOLEAN secure_connections_only_mode);
3255899b77140675a157dba034e98527ab546bc9ac35Mudumba Ananth
3256899b77140675a157dba034e98527ab546bc9ac35Mudumba Ananth/*******************************************************************************
3257899b77140675a157dba034e98527ab546bc9ac35Mudumba Ananth**
32585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         BTM_SetSecurityLevel
32595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
32605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      Register service security level with Security Manager.  Each
32615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  service must register its requirements regardless of the
32625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  security level that is used.  This API is called once for originators
32635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  nad again for acceptors of connections.
32645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
32655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          TRUE if registered OK, else FALSE
32665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
32675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
326824933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern BOOLEAN BTM_SetSecurityLevel (BOOLEAN is_originator, char *p_name,
326924933b5b1a06274c47133debac5251a97128a267June R. Tate-Gans                                     UINT8 service_id, UINT16 sec_level,
327024933b5b1a06274c47133debac5251a97128a267June R. Tate-Gans                                     UINT16 psm, UINT32 mx_proto_id,
327124933b5b1a06274c47133debac5251a97128a267June R. Tate-Gans                                     UINT32 mx_chan_id);
32725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
32735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
32745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
32755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         BTM_SetOutService
32765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
32775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      This function is called to set the service for
32785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  outgoing connection.
32795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
32805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          void
32815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
32825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
328324933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern void BTM_SetOutService(BD_ADDR bd_addr, UINT8 service_id, UINT32 mx_chan_id);
32845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
32855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
32865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
32875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         BTM_SecClrService
32885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
32895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      Removes specified service record(s) from the security database.
32905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  All service records with the specified name are removed.
32915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  Typically used only by devices with limited RAM so that it can
32925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  reuse an old security service record.
32935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                          records (except SDP).
32945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
32955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          Number of records that were freed.
32965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
32975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
329824933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern UINT8 BTM_SecClrService (UINT8 service_id);
32995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
33005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
33015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
33025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         BTM_SecAddDevice
33035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
33045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      Add/modify device.  This function will be normally called
33055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  during host startup to restore all required information
33065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  stored in the NVRAM.
33075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  dev_class, bd_name, link_key, and features are NULL if unknown
33085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
33095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          TRUE if added OK, else FALSE
33105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
33115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
331224933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern BOOLEAN BTM_SecAddDevice (BD_ADDR bd_addr, DEV_CLASS dev_class,
331324933b5b1a06274c47133debac5251a97128a267June R. Tate-Gans                                 BD_NAME bd_name, UINT8 *features,
331424933b5b1a06274c47133debac5251a97128a267June R. Tate-Gans                                 UINT32 trusted_mask[], LINK_KEY link_key,
3315818d0f2afb10c75125b0df9ea2bce6108268a269Casper Bonde                                 UINT8 key_type, tBTM_IO_CAP io_cap, UINT8 pin_length);
33165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
33175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
33185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
33195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
33205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         BTM_SecDeleteDevice
33215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
33225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      Free resources associated with the device.
33235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
33245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          TRUE if rmoved OK, FALSE if not found
33255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
33265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
332724933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern BOOLEAN BTM_SecDeleteDevice (BD_ADDR bd_addr);
33285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
33295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
33305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
33315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
33325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         BTM_SecGetDeviceLinkKey
33335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
33345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      This function is called to obtain link key for the device
33355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  it returns BTM_SUCCESS if link key is available, or
33365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  BTM_UNKNOWN_ADDR if Security Manager does not know about
33375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  the device or device record does not contain link key info
33385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
33395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          BTM_SUCCESS if successful, otherwise error code
33405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
33415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
334224933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern tBTM_STATUS BTM_SecGetDeviceLinkKey (BD_ADDR bd_addr,
334324933b5b1a06274c47133debac5251a97128a267June R. Tate-Gans                                            LINK_KEY link_key);
33445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
33455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
33465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
33475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
3348444a8da807abaf5f9e813ce70c56a79160495fb3Satya Calloji** Function         BTM_SecGetDeviceLinkKeyType
3349444a8da807abaf5f9e813ce70c56a79160495fb3Satya Calloji**
3350444a8da807abaf5f9e813ce70c56a79160495fb3Satya Calloji** Description      This function is called to obtain link key type for the
3351444a8da807abaf5f9e813ce70c56a79160495fb3Satya Calloji**                  device.
3352444a8da807abaf5f9e813ce70c56a79160495fb3Satya Calloji**                  it returns BTM_SUCCESS if link key is available, or
3353444a8da807abaf5f9e813ce70c56a79160495fb3Satya Calloji**                  BTM_UNKNOWN_ADDR if Security Manager does not know about
3354444a8da807abaf5f9e813ce70c56a79160495fb3Satya Calloji**                  the device or device record does not contain link key info
3355444a8da807abaf5f9e813ce70c56a79160495fb3Satya Calloji**
3356444a8da807abaf5f9e813ce70c56a79160495fb3Satya Calloji** Returns          BTM_LKEY_TYPE_IGNORE if link key is unknown, link type
3357444a8da807abaf5f9e813ce70c56a79160495fb3Satya Calloji**                  otherwise.
3358444a8da807abaf5f9e813ce70c56a79160495fb3Satya Calloji**
3359444a8da807abaf5f9e813ce70c56a79160495fb3Satya Calloji*******************************************************************************/
3360444a8da807abaf5f9e813ce70c56a79160495fb3Satya Callojiextern tBTM_LINK_KEY_TYPE BTM_SecGetDeviceLinkKeyType (BD_ADDR bd_addr);
3361444a8da807abaf5f9e813ce70c56a79160495fb3Satya Calloji
3362444a8da807abaf5f9e813ce70c56a79160495fb3Satya Calloji
3363444a8da807abaf5f9e813ce70c56a79160495fb3Satya Calloji/*******************************************************************************
3364444a8da807abaf5f9e813ce70c56a79160495fb3Satya Calloji**
33655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         BTM_PINCodeReply
33665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
33675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      This function is called after Security Manager submitted
33685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  PIN code request to the UI.
33695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
33705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Parameters:      bd_addr      - Address of the device for which PIN was requested
33715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  res          - result of the operation BTM_SUCCESS if success
33725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  pin_len      - length in bytes of the PIN Code
33735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  p_pin        - pointer to array with the PIN Code
33745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  trusted_mask - bitwise OR of trusted services (array of UINT32)
33755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
33765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          void
33775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
33785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
337924933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern void BTM_PINCodeReply (BD_ADDR bd_addr, UINT8 res, UINT8 pin_len,
338024933b5b1a06274c47133debac5251a97128a267June R. Tate-Gans                              UINT8 *p_pin, UINT32 trusted_mask[]);
33815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
33825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
33835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
33845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
33855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         BTM_SecBond
33865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
33875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      This function is called to perform bonding with peer device.
33885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
33897fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta** Parameters:      bd_addr      - Address of the device to bond
33907fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta**                  pin_len      - length in bytes of the PIN Code
33917fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta**                  p_pin        - pointer to array with the PIN Code
33927fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta**                  trusted_mask - bitwise OR of trusted services (array of UINT32)
33937fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta
33945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          BTM_CMD_STARTED if successfully initiated, otherwise error
33955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
33965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
339724933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern tBTM_STATUS BTM_SecBond (BD_ADDR bd_addr,
339824933b5b1a06274c47133debac5251a97128a267June R. Tate-Gans                                UINT8 pin_len, UINT8 *p_pin,
339924933b5b1a06274c47133debac5251a97128a267June R. Tate-Gans                                UINT32 trusted_mask[]);
34007fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta
34017fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta/*******************************************************************************
34027fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta**
34037fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta** Function         BTM_SecBondByTransport
34047fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta**
34057fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta** Description      This function is called to perform bonding by designated transport
34067fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta**
34077fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta** Parameters:      bd_addr      - Address of the device to bond
34087fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta**                  pin_len      - length in bytes of the PIN Code
34097fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta**                  p_pin        - pointer to array with the PIN Code
34107fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta**                  trusted_mask - bitwise OR of trusted services (array of UINT32)
34117fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta**                  transport :  Physical transport to use for bonding (BR/EDR or LE)
34127fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta**
34137fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta** Returns          BTM_CMD_STARTED if successfully initiated, otherwise error
34147fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta**
34157fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta*******************************************************************************/
341624933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern tBTM_STATUS BTM_SecBondByTransport (BD_ADDR bd_addr,
341724933b5b1a06274c47133debac5251a97128a267June R. Tate-Gans                                           tBT_TRANSPORT transport,
341824933b5b1a06274c47133debac5251a97128a267June R. Tate-Gans                                           UINT8 pin_len, UINT8 *p_pin,
341924933b5b1a06274c47133debac5251a97128a267June R. Tate-Gans                                           UINT32 trusted_mask[]);
34205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
34215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
34225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
34235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         BTM_SecBondCancel
34245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
34255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      This function is called to cancel ongoing bonding process
34265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  with peer device.
34275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
34285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          BTM_CMD_STARTED if successfully initiated, otherwise error
34295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
34305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
343124933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern tBTM_STATUS BTM_SecBondCancel (BD_ADDR bd_addr);
34325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
34335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
34345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
34355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         BTM_SetEncryption
34365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
34375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      This function is called to ensure that connection is
34385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  encrypted.  Should be called only on an open connection.
34395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  Typically only needed for connections that first want to
34405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  bring up unencrypted links, then later encrypt them.
34415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
34425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Parameters:      bd_addr       - Address of the peer device
3443f40b136e7b943d7e25224817fc47bb5b171479d5Andre Eisenbach**                  transport     - Link transport
34445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  p_callback    - Pointer to callback function called if
34455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                                  this function returns PENDING after required
34465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                                  procedures are completed.  Can be set to NULL
34475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                                  if status is not desired.
34485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  p_ref_data    - pointer to any data the caller wishes to receive
34495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                                  in the callback function upon completion.
3450f40b136e7b943d7e25224817fc47bb5b171479d5Andre Eisenbach**                                  can be set to NULL if not used.
3451f40b136e7b943d7e25224817fc47bb5b171479d5Andre Eisenbach**                  sec_act       - LE security action, unused for BR/EDR
34525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
34535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          BTM_SUCCESS   - already encrypted
34545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  BTM_PENDING   - command will be returned in the callback
34555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  BTM_WRONG_MODE- connection not up.
34565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  BTM_BUSY      - security procedures are currently active
34575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  BTM_MODE_UNSUPPORTED - if security manager not linked in.
34585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
34595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
346024933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern tBTM_STATUS BTM_SetEncryption (BD_ADDR bd_addr, tBT_TRANSPORT transport,
3461f40b136e7b943d7e25224817fc47bb5b171479d5Andre Eisenbach                                      tBTM_SEC_CBACK *p_callback,
3462f40b136e7b943d7e25224817fc47bb5b171479d5Andre Eisenbach                                      void *p_ref_data, tBTM_BLE_SEC_ACT sec_act);
34635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
34645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
34655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
34665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         BTM_ConfirmReqReply
34675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
34685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      This function is called to confirm the numeric value for
34695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  Simple Pairing in response to BTM_SP_CFM_REQ_EVT
34705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
34715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Parameters:      res           - result of the operation BTM_SUCCESS if success
34725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  bd_addr       - Address of the peer device
34735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
34745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
347524933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern void BTM_ConfirmReqReply(tBTM_STATUS res, BD_ADDR bd_addr);
34765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
34775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
34785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
34795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         BTM_PasskeyReqReply
34805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
34815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      This function is called to provide the passkey for
34825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  Simple Pairing in response to BTM_SP_KEY_REQ_EVT
34835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
34845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Parameters:      res           - result of the operation BTM_SUCCESS if success
34855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  bd_addr       - Address of the peer device
34865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  passkey       - numeric value in the range of 0 - 999999(0xF423F).
34875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
34885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
348924933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern void BTM_PasskeyReqReply(tBTM_STATUS res, BD_ADDR bd_addr, UINT32 passkey);
34905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
34915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
34925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
34935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         BTM_SendKeypressNotif
34945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
34955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      This function is used during the passkey entry model
34965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  by a device with KeyboardOnly IO capabilities
34975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  (very likely to be a HID Device).
34985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  It is called by a HID Device to inform the remote device when
34995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  a key has been entered or erased.
35005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
35015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Parameters:      bd_addr - Address of the peer device
35025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  type - notification type
35035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
35045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
350524933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern void BTM_SendKeypressNotif(BD_ADDR bd_addr, tBTM_SP_KEY_TYPE type);
35065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
35075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
35085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
35095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         BTM_IoCapRsp
35105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
35115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      This function is called in response to BTM_SP_IO_REQ_EVT
35125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  When the event data io_req.oob_data is set to BTM_OOB_UNKNOWN
35135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  by the tBTM_SP_CALLBACK implementation, this function is
35145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  called to provide the actual response
35155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
35165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Parameters:      bd_addr - Address of the peer device
35175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  io_cap  - The IO capability of local device.
35185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  oob     - BTM_OOB_NONE or BTM_OOB_PRESENT.
35195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  auth_req- MITM protection required or not.
35205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
35215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
352224933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern void BTM_IoCapRsp(BD_ADDR bd_addr, tBTM_IO_CAP io_cap,
352324933b5b1a06274c47133debac5251a97128a267June R. Tate-Gans                         tBTM_OOB_DATA oob, tBTM_AUTH_REQ auth_req);
35245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
35255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
35265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
35275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         BTM_ReadLocalOobData
35285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
35295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      This function is called to read the local OOB data from
35305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  LM
35315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
35325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
353324933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern tBTM_STATUS BTM_ReadLocalOobData(void);
35345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
35355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
35365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
35375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         BTM_RemoteOobDataReply
35385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
35395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      This function is called to provide the remote OOB data for
35405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  Simple Pairing in response to BTM_SP_RMT_OOB_EVT
35415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
35425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Parameters:      bd_addr     - Address of the peer device
35435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  c           - simple pairing Hash C.
35445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  r           - simple pairing Randomizer  C.
35455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
35465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
354724933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern void BTM_RemoteOobDataReply(tBTM_STATUS res, BD_ADDR bd_addr,
354824933b5b1a06274c47133debac5251a97128a267June R. Tate-Gans                                   BT_OCTET16 c, BT_OCTET16 r);
35495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
35505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
35515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
35525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         BTM_BuildOobData
35535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
35545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      This function is called to build the OOB data payload to
35555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  be sent over OOB (non-Bluetooth) link
35565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
35575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Parameters:      p_data  - the location for OOB data
35585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  max_len - p_data size.
35595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  c       - simple pairing Hash C.
35605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  r       - simple pairing Randomizer  C.
35615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  name_len- 0, local device name would not be included.
35625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                            otherwise, the local device name is included for
35635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                            up to this specified length
35645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
35655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          Number of bytes in p_data.
35665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
35675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
356824933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern UINT16 BTM_BuildOobData(UINT8 *p_data, UINT16 max_len, BT_OCTET16 c,
356924933b5b1a06274c47133debac5251a97128a267June R. Tate-Gans                               BT_OCTET16 r, UINT8 name_len);
35705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
35715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
35725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
3573899b77140675a157dba034e98527ab546bc9ac35Mudumba Ananth** Function         BTM_BothEndsSupportSecureConnections
3574899b77140675a157dba034e98527ab546bc9ac35Mudumba Ananth**
3575899b77140675a157dba034e98527ab546bc9ac35Mudumba Ananth** Description      This function is called to check if both the local device and the peer device
3576899b77140675a157dba034e98527ab546bc9ac35Mudumba Ananth**                   specified by bd_addr support BR/EDR Secure Connections.
3577899b77140675a157dba034e98527ab546bc9ac35Mudumba Ananth**
3578899b77140675a157dba034e98527ab546bc9ac35Mudumba Ananth** Parameters:      bd_addr - address of the peer
3579899b77140675a157dba034e98527ab546bc9ac35Mudumba Ananth**
3580899b77140675a157dba034e98527ab546bc9ac35Mudumba Ananth** Returns          TRUE if BR/EDR Secure Connections are supported by both local
3581899b77140675a157dba034e98527ab546bc9ac35Mudumba Ananth**                  and the remote device.
3582899b77140675a157dba034e98527ab546bc9ac35Mudumba Ananth**                  else FALSE.
3583899b77140675a157dba034e98527ab546bc9ac35Mudumba Ananth**
3584899b77140675a157dba034e98527ab546bc9ac35Mudumba Ananth*******************************************************************************/
3585899b77140675a157dba034e98527ab546bc9ac35Mudumba Ananthextern BOOLEAN BTM_BothEndsSupportSecureConnections(BD_ADDR bd_addr);
3586899b77140675a157dba034e98527ab546bc9ac35Mudumba Ananth
3587899b77140675a157dba034e98527ab546bc9ac35Mudumba Ananth/*******************************************************************************
3588899b77140675a157dba034e98527ab546bc9ac35Mudumba Ananth**
3589899b77140675a157dba034e98527ab546bc9ac35Mudumba Ananth** Function         BTM_PeerSupportsSecureConnections
3590899b77140675a157dba034e98527ab546bc9ac35Mudumba Ananth**
3591899b77140675a157dba034e98527ab546bc9ac35Mudumba Ananth** Description      This function is called to check if the peer supports
3592899b77140675a157dba034e98527ab546bc9ac35Mudumba Ananth**                  BR/EDR Secure Connections.
3593444a8da807abaf5f9e813ce70c56a79160495fb3Satya Calloji**
3594899b77140675a157dba034e98527ab546bc9ac35Mudumba Ananth** Parameters:      bd_addr - address of the peer
3595444a8da807abaf5f9e813ce70c56a79160495fb3Satya Calloji**
3596899b77140675a157dba034e98527ab546bc9ac35Mudumba Ananth** Returns          TRUE if BR/EDR Secure Connections are supported by the peer,
3597899b77140675a157dba034e98527ab546bc9ac35Mudumba Ananth**                  else FALSE.
3598444a8da807abaf5f9e813ce70c56a79160495fb3Satya Calloji**
3599444a8da807abaf5f9e813ce70c56a79160495fb3Satya Calloji*******************************************************************************/
3600899b77140675a157dba034e98527ab546bc9ac35Mudumba Ananthextern BOOLEAN BTM_PeerSupportsSecureConnections(BD_ADDR bd_addr);
3601444a8da807abaf5f9e813ce70c56a79160495fb3Satya Calloji
3602444a8da807abaf5f9e813ce70c56a79160495fb3Satya Calloji/*******************************************************************************
3603444a8da807abaf5f9e813ce70c56a79160495fb3Satya Calloji**
36045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         BTM_ReadOobData
36055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
36065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      This function is called to parse the OOB data payload
36075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  received over OOB (non-Bluetooth) link
36085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
36095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Parameters:      p_data  - the location for OOB data
36105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  eir_tag - The associated EIR tag to read the data.
36115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  *p_len(output) - the length of the data with the given tag.
36125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
36135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          the beginning of the data with the given tag.
36145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  NULL, if the tag is not found.
36155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
36165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
361724933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern UINT8 * BTM_ReadOobData(UINT8 *p_data, UINT8 eir_tag, UINT8 *p_len);
36185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
36195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
36205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
36215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         BTM_SecReadDevName
36225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
36235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      Looks for the device name in the security database for the
36245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  specified BD address.
36255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
36265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          Pointer to the name or NULL
36275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
36285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
362924933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern char *BTM_SecReadDevName (BD_ADDR bd_addr);
36305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
36315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
36325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*****************************************************************************
36335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**  POWER MANAGEMENT FUNCTIONS
36345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*****************************************************************************/
36355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
36365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
36375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         BTM_PmRegister
36385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
36395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      register or deregister with power manager
36405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
36415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          BTM_SUCCESS if successful,
36425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  BTM_NO_RESOURCES if no room to hold registration
36435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  BTM_ILLEGAL_VALUE
36445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
36455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
364624933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern tBTM_STATUS BTM_PmRegister (UINT8 mask, UINT8 *p_pm_id,
364724933b5b1a06274c47133debac5251a97128a267June R. Tate-Gans                                   tBTM_PM_STATUS_CBACK *p_cb);
36485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
36495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
36505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
36515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
36525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         BTM_SetPowerMode
36535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
36545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      store the mode in control block or
36555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  alter ACL connection behavior.
36565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
36575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          BTM_SUCCESS if successful,
36585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  BTM_UNKNOWN_ADDR if bd addr is not active or bad
36595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
36605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
366124933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern tBTM_STATUS BTM_SetPowerMode (UINT8 pm_id, BD_ADDR remote_bda,
366224933b5b1a06274c47133debac5251a97128a267June R. Tate-Gans                                     tBTM_PM_PWR_MD *p_mode);
36635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
36645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
36655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
36665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
36675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         BTM_ReadPowerMode
36685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
36695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      This returns the current mode for a specific
36705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  ACL connection.
36715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
36725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Input Param      remote_bda - device address of desired ACL connection
36735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
36745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Output Param     p_mode - address where the current mode is copied into.
36755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                          BTM_ACL_MODE_NORMAL
36765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                          BTM_ACL_MODE_HOLD
36775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                          BTM_ACL_MODE_SNIFF
36785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                          BTM_ACL_MODE_PARK
36795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                          (valid only if return code is BTM_SUCCESS)
36805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
36815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          BTM_SUCCESS if successful,
36825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  BTM_UNKNOWN_ADDR if bd addr is not active or bad
36835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
36845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
368524933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern tBTM_STATUS BTM_ReadPowerMode (BD_ADDR remote_bda,
368624933b5b1a06274c47133debac5251a97128a267June R. Tate-Gans                                      tBTM_PM_MODE *p_mode);
36875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
36885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
36895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
36905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         BTM_SetSsrParams
36915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
36925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      This sends the given SSR parameters for the given ACL
36935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  connection if it is in ACTIVE mode.
36945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
36955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Input Param      remote_bda - device address of desired ACL connection
36965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  max_lat    - maximum latency (in 0.625ms)(0-0xFFFE)
36975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  min_rmt_to - minimum remote timeout
36985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  min_loc_to - minimum local timeout
36995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
37005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
37015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          BTM_SUCCESS if the HCI command is issued successful,
37025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  BTM_UNKNOWN_ADDR if bd addr is not active or bad
37035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  BTM_CMD_STORED if the command is stored
37045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
37055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
370624933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern tBTM_STATUS BTM_SetSsrParams (BD_ADDR remote_bda, UINT16 max_lat,
370724933b5b1a06274c47133debac5251a97128a267June R. Tate-Gans                                     UINT16 min_rmt_to, UINT16 min_loc_to);
37085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
37095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
37105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
37115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         BTM_GetHCIConnHandle
37125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
37135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      This function is called to get the handle for an ACL connection
37145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  to a specific remote BD Address.
37155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
37165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          the handle of the connection, or 0xFFFF if none.
37175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
37185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
371924933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern UINT16 BTM_GetHCIConnHandle (BD_ADDR remote_bda, tBT_TRANSPORT transport);
37205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
37215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
37225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
37235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         BTM_DeleteStoredLinkKey
37245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
37255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      This function is called to delete link key for the specified
37265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  device addresses from the NVRAM storage attached to the Bluetooth
37275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  controller.
37285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
37295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Parameters:      bd_addr      - Addresses of the devices
37305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  p_cb         - Call back function to be called to return
37315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                                 the results
37325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
37335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
373424933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern tBTM_STATUS BTM_DeleteStoredLinkKey(BD_ADDR bd_addr, tBTM_CMPL_CB *p_cb);
37355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
37365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
37375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
37385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         BTM_WriteEIR
37395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
37405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      This function is called to write EIR data to controller.
37415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
37425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Parameters       p_buff - allocated HCI command buffer including extended
37435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                           inquriry response
37445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
37455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          BTM_SUCCESS  - if successful
37465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  BTM_MODE_UNSUPPORTED - if local device cannot support it
37475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
37485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
374924933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern tBTM_STATUS BTM_WriteEIR( BT_HDR * p_buff );
37505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
37515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
37525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
37535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         BTM_CheckEirData
37545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
37555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      This function is called to get EIR data from significant part.
37565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
37575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Parameters       p_eir - pointer of EIR significant part
37585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  type   - finding EIR data type
37595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  p_length - return the length of EIR data
37605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
37615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          pointer of EIR data
37625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
37635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
376424933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern UINT8 *BTM_CheckEirData( UINT8 *p_eir, UINT8 type, UINT8 *p_length );
37655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
37665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
37675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
37685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         BTM_HasEirService
37695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
37705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      This function is called to know if UUID in bit map of UUID.
37715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
37725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Parameters       p_eir_uuid - bit map of UUID list
37735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  uuid16 - UUID 16-bit
37745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
37755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          TRUE - if found
37765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  FALSE - if not found
37775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
37785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
377924933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern BOOLEAN BTM_HasEirService( UINT32 *p_eir_uuid, UINT16 uuid16 );
37805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
37815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
37825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
37835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         BTM_HasInquiryEirService
37845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
37855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      This function is called to know if UUID in bit map of UUID list.
37865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
37875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Parameters       p_results - inquiry results
37885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  uuid16 - UUID 16-bit
37895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
37905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          BTM_EIR_FOUND - if found
37915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  BTM_EIR_NOT_FOUND - if not found and it is complete list
37925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  BTM_EIR_UNKNOWN - if not found and it is not complete list
37935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
37945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
379524933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern tBTM_EIR_SEARCH_RESULT BTM_HasInquiryEirService( tBTM_INQ_RESULTS *p_results,
379624933b5b1a06274c47133debac5251a97128a267June R. Tate-Gans                                                        UINT16 uuid16 );
37975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
37985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
37995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
38005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         BTM_AddEirService
38015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
38025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      This function is called to add a service in bit map of UUID list.
38035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
38045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Parameters       p_eir_uuid - bit mask of UUID list for EIR
38055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  uuid16 - UUID 16-bit
38065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
38075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          None
38085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
38095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
381024933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern void BTM_AddEirService( UINT32 *p_eir_uuid, UINT16 uuid16 );
38115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
38125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
38135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
38145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         BTM_RemoveEirService
38155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
38165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      This function is called to remove a service in bit map of UUID list.
38175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
38185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Parameters       p_eir_uuid - bit mask of UUID list for EIR
38195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  uuid16 - UUID 16-bit
38205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
38215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          None
38225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
38235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
382424933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern void BTM_RemoveEirService( UINT32 *p_eir_uuid, UINT16 uuid16 );
38255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
38265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
38275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
38285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         BTM_GetEirSupportedServices
38295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
38305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      This function is called to get UUID list from bit map of UUID list.
38315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
38325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Parameters       p_eir_uuid - bit mask of UUID list for EIR
38335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  p - reference of current pointer of EIR
38345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  max_num_uuid16 - max number of UUID can be written in EIR
38355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  num_uuid16 - number of UUID have been written in EIR
38365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
38375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          BTM_EIR_MORE_16BITS_UUID_TYPE, if it has more than max
38385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  BTM_EIR_COMPLETE_16BITS_UUID_TYPE, otherwise
38395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
38405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
384124933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern UINT8 BTM_GetEirSupportedServices( UINT32 *p_eir_uuid,    UINT8 **p,
384224933b5b1a06274c47133debac5251a97128a267June R. Tate-Gans                                          UINT8  max_num_uuid16, UINT8 *p_num_uuid16);
38435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
38445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
38455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
38465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         BTM_GetEirUuidList
38475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
38485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      This function parses EIR and returns UUID list.
38495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
38505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Parameters       p_eir - EIR
38515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  uuid_size - LEN_UUID_16, LEN_UUID_32, LEN_UUID_128
38525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  p_num_uuid - return number of UUID in found list
38535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  p_uuid_list - return UUID 16-bit list
38545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  max_num_uuid - maximum number of UUID to be returned
38555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
38565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          0 - if not found
38575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  BTM_EIR_COMPLETE_16BITS_UUID_TYPE
38585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  BTM_EIR_MORE_16BITS_UUID_TYPE
38595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  BTM_EIR_COMPLETE_32BITS_UUID_TYPE
38605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  BTM_EIR_MORE_32BITS_UUID_TYPE
38615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  BTM_EIR_COMPLETE_128BITS_UUID_TYPE
38625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  BTM_EIR_MORE_128BITS_UUID_TYPE
38635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
38645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
386524933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern UINT8 BTM_GetEirUuidList( UINT8 *p_eir, UINT8 uuid_size, UINT8 *p_num_uuid,
386624933b5b1a06274c47133debac5251a97128a267June R. Tate-Gans                                 UINT8 *p_uuid_list, UINT8 max_num_uuid);
38675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
38685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*****************************************************************************
38695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**  SCO OVER HCI
38705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*****************************************************************************/
38715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
38725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
38735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         BTM_ConfigScoPath
38745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
38755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      This function enable/disable SCO over HCI and registers SCO
38765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  data callback if SCO over HCI is enabled.
38775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
38785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Parameter        path: SCO or HCI
38795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  p_sco_data_cb: callback function or SCO data if path is set
38805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                                 to transport.
38815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  p_pcm_param: pointer to the PCM interface parameter. If a NULL
38825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                               pointer is used, PCM parameter maintained in
38835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                               the control block will be used; otherwise update
38845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                               control block value.
38855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  err_data_rpt: Lisbon feature to enable the erronous data report
38865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                                or not.
38875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
38885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          BTM_SUCCESS if the successful.
38895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  BTM_NO_RESOURCES: no rsource to start the command.
38905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  BTM_ILLEGAL_VALUE: invalid callback function pointer.
38915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  BTM_CMD_STARTED :Command sent. Waiting for command cmpl event.
38925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
38935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
38945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
389524933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern tBTM_STATUS BTM_ConfigScoPath (tBTM_SCO_ROUTE_TYPE path,
389624933b5b1a06274c47133debac5251a97128a267June R. Tate-Gans                                      tBTM_SCO_DATA_CB *p_sco_data_cb,
389724933b5b1a06274c47133debac5251a97128a267June R. Tate-Gans                                      tBTM_SCO_PCM_PARAM *p_pcm_param,
389824933b5b1a06274c47133debac5251a97128a267June R. Tate-Gans                                      BOOLEAN err_data_rpt);
38995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
39005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
39015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
39025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         BTM_WriteScoData
39035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
39045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      This function write SCO data to a specified instance. The data
39055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  to be written p_buf needs to carry an offset of
39065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  HCI_SCO_PREAMBLE_SIZE bytes, and the data length can not
39075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  exceed BTM_SCO_DATA_SIZE_MAX bytes, whose default value is set
39085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  to 60 and is configurable. Data longer than the maximum bytes
39095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  will be truncated.
39105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
39115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          BTM_SUCCESS: data write is successful
39125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  BTM_ILLEGAL_VALUE: SCO data contains illegal offset value.
39135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  BTM_SCO_BAD_LENGTH: SCO data length exceeds the max SCO packet
39145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                                      size.
39155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  BTM_NO_RESOURCES: no resources.
39165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  BTM_UNKNOWN_ADDR: unknown SCO connection handle, or SCO is not
39175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                                    routed via HCI.
39185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
39195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
39205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
392124933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern tBTM_STATUS BTM_WriteScoData (UINT16 sco_inx, BT_HDR *p_buf);
39225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
39235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
39245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
39255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         BTM_SetARCMode
39265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
39275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      Send Audio Routing Control command.
39285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
39295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          void
39305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
39315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
393224933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern void BTM_SetARCMode (UINT8 iface, UINT8 arc_mode, tBTM_VSC_CMPL_CB *p_arc_cb);
39335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
39345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
39355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
39365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
39375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         BTM_PCM2Setup_Write
39385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
39395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      Send PCM2_Setup write command.
39405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
39415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          void
39425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
39435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
394424933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern void BTM_PCM2Setup_Write (BOOLEAN clk_master, tBTM_VSC_CMPL_CB *p_arc_cb);
39455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
3946e5ba8841cd39e17c05aeb4ab65b5b761d41577daSatya Calloji
3947e5ba8841cd39e17c05aeb4ab65b5b761d41577daSatya Calloji/*******************************************************************************
3948e5ba8841cd39e17c05aeb4ab65b5b761d41577daSatya Calloji**
3949e5ba8841cd39e17c05aeb4ab65b5b761d41577daSatya Calloji** Function         BTM_PM_ReadControllerState
3950e5ba8841cd39e17c05aeb4ab65b5b761d41577daSatya Calloji**
3951e5ba8841cd39e17c05aeb4ab65b5b761d41577daSatya Calloji** Description      This function is called to obtain the controller state
3952e5ba8841cd39e17c05aeb4ab65b5b761d41577daSatya Calloji**
3953e5ba8841cd39e17c05aeb4ab65b5b761d41577daSatya Calloji** Returns          Controller state (BTM_CONTRL_ACTIVE, BTM_CONTRL_SCAN, and BTM_CONTRL_IDLE)
3954e5ba8841cd39e17c05aeb4ab65b5b761d41577daSatya Calloji**
3955e5ba8841cd39e17c05aeb4ab65b5b761d41577daSatya Calloji*******************************************************************************/
395624933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern tBTM_CONTRL_STATE BTM_PM_ReadControllerState(void);
3957e5ba8841cd39e17c05aeb4ab65b5b761d41577daSatya Calloji
39585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#ifdef __cplusplus
39595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project}
39605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#endif
39615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
39625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#endif /* BTM_API_H */
3963