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