16ef101187774e30ddba6b46bbedef549a42196adAndre Eisenbach/****************************************************************************** 26ef101187774e30ddba6b46bbedef549a42196adAndre Eisenbach * 36ef101187774e30ddba6b46bbedef549a42196adAndre Eisenbach * Copyright (C) 1999-2012 Broadcom Corporation 46ef101187774e30ddba6b46bbedef549a42196adAndre Eisenbach * 56ef101187774e30ddba6b46bbedef549a42196adAndre Eisenbach * Licensed under the Apache License, Version 2.0 (the "License"); 66ef101187774e30ddba6b46bbedef549a42196adAndre Eisenbach * you may not use this file except in compliance with the License. 76ef101187774e30ddba6b46bbedef549a42196adAndre Eisenbach * You may obtain a copy of the License at: 86ef101187774e30ddba6b46bbedef549a42196adAndre Eisenbach * 96ef101187774e30ddba6b46bbedef549a42196adAndre Eisenbach * http://www.apache.org/licenses/LICENSE-2.0 106ef101187774e30ddba6b46bbedef549a42196adAndre Eisenbach * 116ef101187774e30ddba6b46bbedef549a42196adAndre Eisenbach * Unless required by applicable law or agreed to in writing, software 126ef101187774e30ddba6b46bbedef549a42196adAndre Eisenbach * distributed under the License is distributed on an "AS IS" BASIS, 136ef101187774e30ddba6b46bbedef549a42196adAndre Eisenbach * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 146ef101187774e30ddba6b46bbedef549a42196adAndre Eisenbach * See the License for the specific language governing permissions and 156ef101187774e30ddba6b46bbedef549a42196adAndre Eisenbach * limitations under the License. 166ef101187774e30ddba6b46bbedef549a42196adAndre Eisenbach * 176ef101187774e30ddba6b46bbedef549a42196adAndre Eisenbach ******************************************************************************/ 186ef101187774e30ddba6b46bbedef549a42196adAndre Eisenbach 196ef101187774e30ddba6b46bbedef549a42196adAndre Eisenbach/****************************************************************************** 206ef101187774e30ddba6b46bbedef549a42196adAndre Eisenbach * 216ef101187774e30ddba6b46bbedef549a42196adAndre Eisenbach * This file contains the Bluetooth Manager (BTM) API function external 226ef101187774e30ddba6b46bbedef549a42196adAndre Eisenbach * definitions. 236ef101187774e30ddba6b46bbedef549a42196adAndre Eisenbach * 246ef101187774e30ddba6b46bbedef549a42196adAndre Eisenbach ******************************************************************************/ 25e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#ifndef BTM_API_H 26e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_API_H 27e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 28e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#include "bt_target.h" 29e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#include "sdp_api.h" 30e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#include "hcidefs.h" 31e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 32e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#if BLE_INCLUDED == TRUE && SMP_INCLUDED == TRUE 33e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#include "smp_api.h" 34e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#endif 35e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/***************************************************************************** 36e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** DEVICE CONTROL and COMMON 37e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*****************************************************************************/ 38e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/***************************** 39e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Device Control Constants 40e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach******************************/ 41e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* Maximum number of bytes allowed for vendor specific command parameters */ 42e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_MAX_VENDOR_SPECIFIC_LEN HCI_COMMAND_SIZE 43e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 44e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* BTM application return status codes */ 45e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbachenum 46e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach{ 47e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_SUCCESS = 0, /* 0 Command succeeded */ 48e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_CMD_STARTED, /* 1 Command started OK. */ 49e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_BUSY, /* 2 Device busy with another command */ 50e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_NO_RESOURCES, /* 3 No resources to issue command */ 51e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_MODE_UNSUPPORTED, /* 4 Request for 1 or more unsupported modes */ 52e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_ILLEGAL_VALUE, /* 5 Illegal parameter value */ 53e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_WRONG_MODE, /* 6 Device in wrong mode for request */ 54e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_UNKNOWN_ADDR, /* 7 Unknown remote BD address */ 55e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_DEVICE_TIMEOUT, /* 8 Device timeout */ 56e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_BAD_VALUE_RET, /* 9 A bad value was received from HCI */ 57e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_ERR_PROCESSING, /* 10 Generic error */ 58e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_NOT_AUTHORIZED, /* 11 Authorization failed */ 59e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_DEV_RESET, /* 12 Device has been reset */ 60e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_CMD_STORED, /* 13 request is stored in control block */ 61e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_ILLEGAL_ACTION, /* 14 state machine gets illegal command */ 62e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_DELAY_CHECK, /* 15 delay the check on encryption */ 63e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_SCO_BAD_LENGTH, /* 16 Bad SCO over HCI data length */ 64e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_SUCCESS_NO_SECURITY, /* 17 security passed, no security set */ 65e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_FAILED_ON_SECURITY , /* 18 security failed */ 66e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_REPEATED_ATTEMPTS /* 19 repeated attempts for LE security requests */ 67e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach}; 68e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbachtypedef UINT8 tBTM_STATUS; 69e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 70e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/************************* 71e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Device Control Types 72e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach**************************/ 73e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_DEVICE_ROLE_BR 0x01 74e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_DEVICE_ROLE_DUAL 0x02 75e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_MAX_DEVICE_ROLE BTM_DEVICE_ROLE_DUAL 76e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbachtypedef UINT8 tBTM_DEVICE_ROLE; 77e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 78e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* Device name of peer (may be truncated to save space in BTM database) */ 79e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbachtypedef UINT8 tBTM_BD_NAME[BTM_MAX_REM_BD_NAME_LEN + 1]; 80e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 81e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* Structure returned with local version information */ 82e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbachtypedef struct 83e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach{ 84e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT8 hci_version; 85e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT16 hci_revision; 86e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT8 lmp_version; 87e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT16 manufacturer; 88e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT16 lmp_subversion; 89e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach} tBTM_VERSION_INFO; 90e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 91e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* Structure returned with Vendor Specific Command complete callback */ 92e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbachtypedef struct 93e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach{ 94e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT16 opcode; 95e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT16 param_len; 96e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT8 *p_param_buf; 97e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach} tBTM_VSC_CMPL; 98e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 99e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_VSC_CMPL_DATA_SIZE (BTM_MAX_VENDOR_SPECIFIC_LEN + sizeof(tBTM_VSC_CMPL)) 100e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/************************************************** 101e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Device Control and General Callback Functions 102e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach***************************************************/ 103e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* Callback function for when device status changes. Appl must poll for 104e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** what the new state is (BTM_IsDeviceUp). The event occurs whenever the stack 105e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** has detected that the controller status has changed. This asynchronous event 106e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** is enabled/disabled by calling BTM_RegisterForDeviceStatusNotif(). 107e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*/ 108e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbachenum 109e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach{ 110e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_DEV_STATUS_UP, 111e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_DEV_STATUS_DOWN, 112e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_DEV_STATUS_CMD_TOUT 113e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach}; 114e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 115e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbachtypedef UINT8 tBTM_DEV_STATUS; 116e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 117e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 118e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbachtypedef void (tBTM_DEV_STATUS_CB) (tBTM_DEV_STATUS status); 119e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 120e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 121e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* Callback function for when a vendor specific event occurs. The length and 122e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** array of returned parameter bytes are included. This asynchronous event 123e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** is enabled/disabled by calling BTM_RegisterForVSEvents(). 124e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*/ 125e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbachtypedef void (tBTM_VS_EVT_CB) (UINT8 len, UINT8 *p); 126e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 127e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 128e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* General callback function for notifying an application that a synchronous 129e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** BTM function is complete. The pointer contains the address of any returned data. 130e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*/ 131e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbachtypedef void (tBTM_CMPL_CB) (void *p1); 132e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 133e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* VSC callback function for notifying an application that a synchronous 134e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** BTM function is complete. The pointer contains the address of any returned data. 135e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*/ 136e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbachtypedef void (tBTM_VSC_CMPL_CB) (tBTM_VSC_CMPL *p1); 137e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 138e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* Callback for apps to check connection and inquiry filters. 139e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Parameters are the BD Address of remote and the Dev Class of remote. 140e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** If the app returns none zero, the connection or inquiry result will be dropped. 141e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*/ 142e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbachtypedef UINT8 (tBTM_FILTER_CB) (BD_ADDR bd_addr, DEV_CLASS dc); 143e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 144e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/***************************************************************************** 145e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** DEVICE DISCOVERY - Inquiry, Remote Name, Discovery, Class of Device 146e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*****************************************************************************/ 147e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************* 148e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Device Discovery Constants 149e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach********************************/ 150e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* Discoverable modes */ 151e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_NON_DISCOVERABLE 0 152e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_LIMITED_DISCOVERABLE 1 153e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_GENERAL_DISCOVERABLE 2 154e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_DISCOVERABLE_MASK (BTM_LIMITED_DISCOVERABLE|BTM_GENERAL_DISCOVERABLE) 155e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_MAX_DISCOVERABLE BTM_GENERAL_DISCOVERABLE 156e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* high byte for BLE Discoverable modes */ 157e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_BLE_NON_DISCOVERABLE 0x0000 158e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_BLE_LIMITED_DISCOVERABLE 0x0100 159e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_BLE_GENERAL_DISCOVERABLE 0x0200 160e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_BLE_MAX_DISCOVERABLE BTM_BLE_GENERAL_DISCOVERABLE 161e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_BLE_DISCOVERABLE_MASK (BTM_BLE_NON_DISCOVERABLE|BTM_BLE_LIMITED_DISCOVERABLE|BTM_BLE_GENERAL_DISCOVERABLE) 162e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 163e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* Connectable modes */ 164e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_NON_CONNECTABLE 0 165e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_CONNECTABLE 1 166e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_CONNECTABLE_MASK (BTM_NON_CONNECTABLE | BTM_CONNECTABLE) 167e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* high byte for BLE Connectable modes */ 168e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_BLE_NON_CONNECTABLE 0x0000 169e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_BLE_CONNECTABLE 0x0100 170e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_BLE_MAX_CONNECTABLE BTM_BLE_CONNECTABLE 171e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_BLE_CONNECTABLE_MASK (BTM_BLE_NON_CONNECTABLE | BTM_BLE_CONNECTABLE) 172e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 173e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* Inquiry modes 174e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach * Note: These modes are associated with the inquiry active values (BTM_*ACTIVE) */ 175e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_GENERAL_INQUIRY 0 176e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_LIMITED_INQUIRY 1 177e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_BR_INQUIRY_MASK 0x0f 178e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* high byte of inquiry mode for BLE inquiry mode */ 179e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_BLE_INQUIRY_NONE 0x00 180e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_BLE_GENERAL_INQUIRY 0x10 181e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_BLE_LIMITED_INQUIRY 0x20 182e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_BLE_INQUIRY_MASK (BTM_BLE_GENERAL_INQUIRY|BTM_BLE_LIMITED_INQUIRY) 183e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 184e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* BTM_IsInquiryActive return values (Bit Mask) 185e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach * Note: These bit masks are associated with the inquiry modes (BTM_*_INQUIRY) */ 186e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_INQUIRY_INACTIVE 0x0 /* no inquiry in progress */ 187e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_GENERAL_INQUIRY_ACTIVE 0x1 /* a general inquiry is in progress */ 188e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_LIMITED_INQUIRY_ACTIVE 0x2 /* a limited inquiry is in progress */ 189e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_PERIODIC_INQUIRY_ACTIVE 0x8 /* a periodic inquiry is active */ 190e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SSP_INQUIRY_ACTIVE 0x4 /* SSP is active, so inquiry is disallowed (work around for FW bug) */ 191e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 192e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* Define scan types */ 193e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SCAN_TYPE_STANDARD 0 194e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SCAN_TYPE_INTERLACED 1 /* 1.2 devices only */ 195e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 196e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* Define inquiry results mode */ 197e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_INQ_RESULT_STANDARD 0 198e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_INQ_RESULT_WITH_RSSI 1 199e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_INQ_RESULT_EXTENDED 2 200e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 201e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_INQ_RES_IGNORE_RSSI 0x7f /* RSSI value not supplied (ignore it) */ 202e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 203e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* Inquiry Filter Condition types (see tBTM_INQ_PARMS) */ 204e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_CLR_INQUIRY_FILTER 0 /* Inquiry Filtering is turned off */ 205e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_FILTER_COND_DEVICE_CLASS HCI_FILTER_COND_DEVICE_CLASS /* Filter on device class */ 206e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_FILTER_COND_BD_ADDR HCI_FILTER_COND_BD_ADDR /* Filter on device addr */ 207e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 208e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* State of the remote name retrieval during inquiry operations. 209e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Used in the tBTM_INQ_INFO structure, and returned in the 210e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** BTM_InqDbRead, BTM_InqDbFirst, and BTM_InqDbNext functions. 211e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** The name field is valid when the state returned is 212e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** BTM_INQ_RMT_NAME_DONE */ 213e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_INQ_RMT_NAME_EMPTY 0 214e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_INQ_RMT_NAME_PENDING 1 215e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_INQ_RMT_NAME_DONE 2 216e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_INQ_RMT_NAME_FAILED 3 217e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 218e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/********************************* 219e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach *** Class of Device constants *** 220e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach *********************************/ 221e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_FORMAT_TYPE_1 0x00 222e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 223e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/**************************** 224e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** minor device class field 225e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*****************************/ 226e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 227e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* 0x00 is used as unclassified for all minor device classes */ 228e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_COD_MINOR_UNCLASSIFIED 0x00 229e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 230e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* minor device class field for Computer Major Class */ 231e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* #define BTM_COD_MINOR_UNCLASSIFIED 0x00 */ 232e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_COD_MINOR_DESKTOP_WORKSTATION 0x04 233e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_COD_MINOR_SERVER_COMPUTER 0x08 234e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_COD_MINOR_LAPTOP 0x0C 235e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_COD_MINOR_HANDHELD_PC_PDA 0x10 /* clam shell */ 236e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_COD_MINOR_PALM_SIZE_PC_PDA 0x14 237e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_COD_MINOR_WEARABLE_COMPUTER 0x18 /* watch sized */ 238e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 239e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* minor device class field for Phone Major Class */ 240e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* #define BTM_COD_MINOR_UNCLASSIFIED 0x00 */ 241e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_COD_MINOR_CELLULAR 0x04 242e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_COD_MINOR_CORDLESS 0x08 243e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_COD_MINOR_SMART_PHONE 0x0C 244e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_COD_MINOR_WIRED_MDM_V_GTWY 0x10 /* wired modem or voice gatway */ 245e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_COD_MINOR_ISDN_ACCESS 0x14 246e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 247e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* minor device class field for LAN Access Point Major Class */ 248e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* Load Factor Field bit 5-7 */ 249e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_COD_MINOR_FULLY_AVAILABLE 0x00 250e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_COD_MINOR_1_17_UTILIZED 0x20 251e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_COD_MINOR_17_33_UTILIZED 0x40 252e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_COD_MINOR_33_50_UTILIZED 0x60 253e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_COD_MINOR_50_67_UTILIZED 0x80 254e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_COD_MINOR_67_83_UTILIZED 0xA0 255e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_COD_MINOR_83_99_UTILIZED 0xC0 256e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_COD_MINOR_NO_SERVICE_AVAILABLE 0xE0 257e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* sub-Field bit 2-4 */ 258e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* #define BTM_COD_MINOR_UNCLASSIFIED 0x00 */ 259e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 260e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* minor device class field for Audio/Video Major Class */ 261e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* #define BTM_COD_MINOR_UNCLASSIFIED 0x00 */ 262e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_COD_MINOR_CONFM_HEADSET 0x04 263e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_COD_MINOR_CONFM_HANDSFREE 0x08 264e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_COD_MINOR_MICROPHONE 0x10 265e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_COD_MINOR_LOUDSPEAKER 0x14 266e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_COD_MINOR_HEADPHONES 0x18 267e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_COD_MINOR_PORTABLE_AUDIO 0x1C 268e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_COD_MINOR_CAR_AUDIO 0x20 269e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_COD_MINOR_SET_TOP_BOX 0x24 270e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_COD_MINOR_HIFI_AUDIO 0x28 271e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_COD_MINOR_VCR 0x2C 272e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_COD_MINOR_VIDEO_CAMERA 0x30 273e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_COD_MINOR_CAMCORDER 0x34 274e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_COD_MINOR_VIDEO_MONITOR 0x38 275e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_COD_MINOR_VIDDISP_LDSPKR 0x3C 276e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_COD_MINOR_VIDEO_CONFERENCING 0x40 277e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_COD_MINOR_GAMING_TOY 0x48 278e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 279e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* minor device class field for Peripheral Major Class */ 280e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* Bits 6-7 independently specify mouse, keyboard, or combo mouse/keyboard */ 281e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_COD_MINOR_KEYBOARD 0x40 282e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_COD_MINOR_POINTING 0x80 283e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_COD_MINOR_COMBO 0xC0 284e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* Bits 2-5 OR'd with selection from bits 6-7 */ 285e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* #define BTM_COD_MINOR_UNCLASSIFIED 0x00 */ 286e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_COD_MINOR_JOYSTICK 0x04 287e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_COD_MINOR_GAMEPAD 0x08 288e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_COD_MINOR_REMOTE_CONTROL 0x0C 289e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_COD_MINOR_SENSING_DEVICE 0x10 290e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_COD_MINOR_DIGITIZING_TABLET 0x14 291e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_COD_MINOR_CARD_READER 0x18 /* e.g. SIM card reader */ 292e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_COD_MINOR_DIGITAL_PAN 0x1C 293e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_COD_MINOR_HAND_SCANNER 0x20 294e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_COD_MINOR_HAND_GESTURAL_INPUT 0x24 295e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 296e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* minor device class field for Imaging Major Class */ 297e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* Bits 5-7 independently specify display, camera, scanner, or printer */ 298e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_COD_MINOR_DISPLAY 0x10 299e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_COD_MINOR_CAMERA 0x20 300e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_COD_MINOR_SCANNER 0x40 301e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_COD_MINOR_PRINTER 0x80 302e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* Bits 2-3 Reserved */ 303e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* #define BTM_COD_MINOR_UNCLASSIFIED 0x00 */ 304e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 305e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* minor device class field for Wearable Major Class */ 306e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* Bits 2-7 meaningful */ 307e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_COD_MINOR_WRIST_WATCH 0x04 308e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_COD_MINOR_PAGER 0x08 309e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_COD_MINOR_JACKET 0x0C 310e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_COD_MINOR_HELMET 0x10 311e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_COD_MINOR_GLASSES 0x14 312e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 313e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* minor device class field for Toy Major Class */ 314e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* Bits 2-7 meaningful */ 315e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_COD_MINOR_ROBOT 0x04 316e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_COD_MINOR_VEHICLE 0x08 317e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_COD_MINOR_DOLL_ACTION_FIGURE 0x0C 318e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_COD_MINOR_CONTROLLER 0x10 319e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_COD_MINOR_GAME 0x14 320e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 321e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* minor device class field for Health Major Class */ 322e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* Bits 2-7 meaningful */ 323e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_COD_MINOR_BLOOD_MONITOR 0x04 324e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_COD_MINOR_THERMOMETER 0x08 325e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_COD_MINOR_WEIGHING_SCALE 0x0C 326e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_COD_MINOR_GLUCOSE_METER 0x10 327e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_COD_MINOR_PULSE_OXIMETER 0x14 328e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_COD_MINOR_HEART_PULSE_MONITOR 0x18 329e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_COD_MINOR_HEALTH_DATA_DISPLAY 0x1C 330e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_COD_MINOR_STEP_COUNTER 0x20 331e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_COD_MINOR_BODY_COM_ANALYZER 0x24 332e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_COD_MINOR_PEAK_FLOW_MONITOR 0x28 333e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_COD_MINOR_MEDICATION_MONITOR 0x2C 334e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_COD_MINOR_KNEE_PROSTHESIS 0x30 335e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_COD_MINOR_ANKLE_PROSTHESIS 0x34 336e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 337e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 338e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/*************************** 339e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** major device class field 340e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach****************************/ 341e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_COD_MAJOR_MISCELLANEOUS 0x00 342e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_COD_MAJOR_COMPUTER 0x01 343e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_COD_MAJOR_PHONE 0x02 344e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_COD_MAJOR_LAN_ACCESS_PT 0x03 345e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_COD_MAJOR_AUDIO 0x04 346e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_COD_MAJOR_PERIPHERAL 0x05 347e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_COD_MAJOR_IMAGING 0x06 348e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_COD_MAJOR_WEARABLE 0x07 349e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_COD_MAJOR_TOY 0x08 350e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_COD_MAJOR_HEALTH 0x09 351e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_COD_MAJOR_UNCLASSIFIED 0x1F 352e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 353e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/*************************** 354e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** service class fields 355e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach****************************/ 356e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_COD_SERVICE_LMTD_DISCOVER 0x0020 357e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_COD_SERVICE_POSITIONING 0x0100 358e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_COD_SERVICE_NETWORKING 0x0200 359e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_COD_SERVICE_RENDERING 0x0400 360e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_COD_SERVICE_CAPTURING 0x0800 361e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_COD_SERVICE_OBJ_TRANSFER 0x1000 362e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_COD_SERVICE_AUDIO 0x2000 363e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_COD_SERVICE_TELEPHONY 0x4000 364e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_COD_SERVICE_INFORMATION 0x8000 365e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 366e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* class of device field macros */ 367e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_COD_FORMAT_TYPE(u8, pd) {u8 = pd[2]&0x03;} 368e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_COD_MINOR_CLASS(u8, pd) {u8 = pd[2]&0xFC;} 369e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_COD_MAJOR_CLASS(u8, pd) {u8 = pd[1]&0x1F;} 370e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_COD_SERVICE_CLASS(u16, pd) {u16 = pd[0]; u16<<=8; u16 += pd[1]&0xE0;} 371e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 372e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* to set the fields (assumes that format type is always 0) */ 373e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define FIELDS_TO_COD(pd, mn, mj, sv) {pd[2] = mn; pd[1] = \ 374e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach mj+ ((sv)&BTM_COD_SERVICE_CLASS_LO_B); \ 375e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach pd[0] = (sv) >> 8;} 376e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 377e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* the COD masks */ 378e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_COD_FORMAT_TYPE_MASK 0x03 379e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_COD_MINOR_CLASS_MASK 0xFC 380e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_COD_MAJOR_CLASS_MASK 0x1F 381e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_COD_SERVICE_CLASS_LO_B 0x00E0 382e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_COD_SERVICE_CLASS_MASK 0xFFE0 383e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 384e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 385e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* BTM service definitions 386e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Used for storing EIR data to bit mask 387e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*/ 388e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#ifndef BTM_EIR_UUID_LKUP_TBL 389e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbachenum 390e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach{ 391e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_EIR_UUID_SERVCLASS_SERVICE_DISCOVERY_SERVER, 392e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* BTM_EIR_UUID_SERVCLASS_BROWSE_GROUP_DESCRIPTOR, */ 393e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* BTM_EIR_UUID_SERVCLASS_PUBLIC_BROWSE_GROUP, */ 394e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_EIR_UUID_SERVCLASS_SERIAL_PORT, 395e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_EIR_UUID_SERVCLASS_LAN_ACCESS_USING_PPP, 396e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_EIR_UUID_SERVCLASS_DIALUP_NETWORKING, 397e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_EIR_UUID_SERVCLASS_IRMC_SYNC, 398e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_EIR_UUID_SERVCLASS_OBEX_OBJECT_PUSH, 399e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_EIR_UUID_SERVCLASS_OBEX_FILE_TRANSFER, 400e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_EIR_UUID_SERVCLASS_IRMC_SYNC_COMMAND, 401e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_EIR_UUID_SERVCLASS_HEADSET, 402e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_EIR_UUID_SERVCLASS_CORDLESS_TELEPHONY, 403e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_EIR_UUID_SERVCLASS_AUDIO_SOURCE, 404e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_EIR_UUID_SERVCLASS_AUDIO_SINK, 405e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_EIR_UUID_SERVCLASS_AV_REM_CTRL_TARGET, 406e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* BTM_EIR_UUID_SERVCLASS_ADV_AUDIO_DISTRIBUTION, */ 407e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_EIR_UUID_SERVCLASS_AV_REMOTE_CONTROL, 408e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* BTM_EIR_UUID_SERVCLASS_VIDEO_CONFERENCING, */ 409e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_EIR_UUID_SERVCLASS_INTERCOM, 410e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_EIR_UUID_SERVCLASS_FAX, 411e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_EIR_UUID_SERVCLASS_HEADSET_AUDIO_GATEWAY, 412e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* BTM_EIR_UUID_SERVCLASS_WAP, */ 413e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* BTM_EIR_UUID_SERVCLASS_WAP_CLIENT, */ 414e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_EIR_UUID_SERVCLASS_PANU, 415e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_EIR_UUID_SERVCLASS_NAP, 416e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_EIR_UUID_SERVCLASS_GN, 417e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_EIR_UUID_SERVCLASS_DIRECT_PRINTING, 418e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* BTM_EIR_UUID_SERVCLASS_REFERENCE_PRINTING, */ 419e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_EIR_UUID_SERVCLASS_IMAGING, 420e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_EIR_UUID_SERVCLASS_IMAGING_RESPONDER, 421e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_EIR_UUID_SERVCLASS_IMAGING_AUTO_ARCHIVE, 422e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_EIR_UUID_SERVCLASS_IMAGING_REF_OBJECTS, 423e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_EIR_UUID_SERVCLASS_HF_HANDSFREE, 424e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_EIR_UUID_SERVCLASS_AG_HANDSFREE, 425e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_EIR_UUID_SERVCLASS_DIR_PRT_REF_OBJ_SERVICE, 426e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* BTM_EIR_UUID_SERVCLASS_REFLECTED_UI, */ 427e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_EIR_UUID_SERVCLASS_BASIC_PRINTING, 428e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_EIR_UUID_SERVCLASS_PRINTING_STATUS, 429e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_EIR_UUID_SERVCLASS_HUMAN_INTERFACE, 430e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_EIR_UUID_SERVCLASS_CABLE_REPLACEMENT, 431e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_EIR_UUID_SERVCLASS_HCRP_PRINT, 432e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_EIR_UUID_SERVCLASS_HCRP_SCAN, 433e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* BTM_EIR_UUID_SERVCLASS_COMMON_ISDN_ACCESS, */ 434e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* BTM_EIR_UUID_SERVCLASS_VIDEO_CONFERENCING_GW, */ 435e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* BTM_EIR_UUID_SERVCLASS_UDI_MT, */ 436e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* BTM_EIR_UUID_SERVCLASS_UDI_TA, */ 437e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* BTM_EIR_UUID_SERVCLASS_VCP, */ 438e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_EIR_UUID_SERVCLASS_SAP, 439e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_EIR_UUID_SERVCLASS_PBAP_PCE, 440e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_EIR_UUID_SERVCLASS_PBAP_PSE, 441e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* BTM_EIR_UUID_SERVCLASS_TE_PHONE_ACCESS, */ 442e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* BTM_EIR_UUID_SERVCLASS_ME_PHONE_ACCESS, */ 443e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_EIR_UUID_SERVCLASS_PHONE_ACCESS, 444e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_EIR_UUID_SERVCLASS_HEADSET_HS, 445e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_EIR_UUID_SERVCLASS_PNP_INFORMATION, 446e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* BTM_EIR_UUID_SERVCLASS_GENERIC_NETWORKING, */ 447e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* BTM_EIR_UUID_SERVCLASS_GENERIC_FILETRANSFER, */ 448e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* BTM_EIR_UUID_SERVCLASS_GENERIC_AUDIO, */ 449e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* BTM_EIR_UUID_SERVCLASS_GENERIC_TELEPHONY, */ 450e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* BTM_EIR_UUID_SERVCLASS_UPNP_SERVICE, */ 451e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* BTM_EIR_UUID_SERVCLASS_UPNP_IP_SERVICE, */ 452e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* BTM_EIR_UUID_SERVCLASS_ESDP_UPNP_IP_PAN, */ 453e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* BTM_EIR_UUID_SERVCLASS_ESDP_UPNP_IP_LAP, */ 454e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* BTM_EIR_UUID_SERVCLASS_ESDP_UPNP_IP_L2CAP, */ 455e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_EIR_UUID_SERVCLASS_VIDEO_SOURCE, 456e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_EIR_UUID_SERVCLASS_VIDEO_SINK, 457e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* BTM_EIR_UUID_SERVCLASS_VIDEO_DISTRIBUTION */ 458e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* BTM_EIR_UUID_SERVCLASS_HDP_PROFILE */ 459e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_EIR_UUID_SERVCLASS_MESSAGE_ACCESS, 460e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_EIR_UUID_SERVCLASS_MESSAGE_NOTIFICATION, 4616ef101187774e30ddba6b46bbedef549a42196adAndre Eisenbach BTM_EIR_UUID_SERVCLASS_HDP_SOURCE, 462e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_EIR_UUID_SERVCLASS_HDP_SINK, 463e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_EIR_MAX_SERVICES 464e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach}; 465e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#endif /* BTM_EIR_UUID_LKUP_TBL */ 466e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 467e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* search result in EIR of inquiry database */ 468e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_EIR_FOUND 0 469e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_EIR_NOT_FOUND 1 470e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_EIR_UNKNOWN 2 471e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 472e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbachtypedef UINT8 tBTM_EIR_SEARCH_RESULT; 473e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 474e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_EIR_FLAGS_TYPE HCI_EIR_FLAGS_TYPE /* 0x01 */ 475e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_EIR_MORE_16BITS_UUID_TYPE HCI_EIR_MORE_16BITS_UUID_TYPE /* 0x02 */ 476e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_EIR_COMPLETE_16BITS_UUID_TYPE HCI_EIR_COMPLETE_16BITS_UUID_TYPE /* 0x03 */ 477e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_EIR_MORE_32BITS_UUID_TYPE HCI_EIR_MORE_32BITS_UUID_TYPE /* 0x04 */ 478e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_EIR_COMPLETE_32BITS_UUID_TYPE HCI_EIR_COMPLETE_32BITS_UUID_TYPE /* 0x05 */ 479e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_EIR_MORE_128BITS_UUID_TYPE HCI_EIR_MORE_128BITS_UUID_TYPE /* 0x06 */ 480e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_EIR_COMPLETE_128BITS_UUID_TYPE HCI_EIR_COMPLETE_128BITS_UUID_TYPE /* 0x07 */ 481e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_EIR_SHORTENED_LOCAL_NAME_TYPE HCI_EIR_SHORTENED_LOCAL_NAME_TYPE /* 0x08 */ 482e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_EIR_COMPLETE_LOCAL_NAME_TYPE HCI_EIR_COMPLETE_LOCAL_NAME_TYPE /* 0x09 */ 483e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_EIR_TX_POWER_LEVEL_TYPE HCI_EIR_TX_POWER_LEVEL_TYPE /* 0x0A */ 484e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_EIR_MANUFACTURER_SPECIFIC_TYPE HCI_EIR_MANUFACTURER_SPECIFIC_TYPE /* 0xFF */ 485e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 486e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* the following EIR tags are defined to OOB, not regular EIR data */ 487e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_EIR_OOB_BD_ADDR_TYPE HCI_EIR_OOB_BD_ADDR_TYPE /* 6 bytes */ 488e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_EIR_OOB_COD_TYPE HCI_EIR_OOB_COD_TYPE /* 3 bytes */ 489e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_EIR_OOB_SSP_HASH_C_TYPE HCI_EIR_OOB_SSP_HASH_C_TYPE /* 16 bytes */ 490e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_EIR_OOB_SSP_RAND_R_TYPE HCI_EIR_OOB_SSP_RAND_R_TYPE /* 16 bytes */ 491e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 492e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_OOB_MANDATORY_SIZE 8 /* include 2 bytes length & 6 bytes bd_addr */ 493e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_OOB_DATA_LEN_SIZE 2 494e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_OOB_BD_ADDR_SIZE 6 495e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_OOB_COD_SIZE BT_OOB_COD_SIZE 496e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_OOB_HASH_C_SIZE BT_OOB_HASH_C_SIZE 497e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_OOB_RAND_R_SIZE BT_OOB_RAND_R_SIZE 498e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 499e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 500e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#if BLE_INCLUDED == TRUE 501e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_BLE_SEC_NONE 0 502e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_BLE_SEC_ENCRYPT 1 /* encrypt the link using current key */ 5036ef101187774e30ddba6b46bbedef549a42196adAndre Eisenbach#define BTM_BLE_SEC_ENCRYPT_NO_MITM 2 504e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_BLE_SEC_ENCRYPT_MITM 3 505e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbachtypedef UINT8 tBTM_BLE_SEC_ACT; 506e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#endif 507e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/************************************************************************************************ 508e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** BTM Services MACROS handle array of UINT32 bits for more than 32 services 509e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*************************************************************************************************/ 510e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* Determine the number of UINT32's necessary for services */ 511e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_EIR_ARRAY_BITS 32 /* Number of bits in each array element */ 512e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_EIR_SERVICE_ARRAY_SIZE (((UINT32)BTM_EIR_MAX_SERVICES / BTM_EIR_ARRAY_BITS) + \ 513e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach (((UINT32)BTM_EIR_MAX_SERVICES % BTM_EIR_ARRAY_BITS) ? 1 : 0)) 514e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 515e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* MACRO to set the service bit mask in a bit stream */ 516e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_EIR_SET_SERVICE(p, service) (((UINT32 *)(p))[(((UINT32)(service)) / BTM_EIR_ARRAY_BITS)] |= \ 517e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach ((UINT32)1 << (((UINT32)(service)) % BTM_EIR_ARRAY_BITS))) 518e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 519e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 520e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* MACRO to clear the service bit mask in a bit stream */ 521e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_EIR_CLR_SERVICE(p, service) (((UINT32 *)(p))[(((UINT32)(service)) / BTM_EIR_ARRAY_BITS)] &= \ 522e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach ~((UINT32)1 << (((UINT32)(service)) % BTM_EIR_ARRAY_BITS))) 523e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 524e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* MACRO to check the service bit mask in a bit stream */ 525e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_EIR_HAS_SERVICE(p, service) ((((UINT32 *)(p))[(((UINT32)(service)) / BTM_EIR_ARRAY_BITS)] & \ 526e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach ((UINT32)1 << (((UINT32)(service)) % BTM_EIR_ARRAY_BITS))) >> (((UINT32)(service)) % BTM_EIR_ARRAY_BITS)) 527e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 528e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* start of EIR in HCI buffer, 4 bytes = HCI Command(2) + Length(1) + FEC_Req(1) */ 529e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_HCI_EIR_OFFSET (BT_HDR_SIZE + 4) 530e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 531e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/*************************** 532e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Device Discovery Types 533e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach****************************/ 534e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* Definitions of the parameters passed to BTM_StartInquiry and 535e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** BTM_SetPeriodicInquiryMode. 536e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*/ 537e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbachtypedef struct /* contains the two device class condition fields */ 538e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach{ 539e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach DEV_CLASS dev_class; 540e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach DEV_CLASS dev_class_mask; 541e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach} tBTM_COD_COND; 542e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 543e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 544e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbachtypedef union /* contains the inquiry filter condition */ 545e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach{ 546e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BD_ADDR bdaddr_cond; 547e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach tBTM_COD_COND cod_cond; 548e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach} tBTM_INQ_FILT_COND; 549e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 550e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 551e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbachtypedef struct /* contains the parameters passed to the inquiry functions */ 552e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach{ 553e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT8 mode; /* general or limited */ 554e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT8 duration; /* duration of the inquiry (1.28 sec increments) */ 555e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT8 max_resps; /* maximum number of responses to return */ 556e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BOOLEAN report_dup; /* report duplicated inquiry response with higher RSSI value */ 557e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT8 filter_cond_type; /* new devices, BD ADDR, COD, or No filtering */ 558e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach tBTM_INQ_FILT_COND filter_cond; /* filter value based on filter cond type */ 559e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach} tBTM_INQ_PARMS; 560e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 561e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_INQ_RESULT_BR 0x01 562e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_INQ_RESULT_BLE 0x02 563e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 564e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#if (BLE_INCLUDED == TRUE) 565e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_BLE_EVT_CONN_ADV 0x00 566e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_BLE_EVT_CONN_DIR_ADV 0x01 567e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_BLE_EVT_DISC_ADV 0x02 568e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_BLE_EVT_NON_CONN_ADV 0x03 569e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_BLE_EVT_SCAN_RSP 0x04 570e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbachtypedef UINT8 tBTM_BLE_EVT_TYPE; 571e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#endif 572e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 573e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* These are the fields returned in each device's response to the inquiry. It 574e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** is returned in the results callback if registered. 575e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*/ 576e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbachtypedef struct 577e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach{ 578e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT16 clock_offset; 579e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BD_ADDR remote_bd_addr; 580e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach DEV_CLASS dev_class; 581e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT8 page_scan_rep_mode; 582e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT8 page_scan_per_mode; 583e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT8 page_scan_mode; 584e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach INT8 rssi; /* Set to BTM_INQ_RES_IGNORE_RSSI if not valid */ 585e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#if (BTM_EIR_CLIENT_INCLUDED == TRUE) 586e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT32 eir_uuid[BTM_EIR_SERVICE_ARRAY_SIZE]; 587e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BOOLEAN eir_complete_list; 588e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#endif 589e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#if (BLE_INCLUDED == TRUE) 590e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach tBT_DEVICE_TYPE device_type; 591e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT8 inq_result_type; 592e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT8 ble_addr_type; 593e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach tBTM_BLE_EVT_TYPE ble_evt_type; 594e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT8 flag; 595e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#endif 596e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach} tBTM_INQ_RESULTS; 597e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 598e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 599e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* This is the inquiry response information held in its database by BTM, and available 600e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** to applications via BTM_InqDbRead, BTM_InqDbFirst, and BTM_InqDbNext. 601e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*/ 602e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbachtypedef struct 603e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach{ 604e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach tBTM_INQ_RESULTS results; 605e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 606e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BOOLEAN appl_knows_rem_name; /* set by application if it knows the remote name of the peer device. 607e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach This is later used by application to determine if remote name request is 608e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach required to be done. Having the flag here avoid duplicate store of inquiry results */ 609e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 610e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 611e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#if (BTM_INQ_GET_REMOTE_NAME == TRUE || BLE_INCLUDED == TRUE) 612e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT16 remote_name_len; 613e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach tBTM_BD_NAME remote_name; 614e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT8 remote_name_state; 615e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT8 remote_name_type; 616e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#endif 617e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 618e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach} tBTM_INQ_INFO; 619e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 620e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 621e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* Structure returned with inquiry complete callback */ 622e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbachtypedef struct 623e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach{ 624e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach tBTM_STATUS status; 625e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT8 num_resp; /* Number of results from the current inquiry */ 626e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach} tBTM_INQUIRY_CMPL; 627e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 628e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 629e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* Structure returned with remote name request */ 630e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbachtypedef struct 631e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach{ 632e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT16 status; 633e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT16 length; 634e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BD_NAME remote_bd_name; 635e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach} tBTM_REMOTE_DEV_NAME; 636e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 637e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbachtypedef struct 638e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach{ 6396ef101187774e30ddba6b46bbedef549a42196adAndre Eisenbach UINT8 pcm_intf_rate; /* PCM interface rate: 0: 128kbps, 1: 256 kbps; 640e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 2:512 bps; 3: 1024kbps; 4: 2048kbps */ 641e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT8 frame_type; /* frame type: 0: short; 1: long */ 642e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT8 sync_mode; /* sync mode: 0: slave; 1: master */ 643e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT8 clock_mode; /* clock mode: 0: slave; 1: master */ 644e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 645e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach}tBTM_SCO_PCM_PARAM; 646e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 647e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/**************************************** 648e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Device Discovery Callback Functions 649e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*****************************************/ 650e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* Callback function for asynchronous notifications when the BTM inquiry DB 651e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** changes. First param is inquiry database, second is if added to or removed 652e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** from the inquiry database. 653e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*/ 654e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbachtypedef void (tBTM_INQ_DB_CHANGE_CB) (void *p1, BOOLEAN is_new); 655e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 656e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* Callback function for notifications when the BTM gets inquiry response. 657e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** First param is inquiry results database, second is pointer of EIR. 658e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*/ 659e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbachtypedef void (tBTM_INQ_RESULTS_CB) (tBTM_INQ_RESULTS *p_inq_results, UINT8 *p_eir); 660e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 661e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/***************************************************************************** 662e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** ACL CHANNEL MANAGEMENT 663e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*****************************************************************************/ 664e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/****************** 665e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** ACL Constants 666e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************/ 667e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 668e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* ACL modes */ 669e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_ACL_MODE_NORMAL HCI_MODE_ACTIVE 670e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_ACL_MODE_HOLD HCI_MODE_HOLD 671e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_ACL_MODE_SNIFF HCI_MODE_SNIFF 672e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_ACL_MODE_PARK HCI_MODE_PARK 673e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 674e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* Returned with structure in role switch callback (tBTM_ROLE_SWITCH_CMPL) */ 675e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_ROLE_MASTER HCI_ROLE_MASTER 676e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_ROLE_SLAVE HCI_ROLE_SLAVE 677e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_ROLE_UNDEFINED 0xff /* undefined value (error status) */ 678e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 679e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* ACL Packet Types */ 680e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_ACL_PKT_TYPES_MASK_DM1 HCI_PKT_TYPES_MASK_DM1 681e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_ACL_PKT_TYPES_MASK_DH1 HCI_PKT_TYPES_MASK_DH1 682e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_ACL_PKT_TYPES_MASK_DM3 HCI_PKT_TYPES_MASK_DM3 683e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_ACL_PKT_TYPES_MASK_DH3 HCI_PKT_TYPES_MASK_DH3 684e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_ACL_PKT_TYPES_MASK_DM5 HCI_PKT_TYPES_MASK_DM5 685e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_ACL_PKT_TYPES_MASK_DH5 HCI_PKT_TYPES_MASK_DH5 686e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_ACL_PKT_TYPES_MASK_NO_2_DH1 HCI_PKT_TYPES_MASK_NO_2_DH1 687e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_ACL_PKT_TYPES_MASK_NO_3_DH1 HCI_PKT_TYPES_MASK_NO_3_DH1 688e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_ACL_PKT_TYPES_MASK_NO_2_DH3 HCI_PKT_TYPES_MASK_NO_2_DH3 689e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_ACL_PKT_TYPES_MASK_NO_3_DH3 HCI_PKT_TYPES_MASK_NO_3_DH3 690e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_ACL_PKT_TYPES_MASK_NO_2_DH5 HCI_PKT_TYPES_MASK_NO_2_DH5 691e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_ACL_PKT_TYPES_MASK_NO_3_DH5 HCI_PKT_TYPES_MASK_NO_3_DH5 692e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 693e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/*************** 694e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** ACL Types 695e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach****************/ 696e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 697e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* Structure returned with link policy information (in tBTM_CMPL_CB callback function) 698e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** in response to BTM_ReadLinkPolicy call. 699e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*/ 700e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbachtypedef struct 701e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach{ 702e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach tBTM_STATUS status; 703e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT8 hci_status; 704e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BD_ADDR rem_bda; 705e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT16 settings; 706e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach} tBTM_LNK_POLICY_RESULTS; 707e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 708e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* Structure returned with Role Switch information (in tBTM_CMPL_CB callback function) 709e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** in response to BTM_SwitchRole call. 710e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*/ 711e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbachtypedef struct 712e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach{ 713e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT8 hci_status; /* HCI status returned with the event */ 714e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT8 role; /* BTM_ROLE_MASTER or BTM_ROLE_SLAVE */ 715e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BD_ADDR remote_bd_addr; /* Remote BD addr involved with the switch */ 716e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach} tBTM_ROLE_SWITCH_CMPL; 717e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 718e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 719e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* Structure returned with Change Link Key information (in tBTM_CMPL_CB callback function) 720e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** in response to BTM_ChangeLinkKey call. 721e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*/ 722e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbachtypedef struct 723e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach{ 724e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT8 hci_status; /* HCI status returned with the event */ 725e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BD_ADDR remote_bd_addr; /* Remote BD addr involved with the change link key */ 726e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach} tBTM_CHANGE_KEY_CMPL; 727e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 728e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 729e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* Structure returned with QoS information (in tBTM_CMPL_CB callback function) 730e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** in response to BTM_SetQoS call. 731e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*/ 732e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbachtypedef struct 733e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach{ 734e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach FLOW_SPEC flow; 735e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT16 handle; 736e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT8 status; 737e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach} tBTM_QOS_SETUP_CMPL; 738e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 739e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 740e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* Structure returned with read RSSI event (in tBTM_CMPL_CB callback function) 741e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** in response to BTM_ReadRSSI call. 742e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*/ 743e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbachtypedef struct 744e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach{ 745e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach tBTM_STATUS status; 746e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT8 hci_status; 747e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach INT8 rssi; 748e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BD_ADDR rem_bda; 749e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach} tBTM_RSSI_RESULTS; 750e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 751e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* Structure returned with read current TX power event (in tBTM_CMPL_CB callback function) 752e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** in response to BTM_ReadTxPower call. 753e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*/ 754e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbachtypedef struct 755e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach{ 756e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach tBTM_STATUS status; 757e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT8 hci_status; 758e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach INT8 tx_power; 759e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BD_ADDR rem_bda; 760e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach} tBTM_TX_POWER_RESULTS; 761e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 762e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* Structure returned with read link quality event (in tBTM_CMPL_CB callback function) 763e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** in response to BTM_ReadLinkQuality call. 764e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*/ 765e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbachtypedef struct 766e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach{ 767e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach tBTM_STATUS status; 768e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT8 hci_status; 769e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT8 link_quality; 770e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BD_ADDR rem_bda; 771e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach} tBTM_LINK_QUALITY_RESULTS; 772e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 773e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* Structure returned with read inq tx power quality event (in tBTM_CMPL_CB callback function) 774e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** in response to BTM_ReadInquiryRspTxPower call. 775e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*/ 776e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbachtypedef struct 777e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach{ 778e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach tBTM_STATUS status; 779e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT8 hci_status; 780e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach INT8 tx_power; 781e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach} tBTM_INQ_TXPWR_RESULTS; 782e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 783e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbachenum 784e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach{ 785e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_BL_CONN_EVT, 786e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_BL_DISCN_EVT, 787e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_BL_UPDATE_EVT, 788e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_BL_ROLE_CHG_EVT, 789e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_BL_COLLISION_EVT 790e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach}; 791e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbachtypedef UINT8 tBTM_BL_EVENT; 792e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbachtypedef UINT16 tBTM_BL_EVENT_MASK; 793e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 794e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_BL_CONN_MASK 0x0001 795e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_BL_DISCN_MASK 0x0002 796e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_BL_UPDATE_MASK 0x0004 797e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_BL_ROLE_CHG_MASK 0x0008 798e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 799e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* the data type associated with BTM_BL_CONN_EVT */ 800e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbachtypedef struct 801e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach{ 802e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach tBTM_BL_EVENT event; /* The event reported. */ 803e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BD_ADDR_PTR p_bda; /* The address of the newly connected device */ 804e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach DEV_CLASS_PTR p_dc; /* The device class */ 805e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BD_NAME_PTR p_bdn; /* The device name */ 806e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT8 *p_features; /* The remote device's supported features */ 807e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach} tBTM_BL_CONN_DATA; 808e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 809e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* the data type associated with BTM_BL_DISCN_EVT */ 810e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbachtypedef struct 811e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach{ 812e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach tBTM_BL_EVENT event; /* The event reported. */ 813e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BD_ADDR_PTR p_bda; /* The address of the disconnected device */ 814e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach} tBTM_BL_DISCN_DATA; 815e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 816a5c380dbe1419e077bf6a3a8a30359ce74958350Kausik Sinnaswamy/* Busy-Level shall have the inquiry_paging mask set when 817a5c380dbe1419e077bf6a3a8a30359ce74958350Kausik Sinnaswamy * inquiry/paging is in progress, Else the number of ACL links */ 818a5c380dbe1419e077bf6a3a8a30359ce74958350Kausik Sinnaswamy#define BTM_BL_INQUIRY_PAGING_MASK 0x10 819a5c380dbe1419e077bf6a3a8a30359ce74958350Kausik Sinnaswamy#define BTM_BL_INQUIRY_STARTED (BTM_BL_INQUIRY_PAGING_MASK | 0x1) 820a5c380dbe1419e077bf6a3a8a30359ce74958350Kausik Sinnaswamy#define BTM_BL_INQUIRY_CANCELLED (BTM_BL_INQUIRY_PAGING_MASK | 0x2) 821a5c380dbe1419e077bf6a3a8a30359ce74958350Kausik Sinnaswamy#define BTM_BL_INQUIRY_COMPLETE (BTM_BL_INQUIRY_PAGING_MASK | 0x3) 822a5c380dbe1419e077bf6a3a8a30359ce74958350Kausik Sinnaswamy#define BTM_BL_PAGING_STARTED (BTM_BL_INQUIRY_PAGING_MASK | 0x4) 823a5c380dbe1419e077bf6a3a8a30359ce74958350Kausik Sinnaswamy#define BTM_BL_PAGING_COMPLETE (BTM_BL_INQUIRY_PAGING_MASK | 0x5) 824e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* the data type associated with BTM_BL_UPDATE_EVT */ 825e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbachtypedef struct 826e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach{ 827e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach tBTM_BL_EVENT event; /* The event reported. */ 828a5c380dbe1419e077bf6a3a8a30359ce74958350Kausik Sinnaswamy UINT8 busy_level;/* when paging or inquiring, level is as above. 829e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach * Otherwise, the number of ACL links. */ 830e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach} tBTM_BL_UPDATE_DATA; 831e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 832e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* the data type associated with BTM_BL_ROLE_CHG_EVT */ 833e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbachtypedef struct 834e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach{ 835e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach tBTM_BL_EVENT event; /* The event reported. */ 836e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BD_ADDR_PTR p_bda; /* The address of the peer connected device */ 837e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT8 new_role; 838e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT8 hci_status; /* HCI status returned with the event */ 839e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach} tBTM_BL_ROLE_CHG_DATA; 840e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 841e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbachtypedef union 842e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach{ 843e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach tBTM_BL_EVENT event; /* The event reported. */ 844e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach tBTM_BL_CONN_DATA conn; /* The data associated with BTM_BL_CONN_EVT */ 845e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach tBTM_BL_DISCN_DATA discn; /* The data associated with BTM_BL_DISCN_EVT */ 846e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach tBTM_BL_UPDATE_DATA update; /* The data associated with BTM_BL_UPDATE_EVT */ 847e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach tBTM_BL_ROLE_CHG_DATA role_chg;/*The data associated with BTM_BL_ROLE_CHG_EVT */ 848e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach} tBTM_BL_EVENT_DATA; 849e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 850e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* Callback function for notifications when the BTM busy level 851e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** changes. 852e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*/ 853e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbachtypedef void (tBTM_BL_CHANGE_CB) (tBTM_BL_EVENT_DATA *p_data); 854e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 855e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/*************************** 856e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** ACL Callback Functions 857e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach****************************/ 858e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* Callback function for notifications when the BTM ACL connection DB 859e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** changes. First param is BD address, second is if added or removed. 860e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Registered through BTM_AclRegisterForChanges call. 861e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*/ 862e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbachtypedef void (tBTM_ACL_DB_CHANGE_CB) (BD_ADDR p_bda, DEV_CLASS p_dc, 863e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BD_NAME p_bdn, BD_FEATURES features, 864e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BOOLEAN is_new); 865e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 866e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/***************************************************************************** 867e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** SCO CHANNEL MANAGEMENT 868e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*****************************************************************************/ 869e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/****************** 870e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** SCO Constants 871e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************/ 872e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 873e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* Define an invalid SCO index and an invalid HCI handle */ 874e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_INVALID_SCO_INDEX 0xFFFF 875e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_INVALID_HCI_HANDLE 0xFFFF 876e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 877e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* Define an invalid SCO disconnect reason */ 878e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_INVALID_SCO_DISC_REASON 0xFFFF 879e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 880e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* Define SCO packet types used in APIs */ 881e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SCO_PKT_TYPES_MASK_HV1 HCI_ESCO_PKT_TYPES_MASK_HV1 882e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SCO_PKT_TYPES_MASK_HV2 HCI_ESCO_PKT_TYPES_MASK_HV2 883e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SCO_PKT_TYPES_MASK_HV3 HCI_ESCO_PKT_TYPES_MASK_HV3 884e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SCO_PKT_TYPES_MASK_EV3 HCI_ESCO_PKT_TYPES_MASK_EV3 885e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SCO_PKT_TYPES_MASK_EV4 HCI_ESCO_PKT_TYPES_MASK_EV4 886e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SCO_PKT_TYPES_MASK_EV5 HCI_ESCO_PKT_TYPES_MASK_EV5 887e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SCO_PKT_TYPES_MASK_NO_2_EV3 HCI_ESCO_PKT_TYPES_MASK_NO_2_EV3 888e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SCO_PKT_TYPES_MASK_NO_3_EV3 HCI_ESCO_PKT_TYPES_MASK_NO_3_EV3 889e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SCO_PKT_TYPES_MASK_NO_2_EV5 HCI_ESCO_PKT_TYPES_MASK_NO_2_EV5 890e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SCO_PKT_TYPES_MASK_NO_3_EV5 HCI_ESCO_PKT_TYPES_MASK_NO_3_EV5 891e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 892e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SCO_LINK_ONLY_MASK (BTM_SCO_PKT_TYPES_MASK_HV1 | \ 893e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_SCO_PKT_TYPES_MASK_HV2 | \ 894e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_SCO_PKT_TYPES_MASK_HV3) 895e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 896e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_ESCO_LINK_ONLY_MASK (BTM_SCO_PKT_TYPES_MASK_EV3 | \ 897e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_SCO_PKT_TYPES_MASK_EV4 | \ 898e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_SCO_PKT_TYPES_MASK_EV5) 899e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 900e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SCO_LINK_ALL_PKT_MASK (BTM_SCO_LINK_ONLY_MASK | \ 901e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_ESCO_LINK_ONLY_MASK) 902e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 903e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_VALID_SCO_ALL_PKT_TYPE HCI_VALID_SCO_ALL_PKT_TYPE 904e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 905e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* Passed in BTM_CreateSco if the packet type parameter should be ignored */ 906e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_IGNORE_SCO_PKT_TYPE 0 907e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 908e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/*************** 909e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** SCO Types 910e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach****************/ 911e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_LINK_TYPE_SCO HCI_LINK_TYPE_SCO 912e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_LINK_TYPE_ESCO HCI_LINK_TYPE_ESCO 913e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbachtypedef UINT8 tBTM_SCO_TYPE; 914e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 915e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 916e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************* 9176ef101187774e30ddba6b46bbedef549a42196adAndre Eisenbach** SCO Routing Path 918e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach********************/ 919e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SCO_ROUTE_PCM HCI_BRCM_SCO_ROUTE_PCM 920e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SCO_ROUTE_HCI HCI_BRCM_SCO_ROUTE_HCI 921e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbachtypedef UINT8 tBTM_SCO_ROUTE_TYPE; 922e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 923e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 924e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************* 9256ef101187774e30ddba6b46bbedef549a42196adAndre Eisenbach** SCO Codec Types 926e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach********************/ 927e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SCO_CODEC_NONE 0x0000 928e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SCO_CODEC_CVSD 0x0001 929e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SCO_CODEC_MSBC 0x0002 930e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbachtypedef UINT16 tBTM_SCO_CODEC_TYPE; 931e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 932e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************* 9336ef101187774e30ddba6b46bbedef549a42196adAndre Eisenbach** SCO Voice Settings 934e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach********************/ 935e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_VOICE_SETTING_CVSD ((UINT16) (HCI_INP_CODING_LINEAR | \ 936e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach HCI_INP_DATA_FMT_2S_COMPLEMENT | \ 937e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach HCI_INP_SAMPLE_SIZE_16BIT | \ 938e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach HCI_AIR_CODING_FORMAT_CVSD)) 939e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 940e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_VOICE_SETTING_TRANS ((UINT16) (HCI_INP_CODING_LINEAR | \ 941e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach HCI_INP_DATA_FMT_2S_COMPLEMENT | \ 942e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach HCI_INP_SAMPLE_SIZE_16BIT | \ 943e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach HCI_AIR_CODING_FORMAT_TRANSPNT)) 944e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 945e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************* 9466ef101187774e30ddba6b46bbedef549a42196adAndre Eisenbach** SCO Data Status 947e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach********************/ 948e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbachenum 949e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach{ 950e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_SCO_DATA_CORRECT, 951e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_SCO_DATA_PAR_ERR, 952e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_SCO_DATA_NONE, 953e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_SCO_DATA_PAR_LOST 9546ef101187774e30ddba6b46bbedef549a42196adAndre Eisenbach}; 955e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbachtypedef UINT8 tBTM_SCO_DATA_FLAG; 956e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 957e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/*************************** 958e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** SCO Callback Functions 959e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach****************************/ 960e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbachtypedef void (tBTM_SCO_CB) (UINT16 sco_inx); 961e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbachtypedef void (tBTM_SCO_DATA_CB) (UINT16 sco_inx, BT_HDR *p_data, tBTM_SCO_DATA_FLAG status); 962e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 963e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/****************** 964e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** eSCO Constants 965e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************/ 966e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_64KBITS_RATE 0x00001f40 /* 64 kbits/sec data rate */ 967e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 968e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* Retransmission effort */ 969e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_ESCO_RETRANS_OFF 0 970e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_ESCO_RETRANS_POWER 1 971e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_ESCO_RETRANS_QUALITY 2 972e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_ESCO_RETRANS_DONTCARE 0xff 973e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 974e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* Max Latency Don't Care */ 975e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_ESCO_MAX_LAT_DONTCARE 0xffff 976e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 977e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/*************** 978e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** eSCO Types 979e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach****************/ 980e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* tBTM_ESCO_CBACK event types */ 981e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_ESCO_CHG_EVT 1 982e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_ESCO_CONN_REQ_EVT 2 983e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbachtypedef UINT8 tBTM_ESCO_EVT; 984e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 985e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* Passed into BTM_SetEScoMode() */ 986e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbachtypedef struct 987e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach{ 988e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT32 tx_bw; 989e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT32 rx_bw; 990e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT16 max_latency; 991e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT16 voice_contfmt; /* Voice Settings or Content Format */ 992e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT16 packet_types; 993e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT8 retrans_effort; 994e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach} tBTM_ESCO_PARAMS; 995e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 996e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbachtypedef struct 997e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach{ 998e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT16 max_latency; 999e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT16 packet_types; 1000e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT8 retrans_effort; 1001e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach} tBTM_CHG_ESCO_PARAMS; 1002e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 1003e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* Returned by BTM_ReadEScoLinkParms() */ 1004e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbachtypedef struct 1005e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach{ 1006e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT16 rx_pkt_len; 1007e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT16 tx_pkt_len; 1008e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BD_ADDR bd_addr; 1009e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT8 link_type; /* BTM_LINK_TYPE_SCO or BTM_LINK_TYPE_ESCO */ 1010e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT8 tx_interval; 1011e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT8 retrans_window; 1012e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT8 air_mode; 1013e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach} tBTM_ESCO_DATA; 1014e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 1015e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbachtypedef struct 1016e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach{ 1017e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT16 sco_inx; 1018e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT16 rx_pkt_len; 1019e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT16 tx_pkt_len; 1020e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BD_ADDR bd_addr; 1021e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT8 hci_status; 1022e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT8 tx_interval; 1023e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT8 retrans_window; 1024e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach} tBTM_CHG_ESCO_EVT_DATA; 1025e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 1026e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbachtypedef struct 1027e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach{ 1028e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT16 sco_inx; 1029e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BD_ADDR bd_addr; 1030e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach DEV_CLASS dev_class; 1031e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach tBTM_SCO_TYPE link_type; 1032e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach} tBTM_ESCO_CONN_REQ_EVT_DATA; 1033e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 1034e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbachtypedef union 1035e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach{ 1036e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach tBTM_CHG_ESCO_EVT_DATA chg_evt; 1037e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach tBTM_ESCO_CONN_REQ_EVT_DATA conn_evt; 1038e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach} tBTM_ESCO_EVT_DATA; 1039e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 1040e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/*************************** 1041e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** eSCO Callback Functions 1042e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach****************************/ 1043e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbachtypedef void (tBTM_ESCO_CBACK) (tBTM_ESCO_EVT event, tBTM_ESCO_EVT_DATA *p_data); 1044e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 1045e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 1046e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/***************************************************************************** 1047e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** SECURITY MANAGEMENT 1048e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*****************************************************************************/ 1049e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************* 1050e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Security Manager Constants 1051e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach********************************/ 1052e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 1053e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* Security Mode (BTM_SetSecurityMode) */ 1054e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SEC_MODE_UNDEFINED 0 1055e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SEC_MODE_NONE 1 1056e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SEC_MODE_SERVICE 2 1057e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SEC_MODE_LINK 3 1058e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SEC_MODE_SP 4 1059e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SEC_MODE_SP_DEBUG 5 1060e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 1061e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* Security Service Levels [bit mask] (BTM_SetSecurityLevel) 1062e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Encryption should not be used without authentication 1063e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*/ 1064e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SEC_NONE 0x0000 /* Nothing required */ 1065e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SEC_IN_AUTHORIZE 0x0001 /* Inbound call requires authorization */ 1066e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SEC_IN_AUTHENTICATE 0x0002 /* Inbound call requires authentication */ 1067e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SEC_IN_ENCRYPT 0x0004 /* Inbound call requires encryption */ 1068e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SEC_OUT_AUTHORIZE 0x0008 /* Outbound call requires authorization */ 1069e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SEC_OUT_AUTHENTICATE 0x0010 /* Outbound call requires authentication */ 1070e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SEC_OUT_ENCRYPT 0x0020 /* Outbound call requires encryption */ 1071e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SEC_BOND 0x0040 /* Bonding */ 1072e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SEC_BOND_CONN 0x0080 /* bond_created_connection */ 1073e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SEC_FORCE_MASTER 0x0100 /* Need to switch connection to be master */ 1074e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SEC_ATTEMPT_MASTER 0x0200 /* Try to switch connection to be master */ 1075e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SEC_FORCE_SLAVE 0x0400 /* Need to switch connection to be master */ 1076e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SEC_ATTEMPT_SLAVE 0x0800 /* Try to switch connection to be slave */ 1077e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SEC_IN_MITM 0x1000 /* inbound Do man in the middle protection */ 1078e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SEC_OUT_MITM 0x2000 /* outbound Do man in the middle protection */ 1079e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 1080e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* Security Flags [bit mask] (BTM_GetSecurityFlags) 1081e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*/ 1082e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SEC_FLAG_AUTHORIZED 0x01 1083e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SEC_FLAG_AUTHENTICATED 0x02 1084e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SEC_FLAG_ENCRYPTED 0x04 1085e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SEC_FLAG_LKEY_KNOWN 0x10 1086e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SEC_FLAG_LKEY_AUTHED 0x20 1087e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 1088e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* PIN types */ 1089e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_PIN_TYPE_VARIABLE HCI_PIN_TYPE_VARIABLE 1090e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_PIN_TYPE_FIXED HCI_PIN_TYPE_FIXED 1091e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 1092e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* Link Key types used to generate the new link key. 1093e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** returned in link key notification callback function 1094e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*/ 1095e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_LKEY_TYPE_COMBINATION HCI_LKEY_TYPE_COMBINATION 1096e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_LKEY_TYPE_LOCAL_UNIT HCI_LKEY_TYPE_LOCAL_UNIT 1097e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_LKEY_TYPE_REMOTE_UNIT HCI_LKEY_TYPE_REMOTE_UNIT 1098e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_LKEY_TYPE_DEBUG_COMB HCI_LKEY_TYPE_DEBUG_COMB 1099e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_LKEY_TYPE_UNAUTH_COMB HCI_LKEY_TYPE_UNAUTH_COMB 1100e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_LKEY_TYPE_AUTH_COMB HCI_LKEY_TYPE_AUTH_COMB 1101e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_LKEY_TYPE_CHANGED_COMB HCI_LKEY_TYPE_CHANGED_COMB 1102e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_LKEY_TYPE_IGNORE 0xff /* used when event is response from 1103e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach hci return link keys request */ 1104e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 1105e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* Protocol level security (BTM_SetSecurityLevel) */ 1106e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SEC_PROTO_L2CAP 0 1107e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SEC_PROTO_SDP 1 1108e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SEC_PROTO_TCS 2 1109e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SEC_PROTO_RFCOMM 3 1110e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SEC_PROTO_OBEX 4 1111e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SEC_PROTO_BNEP 5 1112e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SEC_PROTO_HID 6 /* HID */ 1113e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SEC_PROTO_AVDT 7 1114e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SEC_PROTO_MCA 8 1115e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 1116e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* Determine the number of UINT32's necessary for security services */ 1117e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SEC_ARRAY_BITS 32 /* Number of bits in each array element */ 1118e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SEC_SERVICE_ARRAY_SIZE (((UINT32)BTM_SEC_MAX_SERVICES / BTM_SEC_ARRAY_BITS) + \ 1119e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach (((UINT32)BTM_SEC_MAX_SERVICES % BTM_SEC_ARRAY_BITS) ? 1 : 0)) 1120e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 1121e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* Security service definitions (BTM_SetSecurityLevel) 1122e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Used for Authorization APIs 1123e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*/ 1124e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SEC_SERVICE_SDP_SERVER 0 1125e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SEC_SERVICE_SERIAL_PORT 1 1126e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SEC_SERVICE_LAN_ACCESS 2 1127e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SEC_SERVICE_DUN 3 1128e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SEC_SERVICE_IRMC_SYNC 4 1129e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SEC_SERVICE_IRMC_SYNC_CMD 5 1130e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SEC_SERVICE_OBEX 6 1131e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SEC_SERVICE_OBEX_FTP 7 1132e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SEC_SERVICE_HEADSET 8 1133e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SEC_SERVICE_CORDLESS 9 1134e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SEC_SERVICE_INTERCOM 10 1135e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SEC_SERVICE_FAX 11 1136e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SEC_SERVICE_HEADSET_AG 12 1137e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SEC_SERVICE_PNP_INFO 13 1138e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SEC_SERVICE_GEN_NET 14 1139e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SEC_SERVICE_GEN_FILE 15 1140e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SEC_SERVICE_GEN_AUDIO 16 1141e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SEC_SERVICE_GEN_TEL 17 1142e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SEC_SERVICE_CTP_DATA 18 1143e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SEC_SERVICE_HCRP_CTRL 19 1144e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SEC_SERVICE_HCRP_DATA 20 1145e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SEC_SERVICE_HCRP_NOTIF 21 1146e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SEC_SERVICE_BPP_JOB 22 1147e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SEC_SERVICE_BPP_STATUS 23 1148e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SEC_SERVICE_BPP_REF 24 1149e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SEC_SERVICE_BNEP_PANU 25 1150e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SEC_SERVICE_BNEP_GN 26 1151e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SEC_SERVICE_BNEP_NAP 27 1152e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SEC_SERVICE_HF_HANDSFREE 28 1153e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SEC_SERVICE_AG_HANDSFREE 29 1154e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SEC_SERVICE_TE_PHONE_ACCESS 30 1155e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SEC_SERVICE_ME_PHONE_ACCESS 31 1156e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 1157e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SEC_SERVICE_HID_SEC_CTRL 32 1158e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SEC_SERVICE_HID_NOSEC_CTRL 33 1159e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SEC_SERVICE_HID_INTR 34 1160e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SEC_SERVICE_BIP 35 1161e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SEC_SERVICE_BIP_REF 36 1162e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SEC_SERVICE_AVDTP 37 1163e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SEC_SERVICE_AVDTP_NOSEC 38 1164e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SEC_SERVICE_AVCTP 39 1165e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SEC_SERVICE_SAP 40 1166e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SEC_SERVICE_PBAP 41 1167e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SEC_SERVICE_RFC_MUX 42 1168e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SEC_SERVICE_AVCTP_BROWSE 43 1169e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SEC_SERVICE_MAP 44 1170e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SEC_SERVICE_MAP_NOTIF 45 1171e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SEC_SERVICE_MCAP_CTRL 46 1172e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SEC_SERVICE_MCAP_DATA 47 1173e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SEC_SERVICE_HDP_SNK 48 1174e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SEC_SERVICE_HDP_SRC 49 1175e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SEC_SERVICE_ATT 50 1176e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 1177e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* Update these as services are added */ 1178e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SEC_SERVICE_FIRST_EMPTY 51 1179e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 1180e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#ifndef BTM_SEC_MAX_SERVICES 1181e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SEC_MAX_SERVICES 65 1182e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#endif 1183e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 1184e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/************************************************************************************************ 1185e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Security Services MACROS handle array of UINT32 bits for more than 32 trusted services 1186e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*************************************************************************************************/ 1187e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* MACRO to set the security service bit mask in a bit stream */ 1188e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SEC_SET_SERVICE(p, service) (((UINT32 *)(p))[(((UINT32)(service)) / BTM_SEC_ARRAY_BITS)] |= \ 1189e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach ((UINT32)1 << (((UINT32)(service)) % BTM_SEC_ARRAY_BITS))) 1190e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 1191e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 1192e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* MACRO to clear the security service bit mask in a bit stream */ 1193e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SEC_CLR_SERVICE(p, service) (((UINT32 *)(p))[(((UINT32)(service)) / BTM_SEC_ARRAY_BITS)] &= \ 1194e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach ~((UINT32)1 << (((UINT32)(service)) % BTM_SEC_ARRAY_BITS))) 1195e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 1196e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* MACRO to check the security service bit mask in a bit stream (Returns TRUE or FALSE) */ 1197e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SEC_IS_SERVICE_TRUSTED(p, service) (((((UINT32 *)(p))[(((UINT32)(service)) / BTM_SEC_ARRAY_BITS)]) & \ 1198e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach (UINT32)(((UINT32)1 << (((UINT32)(service)) % BTM_SEC_ARRAY_BITS)))) ? TRUE : FALSE) 1199e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 1200e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* MACRO to copy two trusted device bitmask */ 1201e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SEC_COPY_TRUSTED_DEVICE(p_src, p_dst) {int trst; for (trst = 0; trst < BTM_SEC_SERVICE_ARRAY_SIZE; trst++) \ 1202e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach ((UINT32 *)(p_dst))[trst] = ((UINT32 *)(p_src))[trst];} 1203e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 1204e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* MACRO to clear two trusted device bitmask */ 1205e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SEC_CLR_TRUSTED_DEVICE(p_dst) {int trst; for (trst = 0; trst < BTM_SEC_SERVICE_ARRAY_SIZE; trst++) \ 1206e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach ((UINT32 *)(p_dst))[trst] = 0;} 1207e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 1208e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* Following bits can be provided by host in the trusted_mask array */ 1209e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* 0..31 bits of mask[0] (Least Significant Word) */ 1210e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SEC_TRUST_SDP_SERVER (1 << BTM_SEC_SERVICE_SDP_SERVER) 1211e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SEC_TRUST_SERIAL_PORT (1 << BTM_SEC_SERVICE_SERIAL_PORT) 1212e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SEC_TRUST_LAN_ACCESS (1 << BTM_SEC_SERVICE_LAN_ACCESS) 1213e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SEC_TRUST_DUN (1 << BTM_SEC_SERVICE_DUN) 1214e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SEC_TRUST_IRMC_SYNC (1 << BTM_SEC_SERVICE_IRMC_SYNC) 1215e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SEC_TRUST_IRMC_SYNC_CMD (1 << BTM_SEC_SERVICE_IRMC_SYNC_CMD) 1216e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SEC_TRUST_OBEX (1 << BTM_SEC_SERVICE_OBEX) 1217e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SEC_TRUST_OBEX_FTP (1 << BTM_SEC_SERVICE_OBEX_FTP) 1218e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SEC_TRUST_HEADSET (1 << BTM_SEC_SERVICE_HEADSET) 1219e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SEC_TRUST_CORDLESS (1 << BTM_SEC_SERVICE_CORDLESS) 1220e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SEC_TRUST_INTERCOM (1 << BTM_SEC_SERVICE_INTERCOM) 1221e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SEC_TRUST_FAX (1 << BTM_SEC_SERVICE_FAX) 1222e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SEC_TRUST_HEADSET_AG (1 << BTM_SEC_SERVICE_HEADSET_AG) 1223e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SEC_TRUST_PNP_INFO (1 << BTM_SEC_SERVICE_PNP_INFO) 1224e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SEC_TRUST_GEN_NET (1 << BTM_SEC_SERVICE_GEN_NET) 1225e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SEC_TRUST_GEN_FILE (1 << BTM_SEC_SERVICE_GEN_FILE) 1226e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SEC_TRUST_GEN_AUDIO (1 << BTM_SEC_SERVICE_GEN_AUDIO) 1227e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SEC_TRUST_GEN_TEL (1 << BTM_SEC_SERVICE_GEN_TEL) 1228e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SEC_TRUST_CTP_DATA (1 << BTM_SEC_SERVICE_CTP_DATA) 1229e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SEC_TRUST_HCRP_CTRL (1 << BTM_SEC_SERVICE_HCRP_CTRL) 1230e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SEC_TRUST_HCRP_DATA (1 << BTM_SEC_SERVICE_HCRP_DATA) 1231e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SEC_TRUST_HCRP_NOTIF (1 << BTM_SEC_SERVICE_HCRP_NOTIF) 1232e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SEC_TRUST_BPP_JOB (1 << BTM_SEC_SERVICE_JOB) 1233e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SEC_TRUST_BPP_STATUS (1 << BTM_SEC_SERVICE_STATUS) 1234e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SEC_TRUST_BPP_REF (1 << BTM_SEC_SERVICE_REF) 1235e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SEC_TRUST_BNEP_PANU (1 << BTM_SEC_SERVICE_BNEP_PANU) 1236e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SEC_TRUST_BNEP_GN (1 << BTM_SEC_SERVICE_BNEP_GN) 1237e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SEC_TRUST_BNEP_NAP (1 << BTM_SEC_SERVICE_BNEP_NAP) 1238e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SEC_TRUST_HFP_HF (1 << BTM_SEC_SERVICE_HF_HANDSFREE) 1239e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SEC_TRUST_HFP_AG (1 << BTM_SEC_SERVICE_AG_HANDSFREE) 1240e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SEC_TRUST_TE_PHONE_ACCESS (1 << BTM_SEC_SERVICE_TE_PHONE_ACCESS) 1241e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SEC_TRUST_ME_PHONE_ACCESS (1 << BTM_SEC_SERVICE_ME_PHONE_ACCESS) 1242e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 1243e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* 0..31 bits of mask[1] (Most Significant Word) */ 1244e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SEC_TRUST_HID_CTRL (1 << (BTM_SEC_SERVICE_HID_SEC_CTRL - 32)) 1245e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SEC_TRUST_HID_NOSEC_CTRL (1 << (BTM_SEC_SERVICE_HID_NOSEC_CTRL - 32)) 1246e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SEC_TRUST_HID_INTR (1 << (BTM_SEC_SERVICE_HID_INTR - 32)) 1247e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SEC_TRUST_BIP (1 << (BTM_SEC_SERVICE_BIP - 32)) 1248e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SEC_TRUST_BIP_REF (1 << (BTM_SEC_SERVICE_BIP_REF - 32)) 1249e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SEC_TRUST_AVDTP (1 << (BTM_SEC_SERVICE_AVDTP - 32)) 1250e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SEC_TRUST_AVDTP_NOSEC (1 << (BTM_SEC_SERVICE_AVDTP_NOSEC - 32)) 1251e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SEC_TRUST_AVCTP (1 << (BTM_SEC_SERVICE_AVCTP - 32)) 1252e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SEC_TRUST_SAP (1 << (BTM_SEC_SERVICE_SAP - 32)) 1253e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SEC_TRUST_PBAP (1 << (BTM_SEC_SERVICE_PBAP - 32)) 1254e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SEC_TRUST_RFC_MUX (1 << (BTM_SEC_SERVICE_RFC_MUX - 32)) 1255e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SEC_TRUST_AVCTP_BROWSE (1 << (BTM_SEC_SERVICE_AVCTP_BROWSE - 32)) 1256e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SEC_TRUST_MAP (1 << (BTM_SEC_SERVICE_MAP - 32)) 1257e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SEC_TRUST_MAP_NOTIF (1 << (BTM_SEC_SERVICE_MAP_NOTIF - 32)) 1258e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SEC_TRUST_MCAP_CTRL (1 << (BTM_SEC_SERVICE_MCAP_CTRL - 32)) 1259e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SEC_TRUST_MCAP_DATA (1 << (BTM_SEC_SERVICE_MCAP_DATA - 32)) 1260e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SEC_TRUST_HDP_SNK (1 << (BTM_SEC_SERVICE_HDP_SNK - 32)) 1261e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SEC_TRUST_HDP_SRC (1 << (BTM_SEC_SERVICE_HDP_SRC - 32)) 1262e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 1263e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SEC_TRUST_ALL 0xFFFFFFFF /* for each array element */ 1264e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 1265e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/**************************************** 1266e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Security Manager Callback Functions 1267e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*****************************************/ 1268e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* Authorize device for service. Parameters are 1269e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** BD Address of remote 1270e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Device Class of remote 1271e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** BD Name of remote 1272e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Service name 1273e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Service Id (NULL - unknown service or unused 1274e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** [BTM_SEC_SERVICE_NAME_LEN set to 0]) 1275e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Is originator of the connection 1276e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Result of the operation 1277e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*/ 1278e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbachtypedef UINT8 (tBTM_AUTHORIZE_CALLBACK) (BD_ADDR bd_addr, DEV_CLASS dev_class, 1279e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach tBTM_BD_NAME bd_name, UINT8 *service_name, 1280e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT8 service_id, BOOLEAN is_originator); 1281e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 1282e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* Get PIN for the connection. Parameters are 1283e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** BD Address of remote 1284e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Device Class of remote 1285e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** BD Name of remote 1286e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*/ 1287e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbachtypedef UINT8 (tBTM_PIN_CALLBACK) (BD_ADDR bd_addr, DEV_CLASS dev_class, 1288e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach tBTM_BD_NAME bd_name); 1289e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 1290e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 1291e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* Get Link Key for the connection. Parameters are 1292e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** BD Address of remote 1293e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Link Key 1294e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*/ 1295e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbachtypedef UINT8 (tBTM_LINK_KEY_REQ_CALLBACK) (BD_ADDR bd_addr, LINK_KEY key); 1296e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 1297e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* New Link Key for the connection. Parameters are 1298e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** BD Address of remote 1299e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Link Key 1300e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Key Type: Combination, Local Unit, or Remote Unit 1301e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*/ 1302e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbachtypedef UINT8 (tBTM_LINK_KEY_CALLBACK) (BD_ADDR bd_addr, DEV_CLASS dev_class, 1303e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach tBTM_BD_NAME bd_name, UINT8 *key, 1304e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT8 key_type); 1305e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 1306e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 1307e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* Remote Name Resolved. Parameters are 1308e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** BD Address of remote 1309e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** BD Name of remote 1310e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*/ 1311e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbachtypedef void (tBTM_RMT_NAME_CALLBACK) (BD_ADDR bd_addr, DEV_CLASS dc, 1312e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach tBTM_BD_NAME bd_name); 1313e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 1314e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 1315e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* Authentication complete for the connection. Parameters are 1316e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** BD Address of remote 1317e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Device Class of remote 1318e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** BD Name of remote 1319e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 1320e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*/ 1321e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbachtypedef UINT8 (tBTM_AUTH_COMPLETE_CALLBACK) (BD_ADDR bd_addr, DEV_CLASS dev_class, 1322e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach tBTM_BD_NAME bd_name, int result); 1323e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 1324e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* Operation abort. Called by the stack when link goes down during. Pin code 1325e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** request or authorization. Parameters are 1326e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** BD Address of remote 1327e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 1328e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*/ 1329e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbachtypedef UINT8 (tBTM_ABORT_CALLBACK) (BD_ADDR bd_addr, DEV_CLASS dev_class, 1330e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach tBTM_BD_NAME bd_name); 1331e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 1332e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbachenum 1333e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach{ 1334e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_SP_IO_REQ_EVT, /* received IO_CAPABILITY_REQUEST event */ 1335e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_SP_IO_RSP_EVT, /* received IO_CAPABILITY_RESPONSE event */ 1336e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_SP_CFM_REQ_EVT, /* received USER_CONFIRMATION_REQUEST event */ 1337e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_SP_KEY_NOTIF_EVT, /* received USER_PASSKEY_NOTIFY event */ 1338e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_SP_KEY_REQ_EVT, /* received USER_PASSKEY_REQUEST event */ 1339e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_SP_KEYPRESS_EVT, /* received KEYPRESS_NOTIFY event */ 1340e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_SP_LOC_OOB_EVT, /* received result for READ_LOCAL_OOB_DATA command */ 1341e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_SP_RMT_OOB_EVT, /* received REMOTE_OOB_DATA_REQUEST event */ 1342e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_SP_COMPLT_EVT, /* received SIMPLE_PAIRING_COMPLETE event */ 1343e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_SP_UPGRADE_EVT /* check if the application wants to upgrade the link key */ 1344e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach}; 1345e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbachtypedef UINT8 tBTM_SP_EVT; 1346e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 1347e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_IO_CAP_OUT 0 /* DisplayOnly */ 1348e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_IO_CAP_IO 1 /* DisplayYesNo */ 1349e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_IO_CAP_IN 2 /* KeyboardOnly */ 1350e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_IO_CAP_NONE 3 /* NoInputNoOutput */ 1351e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#if BLE_INCLUDED == TRUE && SMP_INCLUDED == TRUE 1352e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_IO_CAP_KBDISP 4 /* Keyboard display */ 1353e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_IO_CAP_MAX 5 1354e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#else 1355e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_IO_CAP_MAX 4 1356e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#endif 1357e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 1358e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbachtypedef UINT8 tBTM_IO_CAP; 1359e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 1360e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_MAX_PASSKEY_VAL (999999) 1361e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_MIN_PASSKEY_VAL (0) 1362e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 1363e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_AUTH_SP_NO 0 /* MITM Protection Not Required - Single Profile/non-bonding 1364e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach Numeric comparison with automatic accept allowed */ 1365e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_AUTH_SP_YES 1 /* MITM Protection Required - Single Profile/non-bonding 1366e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach Use IO Capabilities to determine authentication procedure */ 1367e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_AUTH_AP_NO 2 /* MITM Protection Not Required - All Profiles/dedicated bonding 1368e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach Numeric comparison with automatic accept allowed */ 1369e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_AUTH_AP_YES 3 /* MITM Protection Required - All Profiles/dedicated bonding 1370e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach Use IO Capabilities to determine authentication procedure */ 1371e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_AUTH_SPGB_NO 4 /* MITM Protection Not Required - Single Profiles/general bonding 1372e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach Numeric comparison with automatic accept allowed */ 1373e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_AUTH_SPGB_YES 5 /* MITM Protection Required - Single Profiles/general bonding 1374e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach Use IO Capabilities to determine authentication procedure */ 1375e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_AUTH_DD_BOND 2 /* this bit is ORed to the BTM_AUTH_SP_* when IO exchange for dedicated bonding */ 1376e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_AUTH_GB_BIT 4 /* the genernal bonding bit */ 1377e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_AUTH_BONDS 6 /* the general/dedicated bonding bits */ 1378e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_AUTH_YN_BIT 1 /* this is the Yes or No bit */ 1379e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 1380e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbachtypedef UINT8 tBTM_AUTH_REQ; 1381e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 1382e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbachenum 1383e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach{ 1384e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_OOB_NONE, 1385e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_OOB_PRESENT 1386e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#if BTM_OOB_INCLUDED == TRUE 1387e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach ,BTM_OOB_UNKNOWN 1388e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#endif 1389e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach}; 1390e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbachtypedef UINT8 tBTM_OOB_DATA; 1391e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 1392e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* data type for BTM_SP_IO_REQ_EVT */ 1393e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbachtypedef struct 1394e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach{ 1395e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BD_ADDR bd_addr; /* peer address */ 1396e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach tBTM_IO_CAP io_cap; /* local IO capabilities */ 1397e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach tBTM_OOB_DATA oob_data; /* OOB data present (locally) for the peer device */ 1398e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach tBTM_AUTH_REQ auth_req; /* Authentication required (for local device) */ 1399e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BOOLEAN is_orig; /* TRUE, if local device initiated the SP process */ 1400e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach} tBTM_SP_IO_REQ; 1401e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 1402e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* data type for BTM_SP_IO_RSP_EVT */ 1403e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbachtypedef struct 1404e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach{ 1405e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BD_ADDR bd_addr; /* peer address */ 1406e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach tBTM_IO_CAP io_cap; /* peer IO capabilities */ 1407e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach tBTM_OOB_DATA oob_data; /* OOB data present at peer device for the local device */ 1408e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach tBTM_AUTH_REQ auth_req; /* Authentication required for peer device */ 1409e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach} tBTM_SP_IO_RSP; 1410e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 1411e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* data type for BTM_SP_CFM_REQ_EVT */ 1412e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbachtypedef struct 1413e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach{ 1414e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BD_ADDR bd_addr; /* peer address */ 1415e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach DEV_CLASS dev_class; /* peer CoD */ 1416e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach tBTM_BD_NAME bd_name; /* peer device name */ 1417e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT32 num_val; /* the numeric value for comparison. If just_works, do not show this number to UI */ 1418e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BOOLEAN just_works; /* TRUE, if "Just Works" association model */ 1419e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach tBTM_AUTH_REQ loc_auth_req; /* Authentication required for local device */ 1420e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach tBTM_AUTH_REQ rmt_auth_req; /* Authentication required for peer device */ 1421defb69c3b383ad0f9b5d6329be625fafc2e3c931Ravi Nagarajan tBTM_IO_CAP loc_io_caps; /* IO Capabilities of the local device */ 1422defb69c3b383ad0f9b5d6329be625fafc2e3c931Ravi Nagarajan tBTM_IO_CAP rmt_io_caps; /* IO Capabilities of the remot device */ 1423e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach} tBTM_SP_CFM_REQ; 1424e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 1425e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* data type for BTM_SP_KEY_REQ_EVT */ 1426e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbachtypedef struct 1427e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach{ 1428e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BD_ADDR bd_addr; /* peer address */ 1429e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach DEV_CLASS dev_class; /* peer CoD */ 1430e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach tBTM_BD_NAME bd_name; /* peer device name */ 1431e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach} tBTM_SP_KEY_REQ; 1432e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 1433e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* data type for BTM_SP_KEY_NOTIF_EVT */ 1434e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbachtypedef struct 1435e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach{ 1436e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BD_ADDR bd_addr; /* peer address */ 1437e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach DEV_CLASS dev_class; /* peer CoD */ 1438e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach tBTM_BD_NAME bd_name; /* peer device name */ 1439e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT32 passkey; /* passkey */ 1440e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach} tBTM_SP_KEY_NOTIF; 1441e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 1442e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbachenum 1443e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach{ 1444e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_SP_KEY_STARTED, /* passkey entry started */ 1445e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_SP_KEY_ENTERED, /* passkey digit entered */ 1446e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_SP_KEY_ERASED, /* passkey digit erased */ 1447e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_SP_KEY_CLEARED, /* passkey cleared */ 1448e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_SP_KEY_COMPLT /* passkey entry completed */ 1449e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach}; 1450e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbachtypedef UINT8 tBTM_SP_KEY_TYPE; 1451e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 1452e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* data type for BTM_SP_KEYPRESS_EVT */ 1453e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbachtypedef struct 1454e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach{ 1455e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BD_ADDR bd_addr; /* peer address */ 1456e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach tBTM_SP_KEY_TYPE notif_type; 1457e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach} tBTM_SP_KEYPRESS; 1458e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 1459e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* data type for BTM_SP_LOC_OOB_EVT */ 1460e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbachtypedef struct 1461e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach{ 1462e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach tBTM_STATUS status; /* */ 1463e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BT_OCTET16 c; /* Simple Pairing Hash C */ 1464e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BT_OCTET16 r; /* Simple Pairing Randomnizer R */ 1465e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach} tBTM_SP_LOC_OOB; 1466e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 1467e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* data type for BTM_SP_RMT_OOB_EVT */ 1468e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbachtypedef struct 1469e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach{ 1470e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BD_ADDR bd_addr; /* peer address */ 1471e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach DEV_CLASS dev_class; /* peer CoD */ 1472e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach tBTM_BD_NAME bd_name; /* peer device name */ 1473e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach} tBTM_SP_RMT_OOB; 1474e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 1475e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 1476e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* data type for BTM_SP_COMPLT_EVT */ 1477e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbachtypedef struct 1478e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach{ 1479e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BD_ADDR bd_addr; /* peer address */ 1480e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach DEV_CLASS dev_class; /* peer CoD */ 1481e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach tBTM_BD_NAME bd_name; /* peer device name */ 1482e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach tBTM_STATUS status; /* status of the simple pairing process */ 1483e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach} tBTM_SP_COMPLT; 1484e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 1485e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* data type for BTM_SP_UPGRADE_EVT */ 1486e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbachtypedef struct 1487e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach{ 1488e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BD_ADDR bd_addr; /* peer address */ 1489e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BOOLEAN upgrade; /* TRUE, to upgrade the link key */ 1490e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach} tBTM_SP_UPGRADE; 1491e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 1492e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbachtypedef union 1493e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach{ 1494e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach tBTM_SP_IO_REQ io_req; /* BTM_SP_IO_REQ_EVT */ 1495e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach tBTM_SP_IO_RSP io_rsp; /* BTM_SP_IO_RSP_EVT */ 1496e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach tBTM_SP_CFM_REQ cfm_req; /* BTM_SP_CFM_REQ_EVT */ 1497e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach tBTM_SP_KEY_NOTIF key_notif; /* BTM_SP_KEY_NOTIF_EVT */ 1498e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach tBTM_SP_KEY_REQ key_req; /* BTM_SP_KEY_REQ_EVT */ 1499e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach tBTM_SP_KEYPRESS key_press; /* BTM_SP_KEYPRESS_EVT */ 1500e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach tBTM_SP_LOC_OOB loc_oob; /* BTM_SP_LOC_OOB_EVT */ 1501e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach tBTM_SP_RMT_OOB rmt_oob; /* BTM_SP_RMT_OOB_EVT */ 1502e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach tBTM_SP_COMPLT complt; /* BTM_SP_COMPLT_EVT */ 15036ef101187774e30ddba6b46bbedef549a42196adAndre Eisenbach tBTM_SP_UPGRADE upgrade; /* BTM_SP_UPGRADE_EVT */ 1504e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach} tBTM_SP_EVT_DATA; 1505e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 1506e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* Simple Pairing Events. Called by the stack when Simple Pairing related 1507e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** events occur. 1508e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*/ 1509e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbachtypedef UINT8 (tBTM_SP_CALLBACK) (tBTM_SP_EVT event, tBTM_SP_EVT_DATA *p_data); 1510e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 1511e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 1512e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbachtypedef void (tBTM_MKEY_CALLBACK) (BD_ADDR bd_addr, UINT8 status, UINT8 key_flag) ; 1513e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 1514e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* Encryption enabled/disabled complete: Optionally passed with BTM_SetEncryption. 1515e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Parameters are 1516e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** BD Address of remote 1517e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** optional data passed in by BTM_SetEncryption 1518e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** tBTM_STATUS - result of the operation 1519e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*/ 1520e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbachtypedef void (tBTM_SEC_CBACK) (BD_ADDR bd_addr, void *p_ref_data, tBTM_STATUS result); 1521e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 1522e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* Bond Cancel complete. Parameters are 1523e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Result of the cancel operation 1524e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 1525e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*/ 1526e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbachtypedef void (tBTM_BOND_CANCEL_CMPL_CALLBACK) (tBTM_STATUS result); 1527e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 15286ef101187774e30ddba6b46bbedef549a42196adAndre Eisenbach/* LE related event and data structure 1529e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*/ 1530e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbachenum 1531e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach{ 1532e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_LE_IO_REQ_EVT = 1, /* received IO_CAPABILITY_REQUEST event */ 1533e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_LE_SEC_REQUEST_EVT, /* security request event */ 1534e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_LE_KEY_NOTIF_EVT, /* received USER_PASSKEY_NOTIFY event */ 1535e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_LE_KEY_REQ_EVT, /* received USER_PASSKEY_REQUEST event */ 1536e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_LE_OOB_REQ_EVT, /* OOB data request event */ 1537e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_LE_COMPLT_EVT, /* received SIMPLE_PAIRING_COMPLETE event */ 1538e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_LE_KEY_EVT /* KEY update event */ 1539e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach}; 1540e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbachtypedef UINT8 tBTM_LE_EVT; 1541e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 1542e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_LE_KEY_PENC SMP_SEC_KEY_TYPE_ENC /* encryption information of peer device */ 1543e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_LE_KEY_PID SMP_SEC_KEY_TYPE_ID /* identity key of the peer device */ 1544e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_LE_KEY_PCSRK SMP_SEC_KEY_TYPE_CSRK /* peer SRK */ 1545e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_LE_KEY_LENC (SMP_SEC_KEY_TYPE_ENC << 3) /* master role security information:div */ 1546e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_LE_KEY_LID (SMP_SEC_KEY_TYPE_ID << 3) /* master device ID key */ 1547e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_LE_KEY_LCSRK (SMP_SEC_KEY_TYPE_CSRK << 3) /* local CSRK has been deliver to peer */ 1548e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbachtypedef UINT8 tBTM_LE_KEY_TYPE; 1549e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 15506ef101187774e30ddba6b46bbedef549a42196adAndre Eisenbach#define BTM_LE_AUTH_REQ_NO_BOND SMP_AUTH_NO_BOND /* 0 */ 1551e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_LE_AUTH_REQ_BOND SMP_AUTH_GEN_BOND /* 1 << 0 */ 1552e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_LE_AUTH_REQ_MITM SMP_AUTH_YN_BIT /* 1 << 2 */ 1553e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbachtypedef UINT8 tBTM_LE_AUTH_REQ; 1554e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 1555e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_LE_AUTH_REQ_MASK SMP_AUTH_MASK /* 0x03*/ 1556e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 1557e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* LE security level */ 15586ef101187774e30ddba6b46bbedef549a42196adAndre Eisenbach#define BTM_LE_SEC_NONE SMP_SEC_NONE 15596ef101187774e30ddba6b46bbedef549a42196adAndre Eisenbach#define BTM_LE_SEC_UNAUTHENTICATE SMP_SEC_UNAUTHENTICATE 15606ef101187774e30ddba6b46bbedef549a42196adAndre Eisenbach#define BTM_LE_SEC_AUTHENTICATED SMP_SEC_AUTHENTICATED 1561e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbachtypedef UINT8 tBTM_LE_SEC; 1562e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 1563e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 1564e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbachtypedef struct 1565e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach{ 1566e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach tBTM_IO_CAP io_cap; /* local IO capabilities */ 1567e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT8 oob_data; /* OOB data present (locally) for the peer device */ 1568e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach tBTM_LE_AUTH_REQ auth_req; /* Authentication request (for local device) contain bonding and MITM info */ 1569e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT8 max_key_size; /* max encryption key size */ 1570e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach tBTM_LE_KEY_TYPE init_keys; /* keys to be distributed, bit mask */ 1571e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach tBTM_LE_KEY_TYPE resp_keys; /* keys to be distributed, bit mask */ 1572e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach} tBTM_LE_IO_REQ; 1573e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 1574e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#if BLE_INCLUDED == TRUE && SMP_INCLUDED == TRUE 1575e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* data type for tBTM_LE_COMPLT */ 1576e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbachtypedef struct 1577e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach{ 1578e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT8 reason; 1579e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT8 sec_level; 1580e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach}tBTM_LE_COMPLT; 1581e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#endif 1582e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 1583e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* BLE encryption keys */ 1584e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbachtypedef struct 1585e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach{ 1586e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BT_OCTET16 ltk; 1587e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BT_OCTET8 rand; 1588e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT16 ediv; 1589e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT8 sec_level; 1590e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT8 key_size; 1591e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach}tBTM_LE_PENC_KEYS; 1592e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 1593e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* BLE CSRK keys */ 1594e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbachtypedef struct 1595e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach{ 1596e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT32 counter; 1597e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BT_OCTET16 csrk; 1598e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT8 sec_level; 1599e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach}tBTM_LE_PCSRK_KEYS; 1600e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 1601e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* BLE Encryption reproduction keys */ 1602e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbachtypedef struct 1603e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach{ 1604e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT16 div; 1605e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT8 key_size; 1606e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT8 sec_level; 1607e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach}tBTM_LE_LENC_KEYS; 1608e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 1609e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* BLE SRK keys */ 1610e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbachtypedef struct 1611e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach{ 1612e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT32 counter; 1613e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT16 div; 1614e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT8 sec_level; 1615e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 1616e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach}tBTM_LE_LCSRK_KEYS; 1617e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 1618e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 1619e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbachtypedef union 1620e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach{ 1621e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach tBTM_LE_PENC_KEYS penc_key; /* received peer encryption key */ 1622e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach tBTM_LE_PCSRK_KEYS pcsrk_key; /* received peer device SRK */ 1623e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BT_OCTET16 pid_key; /* peer device ID key */ 1624e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach tBTM_LE_LENC_KEYS lenc_key; /* local encryption reproduction keys LTK = = d1(ER,DIV,0)*/ 1625e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach tBTM_LE_LCSRK_KEYS lcsrk_key; /* local device CSRK = d1(ER,DIV,1)*/ 1626e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach}tBTM_LE_KEY_VALUE; 1627e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 1628e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbachtypedef struct 1629e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach{ 1630e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach tBTM_LE_KEY_TYPE key_type; 1631e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach tBTM_LE_KEY_VALUE *p_key_value; 1632e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach}tBTM_LE_KEY; 1633e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 1634e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbachtypedef union 1635e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach{ 1636e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach tBTM_LE_IO_REQ io_req; /* BTM_LE_IO_REQ_EVT */ 1637e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT32 key_notif; /* BTM_LE_KEY_NOTIF_EVT */ 1638e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach /* no callback dta for BTM_LE_KEY_REQ_EVT & BTM_LE_OOB_REQ_EVT */ 1639e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#if BLE_INCLUDED == TRUE && SMP_INCLUDED == TRUE 1640e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach tBTM_LE_COMPLT complt; /* BTM_LE_COMPLT_EVT */ 1641e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#endif 1642e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach tBTM_LE_KEY key; 1643e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach} tBTM_LE_EVT_DATA; 1644e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 1645e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* Simple Pairing Events. Called by the stack when Simple Pairing related 1646e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** events occur. 1647e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*/ 1648e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbachtypedef UINT8 (tBTM_LE_CALLBACK) (tBTM_LE_EVT event, BD_ADDR bda, tBTM_LE_EVT_DATA *p_data); 1649e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 1650e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_BLE_KEY_TYPE_ID 1 1651e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_BLE_KEY_TYPE_ER 2 16526ef101187774e30ddba6b46bbedef549a42196adAndre Eisenbach#define BTM_BLE_KEY_TYPE_COUNTER 3 //tobe obsolete 1653e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 1654e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbachtypedef struct 1655e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach{ 1656e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BT_OCTET16 ir; 1657e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BT_OCTET16 irk; 1658e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BT_OCTET16 dhk; 1659e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 1660e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach}tBTM_BLE_LOCAL_ID_KEYS; 1661e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 1662e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbachtypedef union 1663e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach{ 1664e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach tBTM_BLE_LOCAL_ID_KEYS id_keys; 1665e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BT_OCTET16 er; 1666e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach}tBTM_BLE_LOCAL_KEYS; 1667e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 1668e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 1669e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* New LE identity key for local device. 1670e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*/ 1671e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbachtypedef void (tBTM_LE_KEY_CALLBACK) (UINT8 key_type, tBTM_BLE_LOCAL_KEYS *p_key); 1672e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 1673e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 1674e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/*************************** 1675e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Security Manager Types 1676e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach****************************/ 1677e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* Structure that applications use to register with BTM_SecRegister */ 1678e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbachtypedef struct 1679e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach{ 1680e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach tBTM_AUTHORIZE_CALLBACK *p_authorize_callback; 1681e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach tBTM_PIN_CALLBACK *p_pin_callback; 1682e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach tBTM_LINK_KEY_CALLBACK *p_link_key_callback; 1683e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach tBTM_LINK_KEY_REQ_CALLBACK *p_link_key_req_callback; 1684e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach tBTM_AUTH_COMPLETE_CALLBACK *p_auth_complete_callback; 1685e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach tBTM_ABORT_CALLBACK *p_abort_callback; 1686e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach tBTM_BOND_CANCEL_CMPL_CALLBACK *p_bond_cancel_cmpl_callback; 1687e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach tBTM_SP_CALLBACK *p_sp_callback; 16886ef101187774e30ddba6b46bbedef549a42196adAndre Eisenbach#if BLE_INCLUDED == TRUE 1689e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#if SMP_INCLUDED == TRUE 1690e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach tBTM_LE_CALLBACK *p_le_callback; 1691e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#endif 1692e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach tBTM_LE_KEY_CALLBACK *p_le_key_callback; 1693e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#endif 1694e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach} tBTM_APPL_INFO; 1695e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 1696e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* Callback function for when a link supervision timeout event occurs. 1697e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** This asynchronous event is enabled/disabled by calling BTM_RegForLstoEvt(). 1698e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*/ 1699e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbachtypedef void (tBTM_LSTO_CBACK) (BD_ADDR remote_bda, UINT16 timeout); 1700e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 1701e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/***************************************************************************** 1702e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** POWER MANAGEMENT 1703e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*****************************************************************************/ 1704e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/**************************** 1705e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Power Manager Constants 1706e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*****************************/ 1707e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* BTM Power manager status codes */ 1708e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbachenum 1709e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach{ 1710e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_PM_STS_ACTIVE = HCI_MODE_ACTIVE, 1711e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_PM_STS_HOLD = HCI_MODE_HOLD, 1712e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_PM_STS_SNIFF = HCI_MODE_SNIFF, 1713e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_PM_STS_PARK = HCI_MODE_PARK, 1714e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_PM_STS_SSR, /* report the SSR parameters in HCI_SNIFF_SUB_RATE_EVT */ 1715e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_PM_STS_PENDING, /* when waiting for status from controller */ 1716e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_PM_STS_ERROR /* when HCI command status returns error */ 1717e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach}; 1718e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbachtypedef UINT8 tBTM_PM_STATUS; 1719e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 1720e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* BTM Power manager modes */ 1721e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbachenum 1722e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach{ 1723e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_PM_MD_ACTIVE = BTM_PM_STS_ACTIVE, 1724e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_PM_MD_HOLD = BTM_PM_STS_HOLD, 1725e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_PM_MD_SNIFF = BTM_PM_STS_SNIFF, 1726e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_PM_MD_PARK = BTM_PM_STS_PARK, 1727e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_PM_MD_FORCE = 0x10 /* OR this to force ACL link to a certain mode */ 1728e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach}; 1729e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbachtypedef UINT8 tBTM_PM_MODE; 1730e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 1731e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_PM_SET_ONLY_ID 0x80 1732e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 1733e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* Operation codes */ 1734e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_PM_REG_SET 1 /* The module wants to set the desired power mode */ 1735e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_PM_REG_NOTIF 2 /* The module wants to receive mode change event */ 1736e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_PM_DEREG 4 /* The module does not want to involve with PM anymore */ 1737e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 1738e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/************************ 1739e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Power Manager Types 1740e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*************************/ 1741e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbachtypedef struct 1742e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach{ 1743e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT16 max; 1744e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT16 min; 1745e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT16 attempt; 1746e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT16 timeout; 1747e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach tBTM_PM_MODE mode; 1748e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach} tBTM_PM_PWR_MD; 1749e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 1750e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/************************************* 1751e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Power Manager Callback Functions 1752e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach**************************************/ 1753e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbachtypedef void (tBTM_PM_STATUS_CBACK) (BD_ADDR p_bda, tBTM_PM_STATUS status, 1754e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT16 value, UINT8 hci_status); 1755e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 1756e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 1757e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/************************ 1758e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Stored Linkkey Types 1759e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*************************/ 1760e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_CB_EVT_RETURN_LINK_KEYS 1 1761e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_CB_EVT_READ_STORED_LINK_KEYS 2 1762e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_CB_EVT_WRITE_STORED_LINK_KEYS 3 1763e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_CB_EVT_DELETE_STORED_LINK_KEYS 4 1764e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 1765e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbachtypedef struct 1766e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach{ 1767e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT8 event; 1768e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 1769e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach} tBTM_STORED_LINK_KEYS_EVT; 1770e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 1771e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 1772e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbachtypedef struct 1773e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach{ 1774e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT8 event; 1775e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT8 num_keys; 1776e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 1777e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach} tBTM_RETURN_LINK_KEYS_EVT; 1778e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 1779e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 1780e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbachtypedef struct 1781e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach{ 1782e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BD_ADDR bd_addr; 1783e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach LINK_KEY link_key; 1784e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 1785e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach} tBTM_BD_ADDR_LINK_KEY_PAIR; 1786e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 1787e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 1788e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbachtypedef struct 1789e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach{ 1790e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT8 event; 1791e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT8 status; 1792e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT16 max_keys; 1793e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT16 read_keys; 1794e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 1795e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach} tBTM_READ_STORED_LINK_KEY_COMPLETE; 1796e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 1797e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 1798e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbachtypedef struct 1799e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach{ 1800e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT8 event; 1801e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT8 status; 1802e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT8 num_keys; 1803e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 1804e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach} tBTM_WRITE_STORED_LINK_KEY_COMPLETE; 1805e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 1806e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 1807e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbachtypedef struct 1808e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach{ 1809e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT8 event; 1810e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT8 status; 1811e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT16 num_keys; 1812e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 1813e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach} tBTM_DELETE_STORED_LINK_KEY_COMPLETE; 1814e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 1815e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 1816e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* These macros are defined to check the Broadcom features supported in controller 1817e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach * (the return value for BTM_ReadBrcmFeatures() */ 1818e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* multi-av */ 1819e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_FEATURE_MULTI_AV_MASK 0x01 1820e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_FEATURE_MULTI_AV_OFF 0 1821e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_VSC_MULTI_AV_SUPPORTED(x) ((x)[BTM_FEATURE_MULTI_AV_OFF] & BTM_FEATURE_MULTI_AV_MASK) 1822e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 1823e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* WBS SBC codec */ 1824e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_FEATURE_WBS_SBC_MASK 0x02 1825e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_FEATURE_WBS_SBC_OFF 0 1826e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_VSC_WBS_SBC_SUPPORTED(x) ((x)[BTM_FEATURE_WBS_SBC_OFF] & BTM_FEATURE_WBS_SBC_MASK) 1827e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 1828e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* Advanced Audio LC-PLC */ 1829e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_FEATURE_AUDIO_LC_PLC_MASK 0x04 1830e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_FEATURE_AUDIO_LC_PLC_OFF 0 1831e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_VSC_AUDIO_LC_PLC_SUPPORTED(x) ((x)[BTM_FEATURE_AUDIO_LC_PLC_OFF] & BTM_FEATURE_AUDIO_LC_PLC_MASK) 1832e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 1833e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* Light stack for audio routing in Controller */ 1834e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_FEATURE_LIGHT_STACK_MASK 0x08 1835e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_FEATURE_LIGHT_STACK_OFF 0 1836e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_VSC_LIGHT_STACK_SUPPORTED(x) ((x)[BTM_FEATURE_LIGHT_STACK_OFF] & BTM_FEATURE_LIGHT_STACK_MASK) 1837e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 1838e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* NFC support */ 1839e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_FEATURE_NFC_MASK (HCI_BRCM_FEATURE_NFC_MASK) /* 0x10 */ 1840e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_FEATURE_NFC_OFF (HCI_BRCM_FEATURE_NFC_OFF) /* 0 */ 1841e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_VSC_NFC_SUPPORTED(x) ((x)[BTM_FEATURE_NFC_OFF] & BTM_FEATURE_NFC_MASK) 1842e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 1843e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 1844e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/************************ 1845e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Dual-Stack support 1846e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*************************/ 1847e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* BTM_SYNC_FAIL_EVT reason codes */ 1848e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SYNC_SUCCESS 0 1849e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SYNC_FAIL_BTE_SWITCH_REJECTED 1 1850e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SYNC_FAIL_TRANS_PAUSE 2 1851e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SYNC_FAIL_CORE_SYNC 3 1852e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SYNC_FAIL_BTA_SYNC 4 1853e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SYNC_FAIL_TRANS_RESUME 5 1854e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SYNC_FAIL_RESYNC 6 1855e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SYNC_FAIL_ERROR 7 1856e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SYNC_FAIL_UIPC_OPEN 8 1857e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbachtypedef UINT8 tBTM_SYNC_STATUS; 1858e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 1859e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* Direction of sync (used by BTM_SyncStack) */ 1860e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SW_BB_TO_MM 0 1861e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SW_TO_BB 1 /* Switch back to baseband stack (from either MM or BTC host) */ 1862e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SW_RESYNC 2 1863e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SW_BB_TO_BTC 3 /* Switch from baseband stack to Bluetooth Controller Host stack */ 1864e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SW_MM_TO_BB 4 1865e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SW_BTC_TO_BB 5 1866e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbachtypedef UINT8 tBTM_SW_DIR; 1867e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 1868e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* Stack synchronization events (returned by tBTM_SYNC_STACK_CBACK callback) */ 1869e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SYNC_CPLT_EVT 0 1870e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_SYNC_BTA_EVT 1 1871e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_RESYNC_CPLT_EVT 2 1872e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_UIPC_OPENED_EVT 3 1873e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_UIPC_CLOSED_EVT 4 1874e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbachtypedef UINT8 tBTM_SYNC_STACK_EVT; 1875e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 1876e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* Synchronization info from BTA/application that will be sent when calling BTE sync request functions */ 1877e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbachtypedef struct 1878e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach{ 1879e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach tBTM_SW_DIR dir; 1880e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT16 lcid[BTM_SYNC_INFO_NUM_STR]; 1881e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT8 avdt_handle[BTM_SYNC_INFO_NUM_STR]; 1882e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach} tBTM_SYNC_INFO; 1883e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 1884e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* Stack synchonization callback function 1885e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Parameters are 1886e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** event: stack synchronization event 1887e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** status: BTM_SUCCESS if event was successful 1888e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*/ 1889e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbachtypedef void (*tBTM_SYNC_STACK_CBACK)(tBTM_SYNC_STACK_EVT event, tBTM_SYNC_STATUS status); 1890e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 1891e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 1892e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* Sync complete callback function. Called by bte layers after synchronization is complete 1893e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** so that BTM_SYNC can procede with the next step for switching stack to MM 1894e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 1895e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Parameters are 1896e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** status: BTM_SUCCESS if synchronization was successful 1897e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*/ 1898e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbachtypedef void (*tBTM_SYNC_CPLT_CBACK)(tBTM_STATUS status); 1899e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 1900e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 1901e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 1902e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* IPC event callback function. Called by BTM when an IPC event is received. 1903e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** These events are currently sent to DM through the callback function. 1904e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 1905e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Parameters are 1906e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** status: BTM_SUCCESS if synchronization was successful 1907e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** p_data: Actual message in the IPC 1908e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*/ 1909e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbachtypedef void (tBTM_IPC_EVT_CBACK)(tBTM_STATUS status, BT_HDR *p_data); 1910e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 1911e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* MIP evnets, callbacks */ 1912e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbachenum 1913e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach{ 1914e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_MIP_MODE_CHG_EVT, 1915e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_MIP_DISCONNECT_EVT, 1916e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_MIP_PKTS_COMPL_EVT, 1917e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_MIP_RXDATA_EVT 1918e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach}; 1919e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbachtypedef UINT8 tBTM_MIP_EVT; 1920e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 1921e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbachtypedef struct 1922e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach{ 1923e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach tBTM_MIP_EVT event; 1924e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BD_ADDR bd_addr; 1925e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT16 mip_id; 1926e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach} tBTM_MIP_MODE_CHANGE; 1927e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 1928e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbachtypedef struct 1929e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach{ 1930e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach tBTM_MIP_EVT event; 1931e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT16 mip_id; 1932e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT8 disc_reason; 1933e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach} tBTM_MIP_CONN_TIMEOUT; 1934e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 1935e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define BTM_MIP_MAX_RX_LEN 17 1936e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 1937e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbachtypedef struct 1938e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach{ 1939e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach tBTM_MIP_EVT event; 1940e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT16 mip_id; 1941e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT8 rx_len; 1942e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT8 rx_data[BTM_MIP_MAX_RX_LEN]; 1943e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach} tBTM_MIP_RXDATA; 1944e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 1945e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbachtypedef struct 1946e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach{ 1947e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach tBTM_MIP_EVT event; 1948e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BD_ADDR bd_addr; 1949e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT8 data[11]; /* data[0] shows Vender-specific device type */ 1950e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach} tBTM_MIP_EIR_HANDSHAKE; 1951e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 1952e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbachtypedef struct 1953e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach{ 1954e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach tBTM_MIP_EVT event; 1955e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT16 num_sent; /* Number of packets completed at the controller */ 1956e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach} tBTM_MIP_PKTS_COMPL; 1957e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 1958e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbachtypedef union 1959e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach{ 1960e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach tBTM_MIP_EVT event; 1961e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach tBTM_MIP_MODE_CHANGE mod_chg; 1962e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach tBTM_MIP_CONN_TIMEOUT conn_tmo; 1963e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach tBTM_MIP_EIR_HANDSHAKE eir; 1964e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach tBTM_MIP_PKTS_COMPL completed; 1965e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach tBTM_MIP_RXDATA rxdata; 1966e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach} tBTM_MIP_EVENT_DATA; 1967e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 1968e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* MIP event callback function */ 1969e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbachtypedef void (tBTM_MIP_EVENTS_CB) (tBTM_MIP_EVT event, tBTM_MIP_EVENT_DATA data); 1970e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 1971e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* MIP Device query callback function */ 1972e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbachtypedef BOOLEAN (tBTM_MIP_QUERY_CB) (BD_ADDR dev_addr, UINT8 *p_mode, LINK_KEY link_key); 1973e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 1974e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/***************************************************************************** 1975e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** EXTERNAL FUNCTION DECLARATIONS 1976e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*****************************************************************************/ 1977e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#ifdef __cplusplus 1978e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbachextern "C" { 1979e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#endif 1980e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 1981e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/***************************************************************************** 1982e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** DEVICE CONTROL and COMMON FUNCTIONS 1983e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*****************************************************************************/ 1984e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 1985e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 1986e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 1987e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function BTM_SetAfhChannels 1988e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 1989e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description This function is called to disable channels 1990e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 1991e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Returns status 1992e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 1993e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 1994e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_API extern tBTM_STATUS BTM_SetAfhChannels (UINT8 first, UINT8 last); 1995e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 1996e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 1997e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 1998e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function BTM_SetAfhChannelAssessment 1999e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2000e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description This function is called to set the channel assessment mode on or off 2001e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2002e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Returns status 2003e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2004e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 2005e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_API extern tBTM_STATUS BTM_SetAfhChannelAssessment (BOOLEAN enable_or_disable); 2006e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 2007e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 2008e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2009e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function BTM_DeviceReset 2010e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2011e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description This function is called to reset the controller.The Callback function 2012e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** if provided is called when startup of the device has 2013e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** completed. 2014e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2015e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Returns void 2016e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2017e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 2018e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_API extern void BTM_DeviceReset (tBTM_CMPL_CB *p_cb); 2019e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 2020e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 2021e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 2022e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2023e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function BTM_IsDeviceUp 2024e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2025e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description This function is called to check if the device is up. 2026e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2027e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Returns TRUE if device is up, else FALSE 2028e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2029e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 2030e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_API extern BOOLEAN BTM_IsDeviceUp (void); 2031e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 2032e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 2033e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 2034e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2035e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function BTM_SetLocalDeviceName 2036e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2037e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description This function is called to set the local device name. 2038e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2039e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Returns BTM_CMD_STARTED if successful, otherwise an error 2040e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2041e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 2042e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_API extern tBTM_STATUS BTM_SetLocalDeviceName (char *p_name); 2043e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 2044e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 2045e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2046e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function BTM_SetDeviceClass 2047e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2048e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description This function is called to set the local device class 2049e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2050e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Returns BTM_SUCCESS if successful, otherwise an error 2051e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2052e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 2053e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_API extern tBTM_STATUS BTM_SetDeviceClass (DEV_CLASS dev_class); 2054e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 2055e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 2056e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 2057e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2058e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function BTM_ReadLocalDeviceName 2059e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2060e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description This function is called to read the local device name. 2061e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2062e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Returns status of the operation 2063e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** If success, BTM_SUCCESS is returned and p_name points stored 2064e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** local device name 2065e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** If BTM doesn't store local device name, BTM_NO_RESOURCES is 2066e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** is returned and p_name is set to NULL 2067e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2068e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 2069e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_API extern tBTM_STATUS BTM_ReadLocalDeviceName (char **p_name); 2070e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 2071e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 2072e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2073e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function BTM_ReadLocalDeviceNameFromController 2074e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 20756ef101187774e30ddba6b46bbedef549a42196adAndre Eisenbach** Description Get local device name from controller. Do not use cached 2076e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** name (used to get chip-id prior to btm reset complete). 2077e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2078e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Returns BTM_CMD_STARTED if successful, otherwise an error 2079e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2080e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 2081e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_API extern tBTM_STATUS BTM_ReadLocalDeviceNameFromController (tBTM_CMPL_CB *p_rln_cmpl_cback); 2082e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 2083e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 2084e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2085e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function BTM_ReadLocalVersion 2086e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2087e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description This function is called to read the local device version 2088e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2089e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Returns BTM_SUCCESS if successful, otherwise an error 2090e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2091e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 2092e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_API extern tBTM_STATUS BTM_ReadLocalVersion (tBTM_VERSION_INFO *p_vers); 2093e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 2094e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 2095e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 2096e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2097e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function BTM_ReadLocalDeviceAddr 2098e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2099e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description This function is called to read the local device address 2100e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2101e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Returns BTM_SUCCESS 2102e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Callback returns the local device address 2103e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2104e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 2105e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_API extern tBTM_STATUS BTM_ReadLocalDeviceAddr (tBTM_CMPL_CB *p_cb); 2106e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 2107e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 2108e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 2109e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2110e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function BTM_GetLocalDeviceAddr 2111e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2112e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description This function is called to read the local device address 2113e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2114e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Returns void 2115e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** the local device address is copied into bd_addr 2116e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2117e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 2118e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_API extern void BTM_GetLocalDeviceAddr (BD_ADDR bd_addr); 2119e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 2120e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 2121e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 2122e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2123e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function BTM_ReadDeviceClass 2124e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2125e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description This function is called to read the local device class 2126e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2127e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Returns pointer to the device class 2128e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2129e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 2130e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_API extern UINT8 *BTM_ReadDeviceClass (void); 2131e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 2132e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 2133e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 2134e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2135e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function BTM_ReadLocalFeatures 2136e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2137e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description This function is called to read the local features 2138e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2139e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Returns pointer to the local features string 2140e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2141e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 2142e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_API extern UINT8 *BTM_ReadLocalFeatures (void); 2143e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 2144e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 2145e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2146e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function BTM_ReadBrcmFeatures 2147e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2148e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description This function is called to read the Broadcom specific features 2149e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2150e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Returns pointer to the Broadcom features string 2151e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2152e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 2153e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_API extern UINT8 *BTM_ReadBrcmFeatures (void); 2154e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 2155e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 2156e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2157e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function BTM_RegisterForDeviceStatusNotif 2158e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2159e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description This function is called to register for device status 2160e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** change notifications. 2161e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2162e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Returns pointer to previous caller's callback function or NULL if first 2163e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** registration. 2164e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2165e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 2166e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_API extern tBTM_DEV_STATUS_CB *BTM_RegisterForDeviceStatusNotif (tBTM_DEV_STATUS_CB *p_cb); 2167e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 2168e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 2169e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 2170e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2171e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function BTM_RegisterForVSEvents 2172e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2173e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description This function is called to register/deregister for vendor 2174e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** specific HCI events. 2175e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2176e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** If is_register=TRUE, then the function will be registered; 2177e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** if is_register=FALSE, then the function will be deregistered. 2178e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2179e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Returns BTM_SUCCESS if successful, 2180e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** BTM_BUSY if maximum number of callbacks have already been 2181e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** registered. 2182e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2183e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 2184e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_API extern tBTM_STATUS BTM_RegisterForVSEvents (tBTM_VS_EVT_CB *p_cb, BOOLEAN is_register); 2185e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 2186e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 2187e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 2188e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2189e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function BTM_ContinueReset 2190e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2191e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description Instructs stack to continue its stack initialization after 2192e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** an application has completed any vender specific commands 2193e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** sent to the controller. 2194e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2195e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Note: This function is only called if an application 2196e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** initialization function has been inserted in the reset 2197e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** sequence. (BTM_APP_DEV_INIT is defined with a function). 2198e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2199e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Returns void 2200e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2201e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 2202e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_API extern void BTM_ContinueReset (void); 2203e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 2204e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 2205e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 2206e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2207e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function BTM_VendorSpecificCommand 2208e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2209e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description Send a vendor specific HCI command to the controller. 2210e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2211e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Returns 2212e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** BTM_SUCCESS Command sent. Does not expect command complete 2213e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** event. (command cmpl callback param is NULL) 2214e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** BTM_CMD_STARTED Command sent. Waiting for command cmpl event. 2215e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** BTM_BUSY Command not sent. Waiting for cmd cmpl event for 2216e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** prior command. 2217e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2218e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 2219e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_API extern tBTM_STATUS BTM_VendorSpecificCommand(UINT16 opcode, 2220e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT8 param_len, 2221e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT8 *p_param_buf, 2222e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach tBTM_VSC_CMPL_CB *p_cb); 2223e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 2224e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 2225e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 2226e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2227e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function BTM_AllocateSCN 2228e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2229e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description Look through the Server Channel Numbers for a free one to be 2230e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** used with an RFCOMM connection. 2231e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2232e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Returns Allocated SCN number or 0 if none. 2233e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2234e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 2235e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_API extern UINT8 BTM_AllocateSCN(void); 2236e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 2237e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach// btla-specific ++ 2238e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 2239e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2240e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function BTM_TryAllocateSCN 2241e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2242e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description Try to allocate a fixed server channel 2243e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2244e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Returns Returns TRUE if server channel was available 2245e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2246e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 2247e448862a47c08eb23185aaed574b39264f5005fcAndre EisenbachBTM_API extern BOOLEAN BTM_TryAllocateSCN(UINT8 scn); 2248e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach// btla-specific -- 2249e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 2250e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 2251e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 2252e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2253e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function BTM_FreeSCN 2254e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2255e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description Free the specified SCN. 2256e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2257e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Returns TRUE if successful, FALSE if SCN is not in use or invalid 2258e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2259e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 2260e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_API extern BOOLEAN BTM_FreeSCN(UINT8 scn); 2261e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 2262e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 2263e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 2264e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2265e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function BTM_SetTraceLevel 2266e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2267e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description This function sets the trace level for BTM. If called with 2268e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** a value of 0xFF, it simply returns the current trace level. 2269e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2270e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Returns The new or current trace level 2271e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2272e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 2273e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_API extern UINT8 BTM_SetTraceLevel (UINT8 new_level); 2274e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 2275e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 2276e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 2277e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2278e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function BTM_WritePageTimeout 2279e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2280e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description Send HCI Wite Page Timeout. 2281e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2282e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Returns 2283e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** BTM_SUCCESS Command sent. 2284e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** BTM_NO_RESOURCES If out of resources to send the command. 2285e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2286e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 2287e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_API extern tBTM_STATUS BTM_WritePageTimeout(UINT16 timeout); 2288e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 2289e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 2290e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2291e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function BTM_WriteVoiceSettings 2292e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2293e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description Send HCI Write Voice Settings command. 2294e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** See hcidefs.h for settings bitmask values. 2295e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2296e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Returns 2297e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** BTM_SUCCESS Command sent. 2298e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** BTM_NO_RESOURCES If out of resources to send the command. 2299e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2300e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2301e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 2302e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_API extern tBTM_STATUS BTM_WriteVoiceSettings(UINT16 settings); 2303e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 2304e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 2305e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2306e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function BTM_EnableTestMode 2307e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2308e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description Send HCI the enable device under test command. 2309e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2310e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Note: Controller can only be taken out of this mode by 2311e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** resetting the controller. 2312e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2313e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Returns 2314e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** BTM_SUCCESS Command sent. 2315e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** BTM_NO_RESOURCES If out of resources to send the command. 2316e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2317e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2318e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 2319e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_API extern tBTM_STATUS BTM_EnableTestMode(void); 2320e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 2321e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 2322e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/***************************************************************************** 2323e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** DEVICE DISCOVERY FUNCTIONS - Inquiry, Remote Name, Discovery, Class of Device 2324e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*****************************************************************************/ 2325e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 2326e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 2327e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2328e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function BTM_SetDiscoverability 2329e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2330e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description This function is called to set the device into or out of 2331e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** discoverable mode. Discoverable mode means inquiry 2332e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** scans are enabled. If a value of '0' is entered for window or 2333e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** interval, the default values are used. 2334e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2335e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Returns BTM_SUCCESS if successful 2336e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** BTM_BUSY if a setting of the filter is already in progress 2337e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** BTM_NO_RESOURCES if couldn't get a memory pool buffer 2338e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** BTM_ILLEGAL_VALUE if a bad parameter was detected 2339e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** BTM_WRONG_MODE if the device is not up. 2340e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2341e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 2342e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_API extern tBTM_STATUS BTM_SetDiscoverability (UINT16 inq_mode, UINT16 window, 2343e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT16 interval); 2344e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 2345e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 2346e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 2347e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2348e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function BTM_ReadDiscoverability 2349e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2350e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description This function is called to read the current discoverability 2351e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** mode of the device. 2352e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2353e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Output Params: p_window - current inquiry scan duration 2354e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** p_interval - current inquiry scan interval 2355e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2356e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Returns BTM_NON_DISCOVERABLE, BTM_LIMITED_DISCOVERABLE, or 2357e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** BTM_GENERAL_DISCOVERABLE 2358e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2359e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 2360e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_API extern UINT16 BTM_ReadDiscoverability (UINT16 *p_window, 2361e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT16 *p_interval); 2362e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 2363e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 2364e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 2365e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2366e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function BTM_SetPeriodicInquiryMode 2367e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2368e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description This function is called to set the device periodic inquiry mode. 2369e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** If the duration is zero, the periodic inquiry mode is cancelled. 2370e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2371e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Parameters: p_inqparms - pointer to the inquiry information 2372e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** mode - GENERAL or LIMITED inquiry 2373e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** duration - length in 1.28 sec intervals (If '0', the inquiry is CANCELLED) 2374e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** max_resps - maximum amount of devices to search for before ending the inquiry 2375e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** filter_cond_type - BTM_CLR_INQUIRY_FILTER, BTM_FILTER_COND_DEVICE_CLASS, or 2376e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** BTM_FILTER_COND_BD_ADDR 2377e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** filter_cond - value for the filter (based on filter_cond_type) 2378e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2379e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** max_delay - maximum amount of time between successive inquiries 2380e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** min_delay - minimum amount of time between successive inquiries 2381e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** p_results_cb - callback returning pointer to results (tBTM_INQ_RESULTS) 2382e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2383e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Returns BTM_CMD_STARTED if successfully started 2384e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** BTM_ILLEGAL_VALUE if a bad parameter is detected 2385e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** BTM_NO_RESOURCES if could not allocate a message buffer 2386e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** BTM_SUCCESS - if cancelling the periodic inquiry 2387e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** BTM_BUSY - if an inquiry is already active 2388e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** BTM_WRONG_MODE if the device is not up. 2389e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2390e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 2391e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_API extern tBTM_STATUS BTM_SetPeriodicInquiryMode (tBTM_INQ_PARMS *p_inqparms, 2392e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT16 max_delay, UINT16 min_delay, 2393e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach tBTM_INQ_RESULTS_CB *p_results_cb); 2394e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 2395e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 2396e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 2397e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2398e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function BTM_StartInquiry 2399e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2400e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description This function is called to start an inquiry. 2401e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2402e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Parameters: p_inqparms - pointer to the inquiry information 2403e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** mode - GENERAL or LIMITED inquiry 2404e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** duration - length in 1.28 sec intervals (If '0', the inquiry is CANCELLED) 2405e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** max_resps - maximum amount of devices to search for before ending the inquiry 2406e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** filter_cond_type - BTM_CLR_INQUIRY_FILTER, BTM_FILTER_COND_DEVICE_CLASS, or 2407e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** BTM_FILTER_COND_BD_ADDR 2408e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** filter_cond - value for the filter (based on filter_cond_type) 2409e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2410e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** p_results_cb - Pointer to the callback routine which gets called 2411e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** upon receipt of an inquiry result. If this field is 2412e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** NULL, the application is not notified. 2413e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2414e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** p_cmpl_cb - Pointer to the callback routine which gets called 2415e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** upon completion. If this field is NULL, the 2416e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** application is not notified when completed. 2417e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Returns tBTM_STATUS 2418e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** BTM_CMD_STARTED if successfully initiated 2419e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** BTM_BUSY if already in progress 2420e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** BTM_ILLEGAL_VALUE if parameter(s) are out of range 2421e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** BTM_NO_RESOURCES if could not allocate resources to start the command 2422e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** BTM_WRONG_MODE if the device is not up. 2423e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2424e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 2425e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_API extern tBTM_STATUS BTM_StartInquiry (tBTM_INQ_PARMS *p_inqparms, 2426e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach tBTM_INQ_RESULTS_CB *p_results_cb, 2427e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach tBTM_CMPL_CB *p_cmpl_cb); 2428e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 2429e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 2430e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 2431e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2432e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function BTM_IsInquiryActive 2433e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2434e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description This function returns a bit mask of the current inquiry state 2435e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2436e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Returns BTM_INQUIRY_INACTIVE if inactive (0) 2437e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** BTM_LIMITED_INQUIRY_ACTIVE if a limted inquiry is active 2438e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** BTM_GENERAL_INQUIRY_ACTIVE if a general inquiry is active 2439e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** BTM_PERIODIC_INQUIRY_ACTIVE if a periodic inquiry is active 2440e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2441e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 2442e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_API extern UINT16 BTM_IsInquiryActive (void); 2443e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 2444e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 2445e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 2446e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2447e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function BTM_CancelInquiry 2448e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2449e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description This function cancels an inquiry if active 2450e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2451e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Returns BTM_SUCCESS if successful 2452e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** BTM_NO_RESOURCES if could not allocate a message buffer 2453e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** BTM_WRONG_MODE if the device is not up. 2454e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2455e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 2456e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_API extern tBTM_STATUS BTM_CancelInquiry(void); 2457e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 2458e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 2459e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 2460e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2461e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function BTM_CancelPeriodicInquiry 2462e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2463e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description This function cancels a periodic inquiry 2464e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2465e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Returns 2466e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** BTM_NO_RESOURCES if could not allocate a message buffer 2467e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** BTM_SUCCESS - if cancelling the periodic inquiry 2468e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** BTM_WRONG_MODE if the device is not up. 2469e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2470e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 2471e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_API extern tBTM_STATUS BTM_CancelPeriodicInquiry(void); 2472e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 2473e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 2474e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 2475e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2476e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function BTM_SetInquiryFilterCallback 2477e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2478e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description Host can register to be asked whenever an inquiry result 2479e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** is received. If host does not like the device no name 2480e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** request is issued for the device 2481e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2482e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Returns void 2483e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2484e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 2485e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_API extern void BTM_SetInquiryFilterCallback(tBTM_FILTER_CB *p_callback); 2486e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 2487e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 2488e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 2489e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2490e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function BTM_SetConnectability 2491e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2492e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description This function is called to set the device into or out of 2493e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** connectable mode. Discoverable mode means page scans enabled. 2494e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2495e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Returns BTM_SUCCESS if successful 2496e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** BTM_ILLEGAL_VALUE if a bad parameter is detected 2497e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** BTM_NO_RESOURCES if could not allocate a message buffer 2498e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** BTM_WRONG_MODE if the device is not up. 2499e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2500e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 2501e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_API extern tBTM_STATUS BTM_SetConnectability (UINT16 page_mode, UINT16 window, 2502e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT16 interval); 2503e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 2504e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 2505e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 2506e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2507e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function BTM_ReadConnectability 2508e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2509e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description This function is called to read the current discoverability 2510e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** mode of the device. 2511e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Output Params p_window - current page scan duration 2512e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** p_interval - current time between page scans 2513e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2514e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Returns BTM_NON_CONNECTABLE or BTM_CONNECTABLE 2515e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2516e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 2517e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_API extern UINT16 BTM_ReadConnectability (UINT16 *p_window, UINT16 *p_interval); 2518e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 2519e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 2520e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 2521e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2522e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function BTM_SetInquiryMode 2523e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2524e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description This function is called to set standard, with RSSI 2525e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** mode or extended of the inquiry for local device. 2526e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2527e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Input Params: BTM_INQ_RESULT_STANDARD, BTM_INQ_RESULT_WITH_RSSI or 2528e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** BTM_INQ_RESULT_EXTENDED 2529e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2530e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Returns BTM_SUCCESS if successful 2531e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** BTM_NO_RESOURCES if couldn't get a memory pool buffer 2532e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** BTM_ILLEGAL_VALUE if a bad parameter was detected 2533e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** BTM_WRONG_MODE if the device is not up. 2534e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2535e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 2536e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BT_API extern tBTM_STATUS BTM_SetInquiryMode (UINT8 mode); 2537e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 2538e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 2539e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2540e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function BTM_SetInquiryScanType 2541e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2542e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description This function is called to set the iquiry scan-type to 2543e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** standard or interlaced. 2544e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2545e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Input Params: BTM_SCAN_TYPE_STANDARD or BTM_SCAN_TYPE_INTERLACED 2546e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2547e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Returns BTM_SUCCESS if successful 2548e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** BTM_MODE_UNSUPPORTED if not a 1.2 device 2549e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** BTM_WRONG_MODE if the device is not up. 2550e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2551e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 2552e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BT_API extern tBTM_STATUS BTM_SetInquiryScanType (UINT16 scan_type); 2553e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 2554e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 2555e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2556e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function BTM_SetPageScanType 2557e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2558e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description This function is called to set the page scan-type to 2559e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** standard or interlaced. 2560e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2561e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Input Params: BTM_SCAN_TYPE_STANDARD or BTM_SCAN_TYPE_INTERLACED 2562e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2563e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Returns BTM_SUCCESS if successful 2564e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** BTM_MODE_UNSUPPORTED if not a 1.2 device 2565e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** BTM_WRONG_MODE if the device is not up. 2566e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2567e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 2568e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 2569e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BT_API extern tBTM_STATUS BTM_SetPageScanType (UINT16 scan_type); 2570e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 2571e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 2572e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2573e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function BTM_ReadRemoteDeviceName 2574e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2575e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description This function initiates a remote device HCI command to the 2576e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** controller and calls the callback when the process has completed. 2577e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2578e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Input Params: remote_bda - device address of name to retrieve 2579e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** p_cb - callback function called when BTM_CMD_STARTED 2580e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** is returned. 2581e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** A pointer to tBTM_REMOTE_DEV_NAME is passed to the 2582e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** callback. 2583e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2584e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Returns 2585e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** BTM_CMD_STARTED is returned if the request was successfully sent 2586e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** to HCI. 2587e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** BTM_BUSY if already in progress 2588e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** BTM_UNKNOWN_ADDR if device address is bad 2589e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** BTM_NO_RESOURCES if could not allocate resources to start the command 2590e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** BTM_WRONG_MODE if the device is not up. 2591e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2592e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 2593e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_API extern tBTM_STATUS BTM_ReadRemoteDeviceName (BD_ADDR remote_bda, 2594e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach tBTM_CMPL_CB *p_cb); 2595e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 2596e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 2597e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 2598e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2599e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function BTM_CancelRemoteDeviceName 2600e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2601e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description This function initiates the cancel request for the specified 2602e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** remote device. 2603e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2604e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Input Params: None 2605e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2606e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Returns 2607e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** BTM_CMD_STARTED is returned if the request was successfully sent 2608e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** to HCI. 2609e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** BTM_NO_RESOURCES if could not allocate resources to start the command 2610e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** BTM_WRONG_MODE if there is not an active remote name request. 2611e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2612e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 2613e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_API extern tBTM_STATUS BTM_CancelRemoteDeviceName (void); 2614e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 2615e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 2616e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2617e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function BTM_ReadRemoteVersion 2618e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2619e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description This function is called to read a remote device's version 2620e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2621e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Returns BTM_SUCCESS if successful, otherwise an error 2622e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2623e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 2624e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_API extern tBTM_STATUS BTM_ReadRemoteVersion (BD_ADDR addr, 2625e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT8 *lmp_version, 2626e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT16 *manufacturer, 2627e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT16 *lmp_sub_version); 2628e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 2629e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 2630e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2631e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function BTM_ReadRemoteFeatures 2632e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2633e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description This function is called to read a remote device's features 2634e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2635e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Returns pointer to the features string 2636e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2637e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 2638e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_API extern UINT8 *BTM_ReadRemoteFeatures (BD_ADDR addr); 2639e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 2640e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 2641e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2642e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function BTM_InqFirstResult 2643e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2644e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description This function looks through the inquiry database for the first 2645e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** used entrysince the LAST inquiry. This is used in conjunction 2646e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** with BTM_InqNext by applications as a way to walk through the 2647e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** inquiry results database. 2648e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2649e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Returns pointer to first in-use entry, or NULL if DB is empty 2650e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2651e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 2652e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_API extern tBTM_INQ_INFO *BTM_InqFirstResult (void); 2653e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 2654e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 2655e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 2656e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2657e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function BTM_InqNextResult 2658e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2659e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description This function looks through the inquiry database for the next 2660e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** used entrysince the LAST inquiry. If the input parameter is NULL, 2661e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** the first entry is returned. 2662e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2663e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Returns pointer to next in-use entry, or NULL if no more found. 2664e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2665e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 2666e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_API extern tBTM_INQ_INFO *BTM_InqNextResult (tBTM_INQ_INFO *p_cur); 2667e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 2668e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 2669e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 2670e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2671e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function BTM_InqDbRead 2672e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2673e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description This function looks through the inquiry database for a match 2674e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** based on Bluetooth Device Address. This is the application's 2675e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** interface to get the inquiry details of a specific BD address. 2676e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2677e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Returns pointer to entry, or NULL if not found 2678e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2679e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 2680e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_API extern tBTM_INQ_INFO *BTM_InqDbRead (BD_ADDR p_bda); 2681e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 2682e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 2683e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 2684e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2685e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function BTM_InqDbFirst 2686e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2687e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description This function looks through the inquiry database for the first 2688e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** used entry, and returns that. This is used in conjunction with 2689e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** BTM_InqDbNext by applications as a way to walk through the 2690e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** inquiry database. 2691e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2692e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Returns pointer to first in-use entry, or NULL if DB is empty 2693e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2694e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 2695e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_API extern tBTM_INQ_INFO *BTM_InqDbFirst (void); 2696e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 2697e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 2698e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 2699e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2700e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function BTM_InqDbNext 2701e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2702e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description This function looks through the inquiry database for the next 2703e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** used entry, and returns that. If the input parameter is NULL, 2704e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** the first entry is returned. 2705e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2706e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Returns pointer to next in-use entry, or NULL if no more found. 2707e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2708e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 2709e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_API extern tBTM_INQ_INFO *BTM_InqDbNext (tBTM_INQ_INFO *p_cur); 2710e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 2711e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 2712e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 2713e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2714e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function BTM_ClearInqDb 2715e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2716e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description This function is called to clear out a device or all devices 2717e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** from the inquiry database. 2718e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2719e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Parameter p_bda - (input) BD_ADDR -> Address of device to clear 2720e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** (NULL clears all entries) 2721e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2722e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Returns BTM_BUSY if an inquiry, get remote name, or event filter 2723e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** is active, otherwise BTM_SUCCESS 2724e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2725e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 2726e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_API extern tBTM_STATUS BTM_ClearInqDb (BD_ADDR p_bda); 2727e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 2728e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 2729e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 2730e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2731e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function BTM_ReadNumInqDbEntries 2732e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2733e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Returns This function returns the number of entries in the inquiry database. 2734e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2735e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 2736e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_API extern UINT8 BTM_ReadNumInqDbEntries (void); 2737e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 2738e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 2739e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 2740e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2741e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function BTM_InquiryRegisterForChanges 2742e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2743e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description This function is called to register a callback for when the 2744e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** inquiry database changes, i.e. new entry or entry deleted. 2745e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2746e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Returns BTM_SUCCESS if successful, otherwise error code 2747e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2748e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 2749e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_API extern tBTM_STATUS BTM_InquiryRegisterForChanges (tBTM_INQ_DB_CHANGE_CB *p_cb); 2750e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 2751e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 2752e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2753e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function BTM_ReadInquiryRspTxPower 2754e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2755e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description This command will read the inquiry Transmit Power level used 27566ef101187774e30ddba6b46bbedef549a42196adAndre Eisenbach** to transmit the FHS and EIR data packets. 2757e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** This can be used directly in the Tx Power Level EIR data type. 2758e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2759e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Returns BTM_SUCCESS if successful 2760e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2761e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 2762e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_API extern tBTM_STATUS BTM_ReadInquiryRspTxPower (tBTM_CMPL_CB *p_cb); 2763e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 2764e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 2765e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2766e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function BTM_WriteInquiryTxPower 2767e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 27686ef101187774e30ddba6b46bbedef549a42196adAndre Eisenbach** Description This command is used to write the inquiry transmit power level 27696ef101187774e30ddba6b46bbedef549a42196adAndre Eisenbach** used to transmit the inquiry (ID) data packets. The Controller 2770e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** should use the supported TX power level closest to the Tx_Power 2771e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** parameter. 2772e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2773e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Returns BTM_SUCCESS if successful 2774e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2775e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 2776e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_API extern tBTM_STATUS BTM_WriteInquiryTxPower (INT8 tx_power); 2777e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 2778e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 2779e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2780e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function BTM_StartDiscovery 2781e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2782e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description This function is called by an application (or profile) 2783e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** when it wants to trigger an service discovery using the 2784e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** BTM's discovery database. 2785e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2786e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Returns tBTM_STATUS 2787e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** BTM_CMD_STARTED if the discovery was initiated 2788e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** BTM_BUSY if one is already in progress 2789e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** BTM_UNKNOWN_ADDR if no addresses are in the INQ DB 2790e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** BTM_ERR_PROCESSING if err initiating the command 2791e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2792e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 2793e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_API extern tBTM_STATUS BTM_StartDiscovery (tBTM_CMPL_CB *p_cmpl_cb, 2794e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BD_ADDR_PTR p_rem_addr); 2795e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 2796e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 2797e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 2798e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2799e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function BTM_FindAttribute 2800e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2801e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description This function is called by an application (or profile) 2802e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** when it wants to see if an attribute exists in the BTM 2803e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** discovery database. 2804e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2805e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Returns Pointer to matching record, or NULL 2806e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2807e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 2808e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_API extern tSDP_DISC_REC *BTM_FindAttribute (UINT16 attr_id, 2809e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach tSDP_DISC_REC *p_start_rec); 2810e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 2811e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 2812e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 2813e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2814e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function BTM_FindService 2815e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2816e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description This function is called by an application (or profile) 2817e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** when it wants to see if a service exists in the BTM 2818e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** discovery database. 2819e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2820e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Returns Pointer to matching record, or NULL 2821e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2822e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 2823e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_API extern tSDP_DISC_REC *BTM_FindService (UINT16 service_uuid, 2824e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach tSDP_DISC_REC *p_start_rec); 2825e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 2826e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 2827e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 2828e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2829e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function BTM_SetDiscoveryParams 2830e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2831e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description This function is called to set the BTM default discovery parameters. 2832e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** These UUID and attribute filters are used during the call to 2833e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** BTM_StartDiscovery. 2834e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2835e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Returns void 2836e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2837e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 2838e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_API extern void BTM_SetDiscoveryParams (UINT16 num_uuid, tSDP_UUID *p_uuid_list, 2839e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT16 num_attr, UINT16 *p_attr_list); 2840e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 2841e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 2842e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/***************************************************************************** 2843e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** ACL CHANNEL MANAGEMENT FUNCTIONS 2844e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*****************************************************************************/ 2845e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 2846e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2847e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function BTM_SetLinkPolicy 2848e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2849e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description Create and send HCI "Write Policy Set" command 2850e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2851e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Returns BTM_CMD_STARTED if successfully initiated, otherwise error 2852e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2853e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 2854e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_API extern tBTM_STATUS BTM_SetLinkPolicy (BD_ADDR remote_bda, 2855e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT16 *settings); 2856e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 2857e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 2858e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 2859e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2860e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function BTM_ReadLinkPolicy 2861e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2862e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description This function is called to read the link policy settings. 2863e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** The address of link policy results are returned in the callback. 2864e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** (tBTM_LNK_POLICY_RESULTS) 2865e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2866e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Returns BTM_CMD_STARTED if successfully initiated, otherwise error 2867e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2868e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 2869e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_API extern tBTM_STATUS BTM_ReadLinkPolicy (BD_ADDR remote_bda, 2870e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach tBTM_CMPL_CB *p_cb); 2871e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 2872e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 2873e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 2874e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2875e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function BTM_SetDefaultLinkPolicy 2876e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2877e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description Set the default value for HCI "Write Policy Set" command 2878e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** to use when an ACL link is created. 2879e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2880e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Returns void 2881e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2882e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 2883e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_API extern void BTM_SetDefaultLinkPolicy (UINT16 settings); 2884e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 2885e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 2886e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 2887e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2888e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function BTM_SetDefaultLinkSuperTout 2889e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2890e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description Set the default value for HCI "Write Link Supervision Timeout" 2891e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** command to use when an ACL link is created. 2892e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2893e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Returns void 2894e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2895e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 2896e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_API extern void BTM_SetDefaultLinkSuperTout (UINT16 timeout); 2897e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 2898e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 2899e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 2900e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2901e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function BTM_SetLinkSuperTout 2902e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2903e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description Create and send HCI "Write Link Supervision Timeout" command 2904e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2905e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Returns BTM_CMD_STARTED if successfully initiated, otherwise error 2906e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2907e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 2908e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_API extern tBTM_STATUS BTM_SetLinkSuperTout (BD_ADDR remote_bda, 2909e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT16 timeout); 2910e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 2911e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 2912e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2913e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function BTM_RegForLstoEvt 2914e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2915e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description register for the HCI "Link Supervision Timeout Change" event 2916e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2917e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Returns void 2918e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2919e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 2920e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_API extern void BTM_RegForLstoEvt (tBTM_LSTO_CBACK *p_cback); 2921e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 2922e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 2923e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* These next APIs are available if the power manager is not compiled in */ 2924e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#if BTM_PWR_MGR_INCLUDED == FALSE 2925e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 2926e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2927e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function BTM_SetHoldMode 2928e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2929e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description This function is called to set a connection into hold mode. 2930e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** A check is made if the connection is in sniff or park mode, 2931e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** and if yes, the hold mode is ignored. 2932e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2933e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Returns BTM_CMD_STARTED if successfully initiated, otherwise error 2934e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2935e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 2936e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_API extern tBTM_STATUS BTM_SetHoldMode (BD_ADDR remote_bda, UINT16 min_interval, 2937e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT16 max_interval); 2938e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 2939e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 2940e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 2941e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2942e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function BTM_SetSniffMode 2943e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2944e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description This function is called to set a connection into sniff mode. 2945e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** A check is made if the connection is already in sniff or park 2946e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** mode, and if yes, the sniff mode is ignored. 2947e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2948e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Returns BTM_CMD_STARTED if successfully initiated, otherwise error 2949e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2950e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 2951e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_API extern tBTM_STATUS BTM_SetSniffMode (BD_ADDR remote_bda, UINT16 min_period, 2952e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT16 max_period, UINT16 attempt, 2953e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT16 timeout); 2954e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 2955e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 2956e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 2957e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2958e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function BTM_CancelSniffMode 2959e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2960e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description This function is called to put a connection out of sniff mode. 2961e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** A check is made if the connection is already in sniff mode, 2962e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** and if not, the cancel sniff mode is ignored. 2963e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2964e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Returns BTM_CMD_STARTED if successfully initiated, otherwise error 2965e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2966e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 2967e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_API extern tBTM_STATUS BTM_CancelSniffMode (BD_ADDR remote_bda); 2968e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 2969e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 2970e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 2971e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2972e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function BTM_SetParkMode 2973e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2974e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description This function is called to set a connection into park mode. 2975e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** A check is made if the connection is already in sniff or park 2976e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** mode, and if yes, the park mode is ignored. 2977e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2978e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Returns BTM_CMD_STARTED if successfully initiated, otherwise error 2979e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2980e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 2981e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_API extern tBTM_STATUS BTM_SetParkMode (BD_ADDR remote_bda, 2982e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT16 beacon_min_period, 2983e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT16 beacon_max_period); 2984e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 2985e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 2986e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 2987e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2988e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function BTM_CancelParkMode 2989e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2990e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description This function is called to put a connection out of park mode. 2991e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** A check is made if the connection is already in park mode, 2992e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** and if not, the cancel sniff mode is ignored. 2993e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2994e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Returns BTM_CMD_STARTED if successfully initiated, otherwise error 2995e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 2996e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 2997e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_API extern tBTM_STATUS BTM_CancelParkMode (BD_ADDR remote_bda); 2998e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 2999e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 3000e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 3001e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3002e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function BTM_ReadAclMode 3003e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3004e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description This returns the current mode for a specific 3005e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** ACL connection. 3006e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3007e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Input Param remote_bda - device address of desired ACL connection 3008e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3009e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Output Param p_mode - address where the current mode is copied into. 3010e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** BTM_ACL_MODE_NORMAL 3011e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** BTM_ACL_MODE_HOLD 3012e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** BTM_ACL_MODE_SNIFF 3013e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** BTM_ACL_MODE_PARK 3014e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** (valid only if return code is BTM_SUCCESS) 3015e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3016e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Returns BTM_SUCCESS if successful, 3017e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** BTM_UNKNOWN_ADDR if bd addr is not active or bad 3018e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3019e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 3020e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_API extern tBTM_STATUS BTM_ReadAclMode (BD_ADDR remote_bda, UINT8 *p_mode); 3021e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 3022e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#endif /* if BTM_PWR_MGR_INCLUDED == FALSE */ 3023e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 3024e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 3025e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 3026e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3027e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function BTM_SetPacketTypes 3028e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3029e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description This function is set the packet types used for a specific 3030e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** ACL connection, 3031e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3032e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Returns BTM_CMD_STARTED if successfully initiated, otherwise error 3033e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3034e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 3035e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_API extern tBTM_STATUS BTM_SetPacketTypes (BD_ADDR remote_bda, UINT16 pkt_types); 3036e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 3037e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 3038e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 3039e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3040e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function BTM_ReadPacketTypes 3041e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3042e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description This function is set the packet types used for the specified 3043e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** ACL connection, 3044e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3045e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Returns packet types supported for the connection, or 0 if no BD address 3046e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3047e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 3048e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_API extern UINT16 BTM_ReadPacketTypes (BD_ADDR remote_bda); 3049e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 3050e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 3051e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 3052e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3053e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function BTM_IsAclConnectionUp 3054e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3055e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description This function is called to check if an ACL connection exists 3056e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** to a specific remote BD Address. 3057e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3058e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Returns TRUE if connection is up, else FALSE. 3059e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3060e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 3061e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_API extern BOOLEAN BTM_IsAclConnectionUp (BD_ADDR remote_bda); 3062e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 3063e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 3064e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 3065e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3066e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function BTM_GetRole 3067e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3068e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description This function is called to get the role of the local device 3069e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** for the ACL connection with the specified remote device 3070e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3071e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Returns BTM_SUCCESS if connection exists. 3072e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** BTM_UNKNOWN_ADDR if no active link with bd addr specified 3073e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3074e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 3075e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_API extern tBTM_STATUS BTM_GetRole (BD_ADDR remote_bd_addr, UINT8 *p_role); 3076e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 3077e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 3078e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 3079e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 3080e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3081e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function BTM_SwitchRole 3082e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3083e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description This function is called to switch role between master and 3084e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** slave. If role is already set it will do nothing. If the 3085e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** command was initiated, the callback function is called upon 3086e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** completion. 3087e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3088e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Returns BTM_SUCCESS if already in specified role. 3089e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** BTM_CMD_STARTED if command issued to controller. 3090e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** BTM_NO_RESOURCES if couldn't allocate memory to issue command 3091e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** BTM_UNKNOWN_ADDR if no active link with bd addr specified 3092e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** BTM_MODE_UNSUPPORTED if local device does not support role switching 3093e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3094e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 3095e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_API extern tBTM_STATUS BTM_SwitchRole (BD_ADDR remote_bd_addr, 3096e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT8 new_role, 3097e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach tBTM_CMPL_CB *p_cb); 3098e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 3099e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 3100e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3101e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function BTM_ChangeLinkKey 3102e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3103e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description This function is called to change the link key of the 3104e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** connection. 3105e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3106e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Returns BTM_CMD_STARTED if command issued to controller. 3107e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** BTM_NO_RESOURCES if couldn't allocate memory to issue command 3108e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** BTM_UNKNOWN_ADDR if no active link with bd addr specified 3109e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** BTM_BUSY if the previous command is not completed 3110e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3111e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 3112e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_API extern tBTM_STATUS BTM_ChangeLinkKey (BD_ADDR remote_bd_addr, 3113e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach tBTM_CMPL_CB *p_cb); 3114e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 3115e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 3116e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3117e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function BTM_ReadRSSI 3118e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3119e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description This function is called to read the link policy settings. 3120e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** The address of link policy results are returned in the callback. 3121e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** (tBTM_RSSI_RESULTS) 3122e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3123e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Returns BTM_CMD_STARTED if command issued to controller. 3124e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** BTM_NO_RESOURCES if couldn't allocate memory to issue command 3125e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** BTM_UNKNOWN_ADDR if no active link with bd addr specified 3126e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** BTM_BUSY if command is already in progress 3127e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3128e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 3129e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_API extern tBTM_STATUS BTM_ReadRSSI (BD_ADDR remote_bda, tBTM_CMPL_CB *p_cb); 3130e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 3131e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 3132e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 3133e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3134e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function BTM_ReadTxPower 3135e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 31366ef101187774e30ddba6b46bbedef549a42196adAndre Eisenbach** Description This function is called to read the current connection 31376ef101187774e30ddba6b46bbedef549a42196adAndre Eisenbach** TX power of the connection. The TX power level results 3138e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** are returned in the callback. 3139e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** (tBTM_RSSI_RESULTS) 3140e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3141e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Returns BTM_CMD_STARTED if command issued to controller. 3142e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** BTM_NO_RESOURCES if couldn't allocate memory to issue command 3143e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** BTM_UNKNOWN_ADDR if no active link with bd addr specified 3144e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** BTM_BUSY if command is already in progress 3145e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3146e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 3147e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_API extern tBTM_STATUS BTM_ReadTxPower (BD_ADDR remote_bda, tBTM_CMPL_CB *p_cb); 3148e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 3149e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 3150e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3151e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function BTM_ReadLinkQuality 3152e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3153e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description This function is called to read the link quality. 3154e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** The value of the link quality is returned in the callback. 3155e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** (tBTM_LINK_QUALITY_RESULTS) 3156e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3157e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Returns BTM_CMD_STARTED if command issued to controller. 3158e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** BTM_NO_RESOURCES if couldn't allocate memory to issue command 3159e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** BTM_UNKNOWN_ADDR if no active link with bd addr specified 3160e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** BTM_BUSY if command is already in progress 3161e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3162e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 3163e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_API extern tBTM_STATUS BTM_ReadLinkQuality (BD_ADDR remote_bda, tBTM_CMPL_CB *p_cb); 3164e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 3165e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 3166e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3167e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function BTM_RegBusyLevelNotif 3168e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3169e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description This function is called to register a callback to receive 3170e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** busy level change events. 3171e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3172e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Returns BTM_SUCCESS if successfully registered, otherwise error 3173e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3174e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 3175e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_API extern tBTM_STATUS BTM_RegBusyLevelNotif (tBTM_BL_CHANGE_CB *p_cb, UINT8 *p_level, 3176e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach tBTM_BL_EVENT_MASK evt_mask); 3177e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 3178e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 3179e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3180e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function BTM_AclRegisterForChanges 3181e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3182e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description This function is called to register a callback to receive 3183e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** ACL database change events, i.e. new connection or removed. 3184e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3185e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Returns BTM_SUCCESS if successfully initiated, otherwise error 3186e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3187e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 3188e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_API extern tBTM_STATUS BTM_AclRegisterForChanges (tBTM_ACL_DB_CHANGE_CB *p_cb); 3189e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 3190e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 3191e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3192e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function BTM_GetNumAclLinks 3193e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3194e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description This function is called to count the number of 3195e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** ACL links that are active. 3196e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3197e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Returns UINT16 Number of active ACL links 3198e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3199e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 3200e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_API extern UINT16 BTM_GetNumAclLinks (void); 3201e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 3202e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 3203e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 3204e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3205e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function BTM_ReadClockOffset 3206e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3207e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description This returns the clock offset for a specific 3208e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** ACL connection. 3209e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3210e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Returns clock-offset or 0 if unknown 3211e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3212e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 3213e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_API extern UINT16 BTM_ReadClockOffset (BD_ADDR remote_bda); 3214e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 3215e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 3216e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 3217e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3218e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function BTM_SetQoS 3219e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3220e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description This function is called to setup QoS 3221e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3222e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Returns BTM_CMD_STARTED if successfully initiated, otherwise error 3223e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3224e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 3225e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_API extern tBTM_STATUS BTM_SetQoS(BD_ADDR bd, FLOW_SPEC *p_flow, 3226e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach tBTM_CMPL_CB *p_cb); 3227e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 3228e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 3229e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/***************************************************************************** 3230e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** (e)SCO CHANNEL MANAGEMENT FUNCTIONS 3231e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*****************************************************************************/ 3232e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 3233e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3234e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function BTM_CreateSco 3235e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3236e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description This function is called to create an SCO connection. If the 3237e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** "is_orig" flag is TRUE, the connection will be originated, 3238e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** otherwise BTM will wait for the other side to connect. 3239e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3240e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Returns BTM_UNKNOWN_ADDR if the ACL connection is not up 3241e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** BTM_BUSY if another SCO being set up to 3242e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** the same BD address 3243e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** BTM_NO_RESOURCES if the max SCO limit has been reached 3244e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** BTM_CMD_STARTED if the connection establishment is started. 3245e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** In this case, "*p_sco_inx" is filled in 3246e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** with the sco index used for the connection. 3247e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3248e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 3249e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_API extern tBTM_STATUS BTM_CreateSco (BD_ADDR remote_bda, BOOLEAN is_orig, 3250e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT16 pkt_types, UINT16 *p_sco_inx, 3251e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach tBTM_SCO_CB *p_conn_cb, 3252e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach tBTM_SCO_CB *p_disc_cb); 3253e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 3254e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 3255e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 3256e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3257e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function BTM_RemoveSco 3258e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3259e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description This function is called to remove a specific SCO connection. 3260e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3261e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Returns BTM_CMD_STARTED if successfully initiated, otherwise error 3262e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3263e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 3264e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_API extern tBTM_STATUS BTM_RemoveSco (UINT16 sco_inx); 3265e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 3266e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 3267e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 3268e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3269e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function BTM_SetScoPacketTypes 3270e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3271e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description This function is called to set the packet types used for 3272e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** a specific SCO connection, 3273e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3274e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Parameters pkt_types - One or more of the following 3275e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** BTM_SCO_PKT_TYPES_MASK_HV1 3276e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** BTM_SCO_PKT_TYPES_MASK_HV2 3277e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** BTM_SCO_PKT_TYPES_MASK_HV3 3278e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** BTM_SCO_PKT_TYPES_MASK_EV3 3279e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** BTM_SCO_PKT_TYPES_MASK_EV4 3280e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** BTM_SCO_PKT_TYPES_MASK_EV5 3281e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3282e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** BTM_SCO_LINK_ALL_MASK - enables all supported types 3283e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3284e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Returns BTM_CMD_STARTED if successfully initiated, otherwise error 3285e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3286e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 3287e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_API extern tBTM_STATUS BTM_SetScoPacketTypes (UINT16 sco_inx, UINT16 pkt_types); 3288e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 3289e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 3290e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 3291e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3292e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function BTM_ReadScoPacketTypes 3293e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3294e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description This function is read the packet types used for a specific 3295e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** SCO connection. 3296e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3297e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Returns One or more of the following (bitmask) 3298e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** BTM_SCO_PKT_TYPES_MASK_HV1 3299e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** BTM_SCO_PKT_TYPES_MASK_HV2 3300e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** BTM_SCO_PKT_TYPES_MASK_HV3 3301e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** BTM_SCO_PKT_TYPES_MASK_EV3 3302e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** BTM_SCO_PKT_TYPES_MASK_EV4 3303e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** BTM_SCO_PKT_TYPES_MASK_EV5 3304e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3305e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Returns packet types supported for the connection 3306e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3307e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 3308e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_API extern UINT16 BTM_ReadScoPacketTypes (UINT16 sco_inx); 3309e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 3310e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 3311e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 3312e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3313e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function BTM_ReadDeviceScoPacketTypes 3314e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3315e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description This function is read the SCO packet types that 3316e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** the device supports. 3317e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3318e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Returns packet types supported by the device. 3319e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3320e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 3321e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_API extern UINT16 BTM_ReadDeviceScoPacketTypes (void); 3322e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 3323e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 3324e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 3325e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3326e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function BTM_ReadScoHandle 3327e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3328e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description This function is used to read the HCI handle used for a specific 3329e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** SCO connection, 3330e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3331e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Returns handle for the connection, or 0xFFFF if invalid SCO index. 3332e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3333e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 3334e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_API extern UINT16 BTM_ReadScoHandle (UINT16 sco_inx); 3335e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 3336e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 3337e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 3338e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3339e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function BTM_ReadScoBdAddr 3340e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3341e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description This function is read the remote BD Address for a specific 3342e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** SCO connection, 3343e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3344e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Returns pointer to BD address or NULL if not known 3345e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3346e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 3347e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_API extern UINT8 *BTM_ReadScoBdAddr (UINT16 sco_inx); 3348e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 3349e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 3350e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 3351e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3352e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function BTM_ReadScoDiscReason 3353e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3354e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description This function is returns the reason why an (e)SCO connection 3355e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** has been removed. It contains the value until read, or until 3356e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** another (e)SCO connection has disconnected. 3357e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3358e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Returns HCI reason or BTM_INVALID_SCO_DISC_REASON if not set. 3359e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3360e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 3361e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_API extern UINT16 BTM_ReadScoDiscReason (void); 3362e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 3363e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 3364e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 3365e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3366e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function BTM_SetEScoMode 3367e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3368e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description This function sets up the negotiated parameters for SCO or 3369e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** eSCO, and sets as the default mode used for calls to 3370e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** BTM_CreateSco. It can be called only when there are no 3371e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** active (e)SCO links. 3372e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3373e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Returns BTM_SUCCESS if the successful. 3374e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** BTM_BUSY if there are one or more active (e)SCO links. 3375e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3376e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 3377e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_API extern tBTM_STATUS BTM_SetEScoMode (tBTM_SCO_TYPE sco_mode, 3378e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach tBTM_ESCO_PARAMS *p_parms); 3379e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 3380e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 3381e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3382e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function BTM_SetWBSCodec 3383e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3384e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description This function sends command to the controller to setup 3385e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** WBS codec for the upcoming eSCO connection. 3386e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3387e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Returns BTM_SUCCESS. 33886ef101187774e30ddba6b46bbedef549a42196adAndre Eisenbach** 3389e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3390e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 3391e448862a47c08eb23185aaed574b39264f5005fcAndre EisenbachBTM_API extern tBTM_STATUS BTM_SetWBSCodec (tBTM_SCO_CODEC_TYPE codec_type); 3392e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 3393e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 3394e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3395e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function BTM_RegForEScoEvts 3396e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3397e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description This function registers a SCO event callback with the 3398e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** specified instance. It should be used to received 3399e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** connection indication events and change of link parameter 3400e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** events. 3401e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3402e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Returns BTM_SUCCESS if the successful. 3403e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** BTM_ILLEGAL_VALUE if there is an illegal sco_inx 3404e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3405e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 3406e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_API extern tBTM_STATUS BTM_RegForEScoEvts (UINT16 sco_inx, 3407e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach tBTM_ESCO_CBACK *p_esco_cback); 3408e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 3409e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 3410e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3411e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function BTM_ReadEScoLinkParms 3412e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3413e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description This function returns the current eSCO link parameters for 3414e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** the specified handle. This can be called anytime a connection 3415e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** is active, but is typically called after receiving the SCO 3416e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** opened callback. 3417e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3418e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3419e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Returns BTM_SUCCESS if returned data is valid connection. 3420e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** BTM_ILLEGAL_VALUE if no connection for specified sco_inx. 3421e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** BTM_MODE_UNSUPPORTED if local controller does not support 3422e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 1.2 specification. 3423e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3424e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 3425e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_API extern tBTM_STATUS BTM_ReadEScoLinkParms (UINT16 sco_inx, 3426e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach tBTM_ESCO_DATA *p_parms); 3427e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 3428e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 3429e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3430e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function BTM_ChangeEScoLinkParms 3431e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3432e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description This function requests renegotiation of the parameters on 3433e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** the current eSCO Link. If any of the changes are accepted 3434e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** by the controllers, the BTM_ESCO_CHG_EVT event is sent in 3435e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** the tBTM_ESCO_CBACK function with the current settings of 3436e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** the link. The callback is registered through the call to 3437e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** BTM_SetEScoMode. 3438e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3439e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3440e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Returns BTM_CMD_STARTED if command is successfully initiated. 3441e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** BTM_ILLEGAL_VALUE if no connection for specified sco_inx. 3442e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** BTM_NO_RESOURCES - not enough resources to initiate command. 3443e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** BTM_MODE_UNSUPPORTED if local controller does not support 3444e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 1.2 specification. 3445e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3446e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 3447e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_API extern tBTM_STATUS BTM_ChangeEScoLinkParms (UINT16 sco_inx, 3448e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach tBTM_CHG_ESCO_PARAMS *p_parms); 3449e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 3450e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 3451e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3452e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function BTM_EScoConnRsp 3453e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3454e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description This function is called upon receipt of an (e)SCO connection 3455e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** request event (BTM_ESCO_CONN_REQ_EVT) to accept or reject 3456e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** the request. Parameters used to negotiate eSCO links. 3457e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** If p_parms is NULL, then values set through BTM_SetEScoMode 3458e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** are used. 3459e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** If the link type of the incoming request is SCO, then only 3460e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** the tx_bw, max_latency, content format, and packet_types are 3461e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** valid. The hci_status parameter should be 3462e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** ([0x0] to accept, [0x0d..0x0f] to reject) 3463e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3464e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3465e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Returns void 3466e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3467e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 3468e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_API extern void BTM_EScoConnRsp (UINT16 sco_inx, UINT8 hci_status, 3469e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach tBTM_ESCO_PARAMS *p_parms); 3470e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 3471e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 3472e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3473e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function BTM_GetNumScoLinks 3474e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3475e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description This function returns the number of active SCO links. 3476e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3477e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Returns UINT8 3478e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3479e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 3480e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_API extern UINT8 BTM_GetNumScoLinks (void); 3481e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 3482e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/***************************************************************************** 3483e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** SECURITY MANAGEMENT FUNCTIONS 3484e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*****************************************************************************/ 3485e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 3486e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3487e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function BTM_SecRegister 3488e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3489e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description Application manager calls this function to register for 3490e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** security services. There can be one and only one application 3491e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** saving link keys. BTM allows only first registration. 3492e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3493e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Returns TRUE if registered OK, else FALSE 3494e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3495e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 3496e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_API extern BOOLEAN BTM_SecRegister (tBTM_APPL_INFO *p_cb_info); 3497e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 3498e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 3499e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 3500e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3501e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function BTM_SecRegisterLinkKeyNotificationCallback 3502e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3503e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description Profiles can register to be notified when a new Link Key 3504e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** is generated per connection. 3505e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3506e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Returns TRUE if registered OK, else FALSE 3507e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3508e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 3509e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_API extern BOOLEAN BTM_SecRegisterLinkKeyNotificationCallback (tBTM_LINK_KEY_CALLBACK *p_callback); 3510e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 3511e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 3512e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 3513e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3514e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function BTM_SecAddRmtNameNotifyCallback 3515e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3516e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description Profiles can register to be notified when name of the 3517e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** remote device is resolved (up to BTM_SEC_MAX_RMT_NAME_CALLBACKS). 3518e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3519e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Returns TRUE if registered OK, else FALSE 3520e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3521e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 3522e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_API extern BOOLEAN BTM_SecAddRmtNameNotifyCallback (tBTM_RMT_NAME_CALLBACK *p_callback); 3523e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 3524e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 3525e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 3526e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3527e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function BTM_SecDeleteRmtNameNotifyCallback 3528e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3529e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description A profile can deregister notification when a new Link Key 3530e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** is generated per connection. 3531e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3532e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Returns TRUE if OK, else FALSE 3533e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3534e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 3535e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_API extern BOOLEAN BTM_SecDeleteRmtNameNotifyCallback (tBTM_RMT_NAME_CALLBACK *p_callback); 3536e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 3537e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 3538e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 3539e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3540e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function BTM_SecSetConnectFilterCallback 3541e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3542e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description Host can register to be asked whenever an HCI connection 3543e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** request is received. In the registered function host 3544e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** suppose to check connectibility filters. Yes/No result 3545e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** should be returned synchronously. 3546e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3547e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Returns void 3548e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3549e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 3550e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_API extern void BTM_SecSetConnectFilterCallback (tBTM_FILTER_CB *p_callback); 3551e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 3552e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 3553e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 3554e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3555e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function BTM_GetSecurityMode 3556e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3557e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description Get security mode for the device 3558e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3559e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Returns void 3560e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3561e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 3562e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_API extern UINT8 BTM_GetSecurityMode (void); 3563e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 3564e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 3565e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 3566e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3567e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function BTM_GetSecurityFlags 3568e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3569e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description Get security flags for the device 3570e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3571e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Returns BOOLEAN TRUE or FALSE is device found 3572e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3573e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 3574e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_API extern BOOLEAN BTM_GetSecurityFlags (BD_ADDR bd_addr, UINT8 * p_sec_flags); 3575e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 3576e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 3577e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3578e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function BTM_ReadTrustedMask 3579e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3580e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description Get trusted mask for the device 3581e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3582e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Returns NULL, if the device record is not found. 3583e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** otherwise, the trusted mask 3584e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3585e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 3586e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_API extern UINT32 * BTM_ReadTrustedMask (BD_ADDR bd_addr); 3587e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 3588e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 3589e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 3590e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3591e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function BTM_SetSecurityMode 3592e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3593e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description Set security mode for the device 3594e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3595e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Returns void 3596e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3597e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 3598e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_API extern void BTM_SetSecurityMode (UINT8 sec_mode); 3599e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 3600e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 3601e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 3602e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3603e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function BTM_SetPinType 3604e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3605e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description Set PIN type for the device. 3606e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3607e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Returns void 3608e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3609e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 3610e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_API extern void BTM_SetPinType (UINT8 pin_type, PIN_CODE pin_code, UINT8 pin_code_len); 3611e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 3612e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 3613e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 3614e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3615e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function BTM_SetPairableMode 3616e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3617e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description Enable or disable pairing 3618e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3619e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Parameters allow_pairing - (TRUE or FALSE) whether or not the device 3620e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** allows pairing. 3621e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** connect_only_paired - (TRUE or FALSE) whether or not to 3622e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** only allow paired devices to connect. 3623e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3624e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Returns void 3625e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3626e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 3627e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_API extern void BTM_SetPairableMode (BOOLEAN allow_pairing, BOOLEAN connect_only_paired); 3628e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 3629e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 3630e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3631e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function BTM_SetSecurityLevel 3632e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3633e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description Register service security level with Security Manager. Each 3634e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** service must register its requirements regardless of the 3635e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** security level that is used. This API is called once for originators 3636e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** nad again for acceptors of connections. 3637e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3638e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Returns TRUE if registered OK, else FALSE 3639e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3640e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 3641e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_API extern BOOLEAN BTM_SetSecurityLevel (BOOLEAN is_originator, char *p_name, 3642e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT8 service_id, UINT16 sec_level, 3643e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT16 psm, UINT32 mx_proto_id, 3644e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT32 mx_chan_id); 3645e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 3646e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 3647e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3648e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function BTM_SetUCDSecurityLevel 3649e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3650e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description Register UCD service security level with Security Manager. Each 3651e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** service must register its requirements regardless of the 3652e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** security level that is used. This API is called once for originators 3653e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** and again for acceptors of connections. 3654e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3655e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Returns TRUE if registered OK, else FALSE 3656e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3657e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 36586ef101187774e30ddba6b46bbedef549a42196adAndre Eisenbach BTM_API extern BOOLEAN BTM_SetUCDSecurityLevel (BOOLEAN is_originator, char *p_name, UINT8 service_id, 36596ef101187774e30ddba6b46bbedef549a42196adAndre Eisenbach UINT16 sec_level, UINT16 psm, UINT32 mx_proto_id, 3660e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT32 mx_chan_id); 3661e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 3662e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 3663e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3664e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function BTM_SetOutService 3665e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3666e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description This function is called to set the service for 3667e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** outgoing connection. 3668e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3669e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Returns void 3670e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3671e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 3672e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_API extern void BTM_SetOutService(BD_ADDR bd_addr, UINT8 service_id, UINT32 mx_chan_id); 3673e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 3674e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 3675e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3676e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function BTM_SecClrService 3677e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3678e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description Removes specified service record(s) from the security database. 3679e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** All service records with the specified name are removed. 3680e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Typically used only by devices with limited RAM so that it can 3681e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** reuse an old security service record. 3682e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** records (except SDP). 3683e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3684e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Returns Number of records that were freed. 3685e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3686e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 3687e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_API extern UINT8 BTM_SecClrService (UINT8 service_id); 3688e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 3689e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 3690e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3691e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function BTM_SecClrUCDService 3692e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 36936ef101187774e30ddba6b46bbedef549a42196adAndre Eisenbach** Description 3694e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3695e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Parameters Service ID - Id of the service to remove. ('0' removes all service 3696e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** records. 3697e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3698e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Returns Number of records that were freed. 3699e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3700e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 3701e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_API extern UINT8 BTM_SecClrUCDService (UINT8 service_id); 3702e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 3703e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 3704e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3705e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function BTM_SecAddDevice 3706e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3707e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description Add/modify device. This function will be normally called 3708e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** during host startup to restore all required information 3709e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** stored in the NVRAM. 3710e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** dev_class, bd_name, link_key, and features are NULL if unknown 3711e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3712e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Returns TRUE if added OK, else FALSE 3713e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3714e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 3715e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_API extern BOOLEAN BTM_SecAddDevice (BD_ADDR bd_addr, DEV_CLASS dev_class, 3716e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BD_NAME bd_name, BD_FEATURES features, 3717e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT32 trusted_mask[], LINK_KEY link_key, 3718e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT8 key_type, tBTM_IO_CAP io_cap); 3719e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 3720e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 3721e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 3722e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3723e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function BTM_SecDeleteDevice 3724e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3725e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description Free resources associated with the device. 3726e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3727e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Returns TRUE if rmoved OK, FALSE if not found 3728e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3729e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 3730e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_API extern BOOLEAN BTM_SecDeleteDevice (BD_ADDR bd_addr); 3731e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 3732e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 3733e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 3734e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3735e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function BTM_SecUseMasterLinkKey 3736e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3737e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description This function is called to tell master of the piconet to 3738e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** switch to master link key 3739e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3740e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Returns BTM_SUCCESS if command is successully initiated 3741e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3742e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 3743e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_API extern tBTM_STATUS BTM_SecUseMasterLinkKey (BOOLEAN use_master_key); 3744e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 3745e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 3746e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 3747e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3748e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function BTM_SetMasterKeyCompCback 3749e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3750e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description This function is called to register for the master key complete 3751e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** status event. 3752e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3753e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Parameters: mkey_cback - callback registered with the security manager 3754e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3755e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Returns void 3756e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3757e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 3758e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_API extern void BTM_SetMasterKeyCompCback(tBTM_MKEY_CALLBACK *mkey_cback ); 3759e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 3760e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 3761e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 3762e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3763e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function BTM_SecGetDeviceLinkKey 3764e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3765e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description This function is called to obtain link key for the device 3766e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** it returns BTM_SUCCESS if link key is available, or 3767e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** BTM_UNKNOWN_ADDR if Security Manager does not know about 3768e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** the device or device record does not contain link key info 3769e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3770e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Returns BTM_SUCCESS if successful, otherwise error code 3771e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3772e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 3773e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_API extern tBTM_STATUS BTM_SecGetDeviceLinkKey (BD_ADDR bd_addr, 3774e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach LINK_KEY link_key); 3775e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 3776e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 3777e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 3778e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3779e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function BTM_PINCodeReply 3780e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3781e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description This function is called after Security Manager submitted 3782e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** PIN code request to the UI. 3783e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3784e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Parameters: bd_addr - Address of the device for which PIN was requested 3785e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** res - result of the operation BTM_SUCCESS if success 3786e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** pin_len - length in bytes of the PIN Code 3787e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** p_pin - pointer to array with the PIN Code 3788e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** trusted_mask - bitwise OR of trusted services (array of UINT32) 3789e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3790e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Returns void 3791e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3792e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 3793e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_API extern void BTM_PINCodeReply (BD_ADDR bd_addr, UINT8 res, UINT8 pin_len, 3794e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT8 *p_pin, UINT32 trusted_mask[]); 3795e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 3796e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 3797e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 3798e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3799e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function BTM_DeviceAuthorized 3800e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3801e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description This function is called after Security Manager submitted 3802e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** authorization request to the UI. 3803e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3804e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Parameters: bd_addr - Address of the device for which PIN was requested 3805e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** res - result of the operation BTM_SUCCESS if success 3806e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3807e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Returns void 3808e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3809e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 3810e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_API extern void BTM_DeviceAuthorized (BD_ADDR bd_addr, UINT8 res, 3811e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT32 trusted_mask[]); 3812e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 3813e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 3814e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 3815e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3816e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function BTM_SecBond 3817e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3818e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description This function is called to perform bonding with peer device. 3819e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3820e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Returns BTM_CMD_STARTED if successfully initiated, otherwise error 3821e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3822e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 3823e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_API extern tBTM_STATUS BTM_SecBond (BD_ADDR bd_addr, UINT8 pin_len, UINT8 *p_pin, UINT32 trusted_mask[]); 3824e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 3825e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 3826e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3827e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function BTM_SecBondCancel 3828e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3829e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description This function is called to cancel ongoing bonding process 3830e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** with peer device. 3831e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3832e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Returns BTM_CMD_STARTED if successfully initiated, otherwise error 3833e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3834e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 3835e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_API extern tBTM_STATUS BTM_SecBondCancel (BD_ADDR bd_addr); 3836e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 3837e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 3838e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3839e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function BTM_SetEncryption 3840e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3841e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description This function is called to ensure that connection is 3842e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** encrypted. Should be called only on an open connection. 3843e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Typically only needed for connections that first want to 3844e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** bring up unencrypted links, then later encrypt them. 3845e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3846e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Parameters: bd_addr - Address of the peer device 3847e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** p_callback - Pointer to callback function called if 3848e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** this function returns PENDING after required 3849e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** procedures are completed. Can be set to NULL 3850e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** if status is not desired. 3851e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** p_ref_data - pointer to any data the caller wishes to receive 3852e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** in the callback function upon completion. 3853e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach* can be set to NULL if not used. 3854e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3855e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Returns BTM_SUCCESS - already encrypted 3856e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** BTM_PENDING - command will be returned in the callback 3857e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** BTM_WRONG_MODE- connection not up. 3858e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** BTM_BUSY - security procedures are currently active 3859e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** BTM_MODE_UNSUPPORTED - if security manager not linked in. 3860e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3861e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 3862e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_API extern tBTM_STATUS BTM_SetEncryption (BD_ADDR bd_addr, tBTM_SEC_CBACK *p_callback, 3863e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach void *p_ref_data); 3864e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 3865e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 3866e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3867e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function BTM_ConfirmReqReply 3868e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3869e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description This function is called to confirm the numeric value for 3870e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Simple Pairing in response to BTM_SP_CFM_REQ_EVT 3871e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3872e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Parameters: res - result of the operation BTM_SUCCESS if success 3873e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** bd_addr - Address of the peer device 3874e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3875e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 3876e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_API extern void BTM_ConfirmReqReply(tBTM_STATUS res, BD_ADDR bd_addr); 3877e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 3878e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 3879e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3880e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function BTM_PasskeyReqReply 3881e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3882e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description This function is called to provide the passkey for 3883e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Simple Pairing in response to BTM_SP_KEY_REQ_EVT 3884e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3885e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Parameters: res - result of the operation BTM_SUCCESS if success 3886e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** bd_addr - Address of the peer device 3887e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** passkey - numeric value in the range of 0 - 999999(0xF423F). 3888e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3889e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 3890e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_API extern void BTM_PasskeyReqReply(tBTM_STATUS res, BD_ADDR bd_addr, UINT32 passkey); 3891e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 3892e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 3893e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3894e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function BTM_SendKeypressNotif 3895e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3896e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description This function is used during the passkey entry model 3897e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** by a device with KeyboardOnly IO capabilities 3898e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** (very likely to be a HID Device). 3899e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** It is called by a HID Device to inform the remote device when 3900e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** a key has been entered or erased. 3901e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3902e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Parameters: bd_addr - Address of the peer device 3903e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** type - notification type 3904e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3905e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 3906e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_API extern void BTM_SendKeypressNotif(BD_ADDR bd_addr, tBTM_SP_KEY_TYPE type); 3907e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 3908e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 3909e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3910e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function BTM_IoCapRsp 3911e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3912e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description This function is called in response to BTM_SP_IO_REQ_EVT 3913e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** When the event data io_req.oob_data is set to BTM_OOB_UNKNOWN 3914e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** by the tBTM_SP_CALLBACK implementation, this function is 3915e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** called to provide the actual response 3916e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3917e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Parameters: bd_addr - Address of the peer device 3918e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** io_cap - The IO capability of local device. 3919e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** oob - BTM_OOB_NONE or BTM_OOB_PRESENT. 3920e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** auth_req- MITM protection required or not. 3921e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3922e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 3923e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_API extern void BTM_IoCapRsp(BD_ADDR bd_addr, tBTM_IO_CAP io_cap, 3924e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach tBTM_OOB_DATA oob, tBTM_AUTH_REQ auth_req); 3925e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 3926e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 3927e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3928e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function BTM_ReadLocalOobData 3929e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3930e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description This function is called to read the local OOB data from 3931e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** LM 3932e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3933e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 3934e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_API extern tBTM_STATUS BTM_ReadLocalOobData(void); 3935e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 3936e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 3937e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3938e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function BTM_RemoteOobDataReply 3939e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3940e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description This function is called to provide the remote OOB data for 3941e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Simple Pairing in response to BTM_SP_RMT_OOB_EVT 3942e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3943e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Parameters: bd_addr - Address of the peer device 3944e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** c - simple pairing Hash C. 3945e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** r - simple pairing Randomizer C. 3946e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3947e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 3948e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_API extern void BTM_RemoteOobDataReply(tBTM_STATUS res, BD_ADDR bd_addr, BT_OCTET16 c, BT_OCTET16 r); 3949e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 3950e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 3951e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3952e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function BTM_BuildOobData 3953e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3954e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description This function is called to build the OOB data payload to 3955e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** be sent over OOB (non-Bluetooth) link 3956e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3957e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Parameters: p_data - the location for OOB data 3958e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** max_len - p_data size. 3959e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** c - simple pairing Hash C. 3960e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** r - simple pairing Randomizer C. 3961e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** name_len- 0, local device name would not be included. 3962e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** otherwise, the local device name is included for 3963e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** up to this specified length 3964e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3965e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Returns Number of bytes in p_data. 3966e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3967e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 3968e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_API extern UINT16 BTM_BuildOobData(UINT8 *p_data, UINT16 max_len, BT_OCTET16 c, 3969e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BT_OCTET16 r, UINT8 name_len); 3970e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 3971e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 3972e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3973e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function BTM_ReadOobData 3974e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 39756ef101187774e30ddba6b46bbedef549a42196adAndre Eisenbach** Description This function is called to parse the OOB data payload 3976e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** received over OOB (non-Bluetooth) link 3977e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3978e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Parameters: p_data - the location for OOB data 3979e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** eir_tag - The associated EIR tag to read the data. 3980e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** *p_len(output) - the length of the data with the given tag. 3981e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3982e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Returns the beginning of the data with the given tag. 3983e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** NULL, if the tag is not found. 3984e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3985e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 3986e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_API extern UINT8 * BTM_ReadOobData(UINT8 *p_data, UINT8 eir_tag, UINT8 *p_len); 3987e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 3988e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 3989e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3990e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function BTM_SecReadDevName 3991e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3992e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description Looks for the device name in the security database for the 3993e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** specified BD address. 3994e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3995e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Returns Pointer to the name or NULL 3996e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 3997e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 3998e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_API extern char *BTM_SecReadDevName (BD_ADDR bd_addr); 3999e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 4000e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 4001e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/***************************************************************************** 4002e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** POWER MANAGEMENT FUNCTIONS 4003e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*****************************************************************************/ 4004e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 4005e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 4006e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function BTM_PmRegister 4007e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 4008e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description register or deregister with power manager 4009e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 4010e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Returns BTM_SUCCESS if successful, 4011e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** BTM_NO_RESOURCES if no room to hold registration 4012e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** BTM_ILLEGAL_VALUE 4013e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 4014e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 4015e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_API extern tBTM_STATUS BTM_PmRegister (UINT8 mask, UINT8 *p_pm_id, 4016e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach tBTM_PM_STATUS_CBACK *p_cb); 4017e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 4018e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 4019e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 4020e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 4021e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function BTM_SetPowerMode 4022e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 4023e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description store the mode in control block or 4024e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** alter ACL connection behavior. 4025e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 4026e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Returns BTM_SUCCESS if successful, 4027e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** BTM_UNKNOWN_ADDR if bd addr is not active or bad 4028e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 4029e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 4030e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_API extern tBTM_STATUS BTM_SetPowerMode (UINT8 pm_id, BD_ADDR remote_bda, 4031e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach tBTM_PM_PWR_MD *p_mode); 4032e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 4033e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 4034e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 4035e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 4036e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function BTM_ReadPowerMode 4037e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 4038e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description This returns the current mode for a specific 4039e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** ACL connection. 4040e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 4041e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Input Param remote_bda - device address of desired ACL connection 4042e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 4043e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Output Param p_mode - address where the current mode is copied into. 4044e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** BTM_ACL_MODE_NORMAL 4045e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** BTM_ACL_MODE_HOLD 4046e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** BTM_ACL_MODE_SNIFF 4047e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** BTM_ACL_MODE_PARK 4048e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** (valid only if return code is BTM_SUCCESS) 4049e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 4050e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Returns BTM_SUCCESS if successful, 4051e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** BTM_UNKNOWN_ADDR if bd addr is not active or bad 4052e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 4053e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 4054e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_API extern tBTM_STATUS BTM_ReadPowerMode (BD_ADDR remote_bda, 4055e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach tBTM_PM_MODE *p_mode); 4056e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 4057e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 4058e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 4059e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function BTM_SetSsrParams 4060e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 4061e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description This sends the given SSR parameters for the given ACL 4062e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** connection if it is in ACTIVE mode. 4063e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 4064e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Input Param remote_bda - device address of desired ACL connection 4065e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** max_lat - maximum latency (in 0.625ms)(0-0xFFFE) 4066e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** min_rmt_to - minimum remote timeout 4067e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** min_loc_to - minimum local timeout 4068e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 4069e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 4070e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Returns BTM_SUCCESS if the HCI command is issued successful, 4071e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** BTM_UNKNOWN_ADDR if bd addr is not active or bad 4072e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** BTM_CMD_STORED if the command is stored 4073e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 4074e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 4075e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_API extern tBTM_STATUS BTM_SetSsrParams (BD_ADDR remote_bda, UINT16 max_lat, 4076e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT16 min_rmt_to, UINT16 min_loc_to); 4077e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 4078e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 4079e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 4080e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function BTM_IsPowerManagerOn 4081e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 4082e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description This function is called to check if power manager is included. 4083e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** in the BTE version. 4084e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 4085e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Returns TRUE if power manager is compiled in, otherwise FALSE. 4086e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 4087e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 4088e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_API extern BOOLEAN BTM_IsPowerManagerOn (void); 4089e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 4090e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 4091e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 4092e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 4093e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function BTM_GetHCIConnHandle 4094e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 4095e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description This function is called to get the handle for an ACL connection 4096e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** to a specific remote BD Address. 4097e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 4098e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Returns the handle of the connection, or 0xFFFF if none. 4099e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 4100e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 4101e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_API extern UINT16 BTM_GetHCIConnHandle (BD_ADDR remote_bda); 4102e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 4103e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 4104e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 4105e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 4106e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function BTM_ReadStoredLinkKey 4107e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 4108e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description This function is called to obtain link key for the specified 4109e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** device from the NVRAM storage attached to the Bluetooth 4110e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** controller. 4111e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 4112e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Parameters: bd_addr - Address of the device 4113e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** p_cb - Call back function to be called to return 4114e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** the results 4115e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 4116e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 4117e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_API extern tBTM_STATUS BTM_ReadStoredLinkKey (BD_ADDR bd_addr, tBTM_CMPL_CB *p_cb); 4118e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 4119e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 4120e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 4121e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 4122e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function BTM_WriteStoredLinkKey 4123e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 4124e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description This function is called to write link keys for the specified 4125e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** device addresses to the NVRAM storage attached to the Bluetooth 4126e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** controller. 4127e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 4128e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Parameters: num_keys - Number of link keys 4129e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** bd_addr - Addresses of the devices 4130e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** link_key - Link Keys to be stored 4131e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** p_cb - Call back function to be called to return 4132e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** the results 4133e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 4134e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 4135e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_API extern tBTM_STATUS BTM_WriteStoredLinkKey (UINT8 num_keys, 4136e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BD_ADDR *bd_addr, 4137e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach LINK_KEY *link_key, 4138e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach tBTM_CMPL_CB *p_cb); 4139e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 4140e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 4141e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 4142e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 4143e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function BTM_DeleteStoredLinkKey 4144e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 4145e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description This function is called to delete link key for the specified 4146e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** device addresses from the NVRAM storage attached to the Bluetooth 4147e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** controller. 4148e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 4149e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Parameters: bd_addr - Addresses of the devices 4150e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** p_cb - Call back function to be called to return 4151e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** the results 4152e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 4153e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 4154e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_API extern tBTM_STATUS BTM_DeleteStoredLinkKey(BD_ADDR bd_addr, tBTM_CMPL_CB *p_cb); 4155e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 4156e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 4157e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 4158e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function BTM_WriteEIR 4159e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 4160e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description This function is called to write EIR data to controller. 4161e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 4162e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Parameters p_buff - allocated HCI command buffer including extended 4163e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** inquriry response 4164e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 4165e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Returns BTM_SUCCESS - if successful 4166e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** BTM_MODE_UNSUPPORTED - if local device cannot support it 4167e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 4168e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 4169e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_API extern tBTM_STATUS BTM_WriteEIR( BT_HDR * p_buff ); 4170e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 4171e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 4172e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 4173e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function BTM_CheckEirData 4174e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 4175e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description This function is called to get EIR data from significant part. 4176e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 4177e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Parameters p_eir - pointer of EIR significant part 4178e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** type - finding EIR data type 4179e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** p_length - return the length of EIR data 4180e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 4181e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Returns pointer of EIR data 4182e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 4183e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 4184e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_API extern UINT8 *BTM_CheckEirData( UINT8 *p_eir, UINT8 type, UINT8 *p_length ); 4185e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 4186e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 4187e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 4188e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function BTM_HasEirService 4189e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 4190e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description This function is called to know if UUID in bit map of UUID. 4191e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 4192e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Parameters p_eir_uuid - bit map of UUID list 4193e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** uuid16 - UUID 16-bit 4194e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 4195e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Returns TRUE - if found 4196e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** FALSE - if not found 4197e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 4198e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 4199e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_API extern BOOLEAN BTM_HasEirService( UINT32 *p_eir_uuid, UINT16 uuid16 ); 4200e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 4201e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 4202e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 4203e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function BTM_HasInquiryEirService 4204e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 4205e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description This function is called to know if UUID in bit map of UUID list. 4206e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 4207e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Parameters p_results - inquiry results 4208e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** uuid16 - UUID 16-bit 4209e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 4210e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Returns BTM_EIR_FOUND - if found 4211e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** BTM_EIR_NOT_FOUND - if not found and it is complete list 4212e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** BTM_EIR_UNKNOWN - if not found and it is not complete list 4213e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 4214e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 4215e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_API extern tBTM_EIR_SEARCH_RESULT BTM_HasInquiryEirService( tBTM_INQ_RESULTS *p_results, 4216e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT16 uuid16 ); 4217e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 4218e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 4219e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 4220e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function BTM_AddEirService 4221e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 4222e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description This function is called to add a service in bit map of UUID list. 4223e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 4224e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Parameters p_eir_uuid - bit mask of UUID list for EIR 4225e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** uuid16 - UUID 16-bit 4226e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 4227e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Returns None 4228e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 4229e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 4230e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_API extern void BTM_AddEirService( UINT32 *p_eir_uuid, UINT16 uuid16 ); 4231e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 4232e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 4233e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 4234e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function BTM_RemoveEirService 4235e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 4236e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description This function is called to remove a service in bit map of UUID list. 4237e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 4238e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Parameters p_eir_uuid - bit mask of UUID list for EIR 4239e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** uuid16 - UUID 16-bit 4240e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 4241e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Returns None 4242e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 4243e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 4244e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_API extern void BTM_RemoveEirService( UINT32 *p_eir_uuid, UINT16 uuid16 ); 4245e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 4246e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 4247e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 4248e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function BTM_GetEirSupportedServices 4249e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 4250e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description This function is called to get UUID list from bit map of UUID list. 4251e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 4252e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Parameters p_eir_uuid - bit mask of UUID list for EIR 4253e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** p - reference of current pointer of EIR 4254e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** max_num_uuid16 - max number of UUID can be written in EIR 4255e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** num_uuid16 - number of UUID have been written in EIR 4256e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 4257e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Returns BTM_EIR_MORE_16BITS_UUID_TYPE, if it has more than max 4258e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** BTM_EIR_COMPLETE_16BITS_UUID_TYPE, otherwise 4259e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 4260e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 4261e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_API extern UINT8 BTM_GetEirSupportedServices( UINT32 *p_eir_uuid, UINT8 **p, 4262e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT8 max_num_uuid16, UINT8 *p_num_uuid16); 4263e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 4264e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 4265e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 4266e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function BTM_GetEirUuidList 4267e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 4268e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description This function parses EIR and returns UUID list. 4269e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 4270e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Parameters p_eir - EIR 4271e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** uuid_size - LEN_UUID_16, LEN_UUID_32, LEN_UUID_128 4272e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** p_num_uuid - return number of UUID in found list 4273e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** p_uuid_list - return UUID 16-bit list 4274e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** max_num_uuid - maximum number of UUID to be returned 4275e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 4276e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Returns 0 - if not found 4277e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** BTM_EIR_COMPLETE_16BITS_UUID_TYPE 4278e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** BTM_EIR_MORE_16BITS_UUID_TYPE 4279e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** BTM_EIR_COMPLETE_32BITS_UUID_TYPE 4280e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** BTM_EIR_MORE_32BITS_UUID_TYPE 4281e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** BTM_EIR_COMPLETE_128BITS_UUID_TYPE 4282e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** BTM_EIR_MORE_128BITS_UUID_TYPE 4283e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 4284e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 4285e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_API extern UINT8 BTM_GetEirUuidList( UINT8 *p_eir, UINT8 uuid_size, UINT8 *p_num_uuid, 4286e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT8 *p_uuid_list, UINT8 max_num_uuid); 4287e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 4288e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 4289e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 4290e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function BTM_SyncStack 4291e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 4292e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description For Dual-Stack support. Called to initiate switching to/from 4293e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** main stack (running on phone baseband) to mm stack (light 4294e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** stack running on multi-media chip) 4295e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 4296e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Parameters sync_dir: BTM_SW_BB_TO_MM: switch from BB to MM stack 4297e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** BTM_SW_MM_TO_BB: switch from MM to BB stack 4298e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** BTM_SW_RESYNC: resync MM and BB stacks 4299e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 4300e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** p_sync_cback: callback function for event notification 4301e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Returns 4302e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 4303e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 4304e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_API extern tBTM_STATUS BTM_SyncStack(tBTM_SW_DIR sync_dir, tBTM_SYNC_STACK_CBACK p_sync_cback); 4305e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 4306e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 4307e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 4308e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function BTM_SyncBtaRsp 4309e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 4310e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description For Dual-Stack support. Called to indicate that upper layers 4311e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** (e.g. BTA or application) have completed synchronizing bta/app 4312e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** specific layers for switching. 4313e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 4314e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Called in response to 'BTM_SYNC_BTA_EVT' 4315e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 4316e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Parameters status: BTM_SUCESS: bta/app successfully synchronized 4317e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** otherwise: sync was unsuccessfule. Abort switch. 4318e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 4319e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** p_btm_sync_info: information from bta/app that will be needed 4320e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** by BTE (avdt and l2cap) for switching. 4321e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 4322e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Returns void 4323e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 4324e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 4325e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_API extern void BTM_SyncBtaRsp(tBTM_STATUS status, tBTM_SYNC_INFO *p_btm_sync_info); 4326e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 4327e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 4328e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 4329e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function BTM_OpenUIPC 4330e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 4331e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description For Dual-Stack support. Called to open UIPC between 4332e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** main stack (running on phone baseband) to embedded light stack 4333e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** (running on Multimedia or Bluetooth Controller chip) 4334e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 4335e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Parameters sync_dir: BTM_SW_BB_TO_MM: switch from BB to MM stack 4336e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** BTM_SW_BB_TO_BTC:switch from BB to BTC stack 4337e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 4338e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** p_sync_callback: callback function for event notification 4339e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Returns 4340e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 4341e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 4342e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_API extern tBTM_STATUS BTM_OpenUIPC(tBTM_SW_DIR sync_dir, tBTM_SYNC_STACK_CBACK p_sync_callback); 4343e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 4344e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 4345e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 4346e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function BTM_CloseUIPC 4347e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 4348e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description For Dual-Stack support. Called to close UIPC between 4349e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** main stack (running on phone baseband) to embedded light stack 4350e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** (running on Multimedia or Bluetooth Controller chip) 4351e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 43526ef101187774e30ddba6b46bbedef549a42196adAndre Eisenbach** Parameters 4353e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** p_sync_callback: callback function for event notification 4354e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Returns 4355e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 4356e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 4357e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_API extern tBTM_STATUS BTM_CloseUIPC(tBTM_SYNC_STACK_CBACK p_sync_callback); 4358e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 4359e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 4360e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 4361e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function BTM_IpcSend 4362e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 4363e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description For Dual-Stack support. Called to send ipc messages from 4364e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** full stack to lite stack and vice-versa. This API is 4365e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** typically called by bta layers e.g. bta_av. 4366e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 4367e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 4368e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Parameters len: Length of the buffer in the ipc message 4369e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 4370e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** buffer: Pointer to the buffer to be passed in the IPC message 4371e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 4372e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Returns void 4373e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 4374e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 4375e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_API extern void BTM_IpcSend(UINT16 len, UINT8* buffer); 4376e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 4377e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 4378e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 4379e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function BTM_IpcSendBuf 4380e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 4381e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description For Dual-Stack support. Called to send ipc messages from 43826ef101187774e30ddba6b46bbedef549a42196adAndre Eisenbach** full stack to lite stack and vice-versa. This API is 4383e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** typically called by bta layers e.g. bta_av_sync. 4384e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 43856ef101187774e30ddba6b46bbedef549a42196adAndre Eisenbach** 4386e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Parameters p_buf: Pointer to the buffer to be passed in the IPC message 4387e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 4388e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Returns void 4389e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 4390e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 4391e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_API extern void BTM_IpcSendBuf(BT_HDR* p_buf); 4392e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 4393e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 4394e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 4395e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function BTM_RegIpcEvtHandler 4396e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 4397e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description registers the DM provided handler for IPC events 4398e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 4399e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 4400e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Returns void 4401e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 4402e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 4403e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_API extern void BTM_RegIpcEvtHandler(tBTM_IPC_EVT_CBACK *p_cback); 4404e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 4405e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 4406e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 4407e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function BTM_RegRTIpcEvtHandler 4408e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 4409e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description registers the RT(Audio Routing) provided handler for IPC events 4410e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 4411e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 4412e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Returns void 4413e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 4414e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 4415e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_API extern void BTM_RegRTIpcEvtHandler(tBTM_IPC_EVT_CBACK *p_cback); 4416e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 4417e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/***************************************************************************** 4418e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** N2BT 4419e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*****************************************************************************/ 4420e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 4421e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* Data callback for N2BT */ 4422e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach typedef void (tBTM_N2BT_DATA_CB) (BD_ADDR bd_addr, UINT16 handle, UINT8 *p_data, UINT16 datalen); 4423e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 4424e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 4425e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 4426e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function BTM_N2BtAcquire 4427e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 4428e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description Put controller into acquisition mode 4429e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 4430e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Returns void 4431e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 4432e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 4433e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_API extern void BTM_N2BtAcquire(BD_ADDR bd_addr, UINT16 timeout, 4434e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT8 freq, UINT8 src_addrlen, UINT8 sensor_flags, 4435e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT8 sensor_type, UINT8 sensor_clk_accuracy, 4436e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT16 add_rx_window, UINT16 init_crc, 4437e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT32 ac_low, UINT32 ac_high, UINT16 pkt_hdr, 4438e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT16 list_dur, UINT16 list_int, 4439e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT8 oor_missed_pkts, tBTM_VSC_CMPL_CB *p_cb, 4440e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach tBTM_N2BT_DATA_CB *p_data_cback); 4441e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 4442e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 4443e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 4444e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function BTM_N2BtDisconnect 4445e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 4446e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description Disconnects all N2BT devices 4447e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 4448e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Returns void 4449e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 4450e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 4451e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_API extern void BTM_N2BtDisconnect(void); 4452e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 4453e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 4454e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 4455e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 4456e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function BTM_ConfigI2SPCM 4457e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 4458e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description This function sends VSC Write_I2SPCM_Interface_Param 4459e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** as to the specified codec_type. 4460e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 4461e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 4462e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Parameter codec_type: codec_type to be used for sco connection. 4463e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** role: master or slave role 44646ef101187774e30ddba6b46bbedef549a42196adAndre Eisenbach** sample_rate: sampling rate 4465e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** clock_rate:clock rate 128K to 2048K 4466e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 4467e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 4468e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Returns BTM_SUCCESS if the successful. 4469e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** BTM_ILLEGAL_VALUE: wrong codec type 4470e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 4471e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 4472e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_API extern tBTM_STATUS BTM_ConfigI2SPCM (tBTM_SCO_CODEC_TYPE codec_type, UINT8 role, UINT8 sample_rate, UINT8 clock_rate); 4473e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 4474e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/***************************************************************************** 4475e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** SCO OVER HCI 4476e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*****************************************************************************/ 4477e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 4478e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 4479e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function BTM_ConfigScoPath 4480e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 44816ef101187774e30ddba6b46bbedef549a42196adAndre Eisenbach** Description This function enable/disable SCO over HCI and registers SCO 44826ef101187774e30ddba6b46bbedef549a42196adAndre Eisenbach** data callback if SCO over HCI is enabled. 4483e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 4484e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Parameter path: SCO or HCI 44856ef101187774e30ddba6b46bbedef549a42196adAndre Eisenbach** p_sco_data_cb: callback function or SCO data if path is set 4486e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** to transport. 4487e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** p_pcm_param: pointer to the PCM interface parameter. If a NULL 44886ef101187774e30ddba6b46bbedef549a42196adAndre Eisenbach** pointer is used, PCM parameter maintained in 4489e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** the control block will be used; otherwise update 4490e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** control block value. 4491e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** err_data_rpt: Lisbon feature to enable the erronous data report 4492e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** or not. 4493e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 4494e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Returns BTM_SUCCESS if the successful. 4495e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** BTM_NO_RESOURCES: no rsource to start the command. 4496e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** BTM_ILLEGAL_VALUE: invalid callback function pointer. 4497e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** BTM_CMD_STARTED :Command sent. Waiting for command cmpl event. 44986ef101187774e30ddba6b46bbedef549a42196adAndre Eisenbach** 4499e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 4500e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 45016ef101187774e30ddba6b46bbedef549a42196adAndre Eisenbach BTM_API extern tBTM_STATUS BTM_ConfigScoPath (tBTM_SCO_ROUTE_TYPE path, 4502e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach tBTM_SCO_DATA_CB *p_sco_data_cb, 4503e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach tBTM_SCO_PCM_PARAM *p_pcm_param, 4504e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BOOLEAN err_data_rpt); 4505e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 4506e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 4507e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 4508e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function BTM_WriteScoData 4509e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 4510e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description This function write SCO data to a specified instance. The data 45116ef101187774e30ddba6b46bbedef549a42196adAndre Eisenbach** to be written p_buf needs to carry an offset of 45126ef101187774e30ddba6b46bbedef549a42196adAndre Eisenbach** HCI_SCO_PREAMBLE_SIZE bytes, and the data length can not 4513e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** exceed BTM_SCO_DATA_SIZE_MAX bytes, whose default value is set 45146ef101187774e30ddba6b46bbedef549a42196adAndre Eisenbach** to 60 and is configurable. Data longer than the maximum bytes 45156ef101187774e30ddba6b46bbedef549a42196adAndre Eisenbach** will be truncated. 4516e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 4517e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Returns BTM_SUCCESS: data write is successful 4518e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** BTM_ILLEGAL_VALUE: SCO data contains illegal offset value. 45196ef101187774e30ddba6b46bbedef549a42196adAndre Eisenbach** BTM_SCO_BAD_LENGTH: SCO data length exceeds the max SCO packet 45206ef101187774e30ddba6b46bbedef549a42196adAndre Eisenbach** size. 4521e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** BTM_NO_RESOURCES: no resources. 4522e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** BTM_UNKNOWN_ADDR: unknown SCO connection handle, or SCO is not 4523e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** routed via HCI. 45246ef101187774e30ddba6b46bbedef549a42196adAndre Eisenbach** 4525e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 4526e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 4527e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BTM_API extern tBTM_STATUS BTM_WriteScoData (UINT16 sco_inx, BT_HDR *p_buf); 4528e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 4529e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 4530e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 4531e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function BTM_SetARCMode 4532e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 4533e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description Send Audio Routing Control command. 4534e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 4535e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Returns void 4536e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 4537e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 4538e448862a47c08eb23185aaed574b39264f5005fcAndre EisenbachBTM_API extern void BTM_SetARCMode (UINT8 iface, UINT8 arc_mode, tBTM_VSC_CMPL_CB *p_arc_cb); 4539e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 4540e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 4541e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 4542e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 4543e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function BTM_PCM2Setup_Write 4544e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 4545e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description Send PCM2_Setup write command. 4546e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 4547e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Returns void 4548e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 4549e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 4550e448862a47c08eb23185aaed574b39264f5005fcAndre EisenbachBTM_API extern void BTM_PCM2Setup_Write (BOOLEAN clk_master, tBTM_VSC_CMPL_CB *p_arc_cb); 4551e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 4552e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#ifdef __cplusplus 4553e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach} 4554e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#endif 4555e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 4556e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#endif /* BTM_API_H */ 4557