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