The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 1 | /****************************************************************************** |
| 2 | * |
| 3 | * Copyright (C) 2003-2012 Broadcom Corporation |
| 4 | * |
| 5 | * Licensed under the Apache License, Version 2.0 (the "License"); |
| 6 | * you may not use this file except in compliance with the License. |
| 7 | * You may obtain a copy of the License at: |
| 8 | * |
| 9 | * http://www.apache.org/licenses/LICENSE-2.0 |
| 10 | * |
| 11 | * Unless required by applicable law or agreed to in writing, software |
| 12 | * distributed under the License is distributed on an "AS IS" BASIS, |
| 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| 14 | * See the License for the specific language governing permissions and |
| 15 | * limitations under the License. |
| 16 | * |
| 17 | ******************************************************************************/ |
| 18 | |
| 19 | /****************************************************************************** |
| 20 | * |
| 21 | * This is the private interface file for the BTA device manager. |
| 22 | * |
| 23 | ******************************************************************************/ |
| 24 | #ifndef BTA_DM_INT_H |
| 25 | #define BTA_DM_INT_H |
| 26 | |
| 27 | #include "bt_target.h" |
| 28 | |
Marie Janssen | e9e58ce | 2016-06-17 14:12:17 -0700 | [diff] [blame] | 29 | #if (BLE_INCLUDED == TRUE && BTA_GATT_INCLUDED == TRUE) |
| 30 | #include "bta_gatt_api.h" |
The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 31 | #endif |
| 32 | |
| 33 | |
| 34 | |
| 35 | /***************************************************************************** |
| 36 | ** Constants and data types |
| 37 | *****************************************************************************/ |
| 38 | |
| 39 | |
Marie Janssen | e9e58ce | 2016-06-17 14:12:17 -0700 | [diff] [blame] | 40 | #define BTA_COPY_DEVICE_CLASS(coddst, codsrc) {((uint8_t *)(coddst))[0] = ((uint8_t *)(codsrc))[0]; \ |
| 41 | ((uint8_t *)(coddst))[1] = ((uint8_t *)(codsrc))[1]; \ |
| 42 | ((uint8_t *)(coddst))[2] = ((uint8_t *)(codsrc))[2];} |
The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 43 | |
| 44 | |
| 45 | #define BTA_DM_MSG_LEN 50 |
| 46 | |
| 47 | #define BTA_SERVICE_ID_TO_SERVICE_MASK(id) (1 << (id)) |
| 48 | |
| 49 | /* DM events */ |
| 50 | enum |
| 51 | { |
| 52 | /* device manager local device API events */ |
| 53 | BTA_DM_API_ENABLE_EVT = BTA_SYS_EVT_START(BTA_ID_DM), |
| 54 | BTA_DM_API_DISABLE_EVT, |
| 55 | BTA_DM_API_SET_NAME_EVT, |
| 56 | BTA_DM_API_SET_VISIBILITY_EVT, |
VenkatRaghavan VijayaRaghavan | 76356ae | 2015-04-21 11:32:29 -0700 | [diff] [blame] | 57 | |
The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 58 | BTA_DM_ACL_CHANGE_EVT, |
| 59 | BTA_DM_API_ADD_DEVICE_EVT, |
Ganesh Ganapathi Batta | ead3cde | 2013-02-05 15:22:31 -0800 | [diff] [blame] | 60 | BTA_DM_API_REMOVE_ACL_EVT, |
The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 61 | |
| 62 | /* security API events */ |
| 63 | BTA_DM_API_BOND_EVT, |
| 64 | BTA_DM_API_BOND_CANCEL_EVT, |
| 65 | BTA_DM_API_PIN_REPLY_EVT, |
The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 66 | |
| 67 | /* power manger events */ |
| 68 | BTA_DM_PM_BTM_STATUS_EVT, |
| 69 | BTA_DM_PM_TIMER_EVT, |
| 70 | |
| 71 | /* simple pairing events */ |
| 72 | BTA_DM_API_CONFIRM_EVT, |
| 73 | |
| 74 | BTA_DM_API_SET_ENCRYPTION_EVT, |
| 75 | |
The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 76 | BTA_DM_API_LOC_OOB_EVT, |
| 77 | BTA_DM_CI_IO_REQ_EVT, |
| 78 | BTA_DM_CI_RMT_OOB_EVT, |
The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 79 | |
The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 80 | |
Marie Janssen | e9e58ce | 2016-06-17 14:12:17 -0700 | [diff] [blame] | 81 | #if (BLE_INCLUDED == TRUE) |
The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 82 | BTA_DM_API_ADD_BLEKEY_EVT, |
| 83 | BTA_DM_API_ADD_BLEDEVICE_EVT, |
| 84 | BTA_DM_API_BLE_PASSKEY_REPLY_EVT, |
Satya Calloji | 444a8da | 2015-03-06 10:38:22 -0800 | [diff] [blame] | 85 | BTA_DM_API_BLE_CONFIRM_REPLY_EVT, |
The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 86 | BTA_DM_API_BLE_SEC_GRANT_EVT, |
| 87 | BTA_DM_API_BLE_SET_BG_CONN_TYPE, |
| 88 | BTA_DM_API_BLE_CONN_PARAM_EVT, |
Satya Calloji | 5725fc6 | 2015-03-31 13:24:32 -0700 | [diff] [blame] | 89 | BTA_DM_API_BLE_CONN_SCAN_PARAM_EVT, |
VenkatRaghavan VijayaRaghavan | 76356ae | 2015-04-21 11:32:29 -0700 | [diff] [blame] | 90 | BTA_DM_API_BLE_SCAN_PARAM_EVT, |
Ganesh Ganapathi Batta | ead3cde | 2013-02-05 15:22:31 -0800 | [diff] [blame] | 91 | BTA_DM_API_BLE_OBSERVE_EVT, |
Ganesh Ganapathi Batta | 7fa4fba | 2014-04-16 16:50:09 -0700 | [diff] [blame] | 92 | BTA_DM_API_UPDATE_CONN_PARAM_EVT, |
Marie Janssen | e9e58ce | 2016-06-17 14:12:17 -0700 | [diff] [blame] | 93 | #if (BLE_PRIVACY_SPT == TRUE) |
Wei Wang | a6ce775 | 2014-05-20 06:30:32 +0000 | [diff] [blame] | 94 | BTA_DM_API_LOCAL_PRIVACY_EVT, |
| 95 | #endif |
Andre Eisenbach | eeeac99 | 2013-11-08 10:23:52 -0800 | [diff] [blame] | 96 | BTA_DM_API_BLE_BROADCAST_EVT, |
Priti Aghera | 636d671 | 2014-12-18 13:55:48 -0800 | [diff] [blame] | 97 | BTA_DM_API_SET_DATA_LENGTH_EVT, |
Andre Eisenbach | b203d47 | 2013-11-20 17:23:06 -0800 | [diff] [blame] | 98 | |
Marie Janssen | e9e58ce | 2016-06-17 14:12:17 -0700 | [diff] [blame] | 99 | #if (BLE_ANDROID_CONTROLLER_SCAN_FILTER == TRUE) |
Andre Eisenbach | b203d47 | 2013-11-20 17:23:06 -0800 | [diff] [blame] | 100 | BTA_DM_API_CFG_FILTER_COND_EVT, |
Satya Calloji | 1a9247a | 2014-06-05 13:15:15 -0700 | [diff] [blame] | 101 | BTA_DM_API_SCAN_FILTER_SETUP_EVT, |
| 102 | BTA_DM_API_SCAN_FILTER_ENABLE_EVT, |
Andre Eisenbach | b203d47 | 2013-11-20 17:23:06 -0800 | [diff] [blame] | 103 | #endif |
Satya Calloji | c4e2596 | 2014-05-10 23:46:24 -0700 | [diff] [blame] | 104 | BTA_DM_API_BLE_SETUP_STORAGE_EVT, |
| 105 | BTA_DM_API_BLE_ENABLE_BATCH_SCAN_EVT, |
| 106 | BTA_DM_API_BLE_DISABLE_BATCH_SCAN_EVT, |
| 107 | BTA_DM_API_BLE_READ_SCAN_REPORTS_EVT, |
| 108 | BTA_DM_API_BLE_TRACK_ADVERTISER_EVT, |
Satya Calloji | e5ba884 | 2014-07-03 17:18:02 -0700 | [diff] [blame] | 109 | BTA_DM_API_BLE_ENERGY_INFO_EVT, |
VenkatRaghavan VijayaRaghavan | 76356ae | 2015-04-21 11:32:29 -0700 | [diff] [blame] | 110 | |
The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 111 | #endif |
| 112 | |
The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 113 | BTA_DM_API_ENABLE_TEST_MODE_EVT, |
| 114 | BTA_DM_API_DISABLE_TEST_MODE_EVT, |
| 115 | BTA_DM_API_EXECUTE_CBACK_EVT, |
VenkatRaghavan VijayaRaghavan | 76356ae | 2015-04-21 11:32:29 -0700 | [diff] [blame] | 116 | BTA_DM_API_REMOVE_ALL_ACL_EVT, |
| 117 | BTA_DM_API_REMOVE_DEVICE_EVT, |
The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 118 | BTA_DM_MAX_EVT |
| 119 | }; |
| 120 | |
| 121 | |
| 122 | /* DM search events */ |
| 123 | enum |
| 124 | { |
| 125 | /* DM search API events */ |
| 126 | BTA_DM_API_SEARCH_EVT = BTA_SYS_EVT_START(BTA_ID_DM_SEARCH), |
| 127 | BTA_DM_API_SEARCH_CANCEL_EVT, |
| 128 | BTA_DM_API_DISCOVER_EVT, |
| 129 | BTA_DM_INQUIRY_CMPL_EVT, |
| 130 | BTA_DM_REMT_NAME_EVT, |
| 131 | BTA_DM_SDP_RESULT_EVT, |
| 132 | BTA_DM_SEARCH_CMPL_EVT, |
| 133 | BTA_DM_DISCOVERY_RESULT_EVT, |
Andre Eisenbach | 6975b4d | 2013-08-05 16:55:38 -0700 | [diff] [blame] | 134 | BTA_DM_API_DI_DISCOVER_EVT, |
| 135 | BTA_DM_DISC_CLOSE_TOUT_EVT |
VenkatRaghavan VijayaRaghavan | 76356ae | 2015-04-21 11:32:29 -0700 | [diff] [blame] | 136 | |
The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 137 | }; |
| 138 | |
| 139 | /* data type for BTA_DM_API_ENABLE_EVT */ |
| 140 | typedef struct |
| 141 | { |
| 142 | BT_HDR hdr; |
| 143 | tBTA_DM_SEC_CBACK *p_sec_cback; |
| 144 | } tBTA_DM_API_ENABLE; |
| 145 | |
| 146 | /* data type for BTA_DM_API_SET_NAME_EVT */ |
| 147 | typedef struct |
| 148 | { |
| 149 | BT_HDR hdr; |
Ganesh Ganapathi Batta | ead3cde | 2013-02-05 15:22:31 -0800 | [diff] [blame] | 150 | BD_NAME name; /* max 248 bytes name, plus must be Null terminated */ |
The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 151 | } tBTA_DM_API_SET_NAME; |
| 152 | |
| 153 | /* data type for BTA_DM_API_SET_VISIBILITY_EVT */ |
| 154 | typedef struct |
| 155 | { |
| 156 | BT_HDR hdr; |
| 157 | tBTA_DM_DISC disc_mode; |
| 158 | tBTA_DM_CONN conn_mode; |
Marie Janssen | e9e58ce | 2016-06-17 14:12:17 -0700 | [diff] [blame] | 159 | uint8_t pair_mode; |
| 160 | uint8_t conn_paired_only; |
The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 161 | } tBTA_DM_API_SET_VISIBILITY; |
| 162 | |
The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 163 | enum |
| 164 | { |
| 165 | BTA_DM_RS_NONE, /* straight API call */ |
| 166 | BTA_DM_RS_OK, /* the role switch result - successful */ |
| 167 | BTA_DM_RS_FAIL /* the role switch result - failed */ |
| 168 | }; |
Marie Janssen | e9e58ce | 2016-06-17 14:12:17 -0700 | [diff] [blame] | 169 | typedef uint8_t tBTA_DM_RS_RES; |
The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 170 | |
| 171 | /* data type for BTA_DM_API_SEARCH_EVT */ |
| 172 | typedef struct |
| 173 | { |
| 174 | BT_HDR hdr; |
| 175 | tBTA_DM_INQ inq_params; |
| 176 | tBTA_SERVICE_MASK services; |
| 177 | tBTA_DM_SEARCH_CBACK * p_cback; |
| 178 | tBTA_DM_RS_RES rs_res; |
Marie Janssen | e9e58ce | 2016-06-17 14:12:17 -0700 | [diff] [blame] | 179 | #if (BLE_INCLUDED == TRUE && BTA_GATT_INCLUDED == TRUE) |
| 180 | uint8_t num_uuid; |
The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 181 | tBT_UUID *p_uuid; |
| 182 | #endif |
| 183 | } tBTA_DM_API_SEARCH; |
| 184 | |
| 185 | /* data type for BTA_DM_API_DISCOVER_EVT */ |
| 186 | typedef struct |
| 187 | { |
| 188 | BT_HDR hdr; |
| 189 | BD_ADDR bd_addr; |
| 190 | tBTA_SERVICE_MASK services; |
| 191 | tBTA_DM_SEARCH_CBACK * p_cback; |
Marie Janssen | e9e58ce | 2016-06-17 14:12:17 -0700 | [diff] [blame] | 192 | bool sdp_search; |
Ganesh Ganapathi Batta | 7fa4fba | 2014-04-16 16:50:09 -0700 | [diff] [blame] | 193 | tBTA_TRANSPORT transport; |
Marie Janssen | e9e58ce | 2016-06-17 14:12:17 -0700 | [diff] [blame] | 194 | #if (BLE_INCLUDED == TRUE && BTA_GATT_INCLUDED == TRUE) |
| 195 | uint8_t num_uuid; |
The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 196 | tBT_UUID *p_uuid; |
| 197 | #endif |
| 198 | tSDP_UUID uuid; |
| 199 | } tBTA_DM_API_DISCOVER; |
| 200 | |
| 201 | /* data type for BTA_DM_API_DI_DISC_EVT */ |
| 202 | typedef struct |
| 203 | { |
| 204 | BT_HDR hdr; |
| 205 | BD_ADDR bd_addr; |
| 206 | tBTA_DISCOVERY_DB *p_sdp_db; |
Marie Janssen | e9e58ce | 2016-06-17 14:12:17 -0700 | [diff] [blame] | 207 | uint32_t len; |
The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 208 | tBTA_DM_SEARCH_CBACK * p_cback; |
| 209 | }tBTA_DM_API_DI_DISC; |
| 210 | |
| 211 | /* data type for BTA_DM_API_BOND_EVT */ |
| 212 | typedef struct |
| 213 | { |
| 214 | BT_HDR hdr; |
| 215 | BD_ADDR bd_addr; |
Ganesh Ganapathi Batta | 7fa4fba | 2014-04-16 16:50:09 -0700 | [diff] [blame] | 216 | tBTA_TRANSPORT transport; |
The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 217 | } tBTA_DM_API_BOND; |
| 218 | |
| 219 | /* data type for BTA_DM_API_BOND_CANCEL_EVT */ |
| 220 | typedef struct |
| 221 | { |
| 222 | BT_HDR hdr; |
| 223 | BD_ADDR bd_addr; |
Ganesh Ganapathi Batta | 7fa4fba | 2014-04-16 16:50:09 -0700 | [diff] [blame] | 224 | tBTA_TRANSPORT transport; |
The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 225 | } tBTA_DM_API_BOND_CANCEL; |
| 226 | |
| 227 | /* data type for BTA_DM_API_PIN_REPLY_EVT */ |
| 228 | typedef struct |
| 229 | { |
| 230 | BT_HDR hdr; |
| 231 | BD_ADDR bd_addr; |
Marie Janssen | e9e58ce | 2016-06-17 14:12:17 -0700 | [diff] [blame] | 232 | bool accept; |
| 233 | uint8_t pin_len; |
| 234 | uint8_t p_pin[PIN_CODE_LEN]; |
The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 235 | } tBTA_DM_API_PIN_REPLY; |
| 236 | |
The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 237 | /* data type for BTA_DM_API_LOC_OOB_EVT */ |
| 238 | typedef struct |
| 239 | { |
| 240 | BT_HDR hdr; |
| 241 | } tBTA_DM_API_LOC_OOB; |
| 242 | |
| 243 | /* data type for BTA_DM_API_CONFIRM_EVT */ |
| 244 | typedef struct |
| 245 | { |
| 246 | BT_HDR hdr; |
| 247 | BD_ADDR bd_addr; |
Marie Janssen | e9e58ce | 2016-06-17 14:12:17 -0700 | [diff] [blame] | 248 | bool accept; |
The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 249 | } tBTA_DM_API_CONFIRM; |
| 250 | |
The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 251 | /* data type for BTA_DM_CI_IO_REQ_EVT */ |
| 252 | typedef struct |
| 253 | { |
| 254 | BT_HDR hdr; |
| 255 | BD_ADDR bd_addr; |
| 256 | tBTA_IO_CAP io_cap; |
| 257 | tBTA_OOB_DATA oob_data; |
| 258 | tBTA_AUTH_REQ auth_req; |
| 259 | } tBTA_DM_CI_IO_REQ; |
| 260 | |
| 261 | /* data type for BTA_DM_CI_RMT_OOB_EVT */ |
| 262 | typedef struct |
| 263 | { |
| 264 | BT_HDR hdr; |
| 265 | BD_ADDR bd_addr; |
| 266 | BT_OCTET16 c; |
| 267 | BT_OCTET16 r; |
Marie Janssen | e9e58ce | 2016-06-17 14:12:17 -0700 | [diff] [blame] | 268 | bool accept; |
The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 269 | } tBTA_DM_CI_RMT_OOB; |
| 270 | |
| 271 | /* data type for BTA_DM_REMT_NAME_EVT */ |
| 272 | typedef struct |
| 273 | { |
| 274 | BT_HDR hdr; |
| 275 | tBTA_DM_SEARCH result; |
| 276 | } tBTA_DM_REM_NAME; |
| 277 | |
| 278 | /* data type for tBTA_DM_DISC_RESULT */ |
| 279 | typedef struct |
| 280 | { |
| 281 | BT_HDR hdr; |
| 282 | tBTA_DM_SEARCH result; |
| 283 | } tBTA_DM_DISC_RESULT; |
| 284 | |
| 285 | |
| 286 | /* data type for BTA_DM_INQUIRY_CMPL_EVT */ |
| 287 | typedef struct |
| 288 | { |
| 289 | BT_HDR hdr; |
Marie Janssen | e9e58ce | 2016-06-17 14:12:17 -0700 | [diff] [blame] | 290 | uint8_t num; |
The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 291 | } tBTA_DM_INQUIRY_CMPL; |
| 292 | |
| 293 | /* data type for BTA_DM_SDP_RESULT_EVT */ |
| 294 | typedef struct |
| 295 | { |
| 296 | BT_HDR hdr; |
Marie Janssen | e9e58ce | 2016-06-17 14:12:17 -0700 | [diff] [blame] | 297 | uint16_t sdp_result; |
The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 298 | } tBTA_DM_SDP_RESULT; |
| 299 | |
The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 300 | /* data type for BTA_DM_ACL_CHANGE_EVT */ |
| 301 | typedef struct |
| 302 | { |
| 303 | BT_HDR hdr; |
| 304 | tBTM_BL_EVENT event; |
Marie Janssen | e9e58ce | 2016-06-17 14:12:17 -0700 | [diff] [blame] | 305 | uint8_t busy_level; |
| 306 | uint8_t busy_level_flags; |
| 307 | bool is_new; |
| 308 | uint8_t new_role; |
The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 309 | BD_ADDR bd_addr; |
Marie Janssen | e9e58ce | 2016-06-17 14:12:17 -0700 | [diff] [blame] | 310 | uint8_t hci_status; |
| 311 | #if (BLE_INCLUDED == TRUE) |
| 312 | uint16_t handle; |
Ganesh Ganapathi Batta | 7fa4fba | 2014-04-16 16:50:09 -0700 | [diff] [blame] | 313 | tBT_TRANSPORT transport; |
| 314 | #endif |
The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 315 | } tBTA_DM_ACL_CHANGE; |
| 316 | |
| 317 | /* data type for BTA_DM_PM_BTM_STATUS_EVT */ |
| 318 | typedef struct |
| 319 | { |
| 320 | |
| 321 | BT_HDR hdr; |
| 322 | BD_ADDR bd_addr; |
| 323 | tBTM_PM_STATUS status; |
Marie Janssen | e9e58ce | 2016-06-17 14:12:17 -0700 | [diff] [blame] | 324 | uint16_t value; |
| 325 | uint8_t hci_status; |
The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 326 | |
| 327 | } tBTA_DM_PM_BTM_STATUS; |
| 328 | |
| 329 | /* data type for BTA_DM_PM_TIMER_EVT */ |
| 330 | typedef struct |
| 331 | { |
| 332 | BT_HDR hdr; |
| 333 | BD_ADDR bd_addr; |
VenkatRaghavan VijayaRaghavan | 76356ae | 2015-04-21 11:32:29 -0700 | [diff] [blame] | 334 | tBTA_DM_PM_ACTION pm_request; |
The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 335 | } tBTA_DM_PM_TIMER; |
| 336 | |
| 337 | |
| 338 | /* data type for BTA_DM_API_ADD_DEVICE_EVT */ |
| 339 | typedef struct |
| 340 | { |
| 341 | BT_HDR hdr; |
| 342 | BD_ADDR bd_addr; |
| 343 | DEV_CLASS dc; |
| 344 | LINK_KEY link_key; |
| 345 | tBTA_SERVICE_MASK tm; |
Marie Janssen | e9e58ce | 2016-06-17 14:12:17 -0700 | [diff] [blame] | 346 | bool is_trusted; |
| 347 | uint8_t key_type; |
The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 348 | tBTA_IO_CAP io_cap; |
Marie Janssen | e9e58ce | 2016-06-17 14:12:17 -0700 | [diff] [blame] | 349 | bool link_key_known; |
| 350 | bool dc_known; |
The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 351 | BD_NAME bd_name; |
Marie Janssen | e9e58ce | 2016-06-17 14:12:17 -0700 | [diff] [blame] | 352 | uint8_t features[BTA_FEATURE_BYTES_PER_PAGE * (BTA_EXT_FEATURES_PAGE_MAX + 1)]; |
| 353 | uint8_t pin_length; |
The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 354 | } tBTA_DM_API_ADD_DEVICE; |
| 355 | |
| 356 | /* data type for BTA_DM_API_REMOVE_ACL_EVT */ |
| 357 | typedef struct |
| 358 | { |
| 359 | BT_HDR hdr; |
| 360 | BD_ADDR bd_addr; |
| 361 | } tBTA_DM_API_REMOVE_DEVICE; |
| 362 | |
| 363 | /* data type for BTA_DM_API_EXECUTE_CBACK_EVT */ |
| 364 | typedef struct |
| 365 | { |
| 366 | BT_HDR hdr; |
| 367 | void * p_param; |
| 368 | tBTA_DM_EXEC_CBACK *p_exec_cback; |
| 369 | } tBTA_DM_API_EXECUTE_CBACK; |
| 370 | |
| 371 | /* data type for tBTA_DM_API_SET_ENCRYPTION */ |
| 372 | typedef struct |
| 373 | { |
| 374 | BT_HDR hdr; |
Ganesh Ganapathi Batta | 7fa4fba | 2014-04-16 16:50:09 -0700 | [diff] [blame] | 375 | tBTA_TRANSPORT transport; |
The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 376 | tBTA_DM_ENCRYPT_CBACK *p_callback; |
| 377 | tBTA_DM_BLE_SEC_ACT sec_act; |
| 378 | BD_ADDR bd_addr; |
| 379 | } tBTA_DM_API_SET_ENCRYPTION; |
| 380 | |
Marie Janssen | e9e58ce | 2016-06-17 14:12:17 -0700 | [diff] [blame] | 381 | #if (BLE_INCLUDED == TRUE) |
The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 382 | typedef struct |
| 383 | { |
| 384 | BT_HDR hdr; |
| 385 | BD_ADDR bd_addr; |
| 386 | tBTA_LE_KEY_VALUE blekey; |
| 387 | tBTA_LE_KEY_TYPE key_type; |
| 388 | |
| 389 | }tBTA_DM_API_ADD_BLEKEY; |
| 390 | |
| 391 | typedef struct |
| 392 | { |
| 393 | BT_HDR hdr; |
| 394 | BD_ADDR bd_addr; |
| 395 | tBT_DEVICE_TYPE dev_type ; |
| 396 | tBLE_ADDR_TYPE addr_type; |
| 397 | |
| 398 | }tBTA_DM_API_ADD_BLE_DEVICE; |
| 399 | |
| 400 | typedef struct |
| 401 | { |
| 402 | BT_HDR hdr; |
| 403 | BD_ADDR bd_addr; |
Marie Janssen | e9e58ce | 2016-06-17 14:12:17 -0700 | [diff] [blame] | 404 | bool accept; |
| 405 | uint32_t passkey; |
The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 406 | }tBTA_DM_API_PASSKEY_REPLY; |
| 407 | |
| 408 | typedef struct |
| 409 | { |
| 410 | BT_HDR hdr; |
| 411 | BD_ADDR bd_addr; |
| 412 | tBTA_DM_BLE_SEC_GRANT res; |
| 413 | }tBTA_DM_API_BLE_SEC_GRANT; |
| 414 | |
| 415 | |
| 416 | typedef struct |
| 417 | { |
| 418 | BT_HDR hdr; |
| 419 | tBTA_DM_BLE_CONN_TYPE bg_conn_type; |
| 420 | tBTA_DM_BLE_SEL_CBACK *p_select_cback; |
| 421 | }tBTA_DM_API_BLE_SET_BG_CONN_TYPE; |
| 422 | |
| 423 | /* set prefered BLE connection parameters for a device */ |
| 424 | typedef struct |
| 425 | { |
| 426 | BT_HDR hdr; |
| 427 | BD_ADDR peer_bda; |
Marie Janssen | e9e58ce | 2016-06-17 14:12:17 -0700 | [diff] [blame] | 428 | uint16_t conn_int_min; |
| 429 | uint16_t conn_int_max; |
| 430 | uint16_t supervision_tout; |
| 431 | uint16_t slave_latency; |
The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 432 | |
| 433 | }tBTA_DM_API_BLE_CONN_PARAMS; |
| 434 | |
Ganesh Ganapathi Batta | ead3cde | 2013-02-05 15:22:31 -0800 | [diff] [blame] | 435 | typedef struct |
| 436 | { |
| 437 | BT_HDR hdr; |
| 438 | BD_ADDR peer_bda; |
Marie Janssen | e9e58ce | 2016-06-17 14:12:17 -0700 | [diff] [blame] | 439 | bool privacy_enable; |
Ganesh Ganapathi Batta | ead3cde | 2013-02-05 15:22:31 -0800 | [diff] [blame] | 440 | |
| 441 | }tBTA_DM_API_ENABLE_PRIVACY; |
| 442 | |
| 443 | typedef struct |
| 444 | { |
| 445 | BT_HDR hdr; |
Marie Janssen | e9e58ce | 2016-06-17 14:12:17 -0700 | [diff] [blame] | 446 | bool privacy_enable; |
Ganesh Ganapathi Batta | ead3cde | 2013-02-05 15:22:31 -0800 | [diff] [blame] | 447 | }tBTA_DM_API_LOCAL_PRIVACY; |
| 448 | |
The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 449 | /* set scan parameter for BLE connections */ |
| 450 | typedef struct |
| 451 | { |
Satya Calloji | 5725fc6 | 2015-03-31 13:24:32 -0700 | [diff] [blame] | 452 | BT_HDR hdr; |
| 453 | tBTA_GATTC_IF client_if; |
Marie Janssen | e9e58ce | 2016-06-17 14:12:17 -0700 | [diff] [blame] | 454 | uint32_t scan_int; |
| 455 | uint32_t scan_window; |
Satya Calloji | 5725fc6 | 2015-03-31 13:24:32 -0700 | [diff] [blame] | 456 | tBLE_SCAN_MODE scan_mode; |
| 457 | tBLE_SCAN_PARAM_SETUP_CBACK scan_param_setup_cback; |
The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 458 | }tBTA_DM_API_BLE_SCAN_PARAMS; |
| 459 | |
VenkatRaghavan VijayaRaghavan | 76356ae | 2015-04-21 11:32:29 -0700 | [diff] [blame] | 460 | /* set scan parameter for BLE connections */ |
| 461 | typedef struct |
| 462 | { |
| 463 | BT_HDR hdr; |
Marie Janssen | e9e58ce | 2016-06-17 14:12:17 -0700 | [diff] [blame] | 464 | uint16_t scan_int; |
| 465 | uint16_t scan_window; |
VenkatRaghavan VijayaRaghavan | 76356ae | 2015-04-21 11:32:29 -0700 | [diff] [blame] | 466 | } tBTA_DM_API_BLE_CONN_SCAN_PARAMS; |
| 467 | |
Ganesh Ganapathi Batta | ead3cde | 2013-02-05 15:22:31 -0800 | [diff] [blame] | 468 | /* Data type for start/stop observe */ |
| 469 | typedef struct |
| 470 | { |
| 471 | BT_HDR hdr; |
Marie Janssen | e9e58ce | 2016-06-17 14:12:17 -0700 | [diff] [blame] | 472 | bool start; |
| 473 | uint16_t duration; |
Ganesh Ganapathi Batta | ead3cde | 2013-02-05 15:22:31 -0800 | [diff] [blame] | 474 | tBTA_DM_SEARCH_CBACK * p_cback; |
| 475 | }tBTA_DM_API_BLE_OBSERVE; |
The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 476 | |
Priti Aghera | 636d671 | 2014-12-18 13:55:48 -0800 | [diff] [blame] | 477 | typedef struct |
| 478 | { |
| 479 | BT_HDR hdr; |
| 480 | BD_ADDR remote_bda; |
Marie Janssen | e9e58ce | 2016-06-17 14:12:17 -0700 | [diff] [blame] | 481 | uint16_t tx_data_length; |
Priti Aghera | 636d671 | 2014-12-18 13:55:48 -0800 | [diff] [blame] | 482 | }tBTA_DM_API_BLE_SET_DATA_LENGTH; |
| 483 | |
Ganesh Ganapathi Batta | ead3cde | 2013-02-05 15:22:31 -0800 | [diff] [blame] | 484 | /* set adv parameter for BLE advertising */ |
Ganesh Ganapathi Batta | ead3cde | 2013-02-05 15:22:31 -0800 | [diff] [blame] | 485 | |
| 486 | typedef struct |
| 487 | { |
| 488 | BT_HDR hdr; |
Marie Janssen | e9e58ce | 2016-06-17 14:12:17 -0700 | [diff] [blame] | 489 | bool enable; |
Wei Wang | a6ce775 | 2014-05-20 06:30:32 +0000 | [diff] [blame] | 490 | |
| 491 | }tBTA_DM_API_BLE_FEATURE; |
| 492 | |
Jakub Pawlowski | 5b12a83 | 2016-08-11 03:30:47 -0700 | [diff] [blame] | 493 | /* adv data structure */ |
Satya Calloji | c4e2596 | 2014-05-10 23:46:24 -0700 | [diff] [blame] | 494 | typedef struct |
| 495 | { |
| 496 | BT_HDR hdr; |
Marie Janssen | e9e58ce | 2016-06-17 14:12:17 -0700 | [diff] [blame] | 497 | uint8_t batch_scan_full_max; |
| 498 | uint8_t batch_scan_trunc_max; |
| 499 | uint8_t batch_scan_notify_threshold; |
Satya Calloji | c4e2596 | 2014-05-10 23:46:24 -0700 | [diff] [blame] | 500 | tBTA_BLE_SCAN_SETUP_CBACK *p_setup_cback; |
| 501 | tBTA_BLE_SCAN_THRESHOLD_CBACK *p_thres_cback; |
| 502 | tBTA_BLE_SCAN_REP_CBACK *p_read_rep_cback; |
| 503 | tBTA_DM_BLE_REF_VALUE ref_value; |
| 504 | } tBTA_DM_API_SET_STORAGE_CONFIG; |
| 505 | |
| 506 | typedef struct |
| 507 | { |
| 508 | BT_HDR hdr; |
Satya Calloji | 5725fc6 | 2015-03-31 13:24:32 -0700 | [diff] [blame] | 509 | tBTA_BLE_BATCH_SCAN_MODE scan_mode; |
Marie Janssen | e9e58ce | 2016-06-17 14:12:17 -0700 | [diff] [blame] | 510 | uint32_t scan_int; |
| 511 | uint32_t scan_window; |
Satya Calloji | c4e2596 | 2014-05-10 23:46:24 -0700 | [diff] [blame] | 512 | tBTA_BLE_DISCARD_RULE discard_rule; |
| 513 | tBLE_ADDR_TYPE addr_type; |
| 514 | tBTA_DM_BLE_REF_VALUE ref_value; |
| 515 | } tBTA_DM_API_ENABLE_SCAN; |
| 516 | |
| 517 | typedef struct |
| 518 | { |
| 519 | BT_HDR hdr; |
| 520 | tBTA_DM_BLE_REF_VALUE ref_value; |
| 521 | } tBTA_DM_API_DISABLE_SCAN; |
| 522 | |
| 523 | typedef struct |
| 524 | { |
| 525 | BT_HDR hdr; |
Satya Calloji | 5725fc6 | 2015-03-31 13:24:32 -0700 | [diff] [blame] | 526 | tBTA_BLE_BATCH_SCAN_MODE scan_type; |
Satya Calloji | c4e2596 | 2014-05-10 23:46:24 -0700 | [diff] [blame] | 527 | tBTA_DM_BLE_REF_VALUE ref_value; |
| 528 | } tBTA_DM_API_READ_SCAN_REPORTS; |
| 529 | |
| 530 | typedef struct |
| 531 | { |
| 532 | BT_HDR hdr; |
Satya Calloji | 1acb61c | 2014-06-14 23:16:18 -0700 | [diff] [blame] | 533 | tBTA_DM_BLE_REF_VALUE ref_value; |
| 534 | tBTA_BLE_TRACK_ADV_CBACK *p_track_adv_cback; |
Satya Calloji | c4e2596 | 2014-05-10 23:46:24 -0700 | [diff] [blame] | 535 | } tBTA_DM_API_TRACK_ADVERTISER; |
| 536 | |
Satya Calloji | e5ba884 | 2014-07-03 17:18:02 -0700 | [diff] [blame] | 537 | typedef struct |
| 538 | { |
| 539 | BT_HDR hdr; |
| 540 | tBTA_BLE_ENERGY_INFO_CBACK *p_energy_info_cback; |
| 541 | } tBTA_DM_API_ENERGY_INFO; |
| 542 | |
Wei Wang | a6ce775 | 2014-05-20 06:30:32 +0000 | [diff] [blame] | 543 | #endif /* BLE_INCLUDED */ |
Ganesh Ganapathi Batta | ead3cde | 2013-02-05 15:22:31 -0800 | [diff] [blame] | 544 | |
Ganesh Ganapathi Batta | ead3cde | 2013-02-05 15:22:31 -0800 | [diff] [blame] | 545 | /* data type for BTA_DM_API_REMOVE_ACL_EVT */ |
| 546 | typedef struct |
| 547 | { |
| 548 | BT_HDR hdr; |
| 549 | BD_ADDR bd_addr; |
Marie Janssen | e9e58ce | 2016-06-17 14:12:17 -0700 | [diff] [blame] | 550 | bool remove_dev; |
Ganesh Ganapathi Batta | 7fa4fba | 2014-04-16 16:50:09 -0700 | [diff] [blame] | 551 | tBTA_TRANSPORT transport; |
| 552 | |
Ganesh Ganapathi Batta | ead3cde | 2013-02-05 15:22:31 -0800 | [diff] [blame] | 553 | }tBTA_DM_API_REMOVE_ACL; |
VenkatRaghavan VijayaRaghavan | 76356ae | 2015-04-21 11:32:29 -0700 | [diff] [blame] | 554 | |
| 555 | /* data type for BTA_DM_API_REMOVE_ALL_ACL_EVT */ |
| 556 | typedef struct |
| 557 | { |
| 558 | BT_HDR hdr; |
| 559 | tBTA_DM_LINK_TYPE link_type; |
| 560 | |
| 561 | } tBTA_DM_API_REMOVE_ALL_ACL; |
Ganesh Ganapathi Batta | 7fa4fba | 2014-04-16 16:50:09 -0700 | [diff] [blame] | 562 | typedef struct |
| 563 | { |
| 564 | BT_HDR hdr; |
| 565 | BD_ADDR bd_addr; |
Marie Janssen | e9e58ce | 2016-06-17 14:12:17 -0700 | [diff] [blame] | 566 | uint16_t min_int; |
| 567 | uint16_t max_int; |
| 568 | uint16_t latency; |
| 569 | uint16_t timeout; |
Ganesh Ganapathi Batta | 7fa4fba | 2014-04-16 16:50:09 -0700 | [diff] [blame] | 570 | }tBTA_DM_API_UPDATE_CONN_PARAM; |
Ganesh Ganapathi Batta | ead3cde | 2013-02-05 15:22:31 -0800 | [diff] [blame] | 571 | |
Marie Janssen | e9e58ce | 2016-06-17 14:12:17 -0700 | [diff] [blame] | 572 | #if (BLE_ANDROID_CONTROLLER_SCAN_FILTER == TRUE) |
Andre Eisenbach | b203d47 | 2013-11-20 17:23:06 -0800 | [diff] [blame] | 573 | typedef struct |
| 574 | { |
| 575 | BT_HDR hdr; |
| 576 | tBTA_DM_BLE_SCAN_COND_OP action; |
| 577 | tBTA_DM_BLE_PF_COND_TYPE cond_type; |
Satya Calloji | 1a9247a | 2014-06-05 13:15:15 -0700 | [diff] [blame] | 578 | tBTA_DM_BLE_PF_FILT_INDEX filt_index; |
Andre Eisenbach | b203d47 | 2013-11-20 17:23:06 -0800 | [diff] [blame] | 579 | tBTA_DM_BLE_PF_COND_PARAM *p_cond_param; |
Satya Calloji | 1a9247a | 2014-06-05 13:15:15 -0700 | [diff] [blame] | 580 | tBTA_DM_BLE_PF_CFG_CBACK *p_filt_cfg_cback; |
| 581 | tBTA_DM_BLE_REF_VALUE ref_value; |
Andre Eisenbach | b203d47 | 2013-11-20 17:23:06 -0800 | [diff] [blame] | 582 | }tBTA_DM_API_CFG_FILTER_COND; |
| 583 | |
| 584 | typedef struct |
| 585 | { |
| 586 | BT_HDR hdr; |
Marie Janssen | e9e58ce | 2016-06-17 14:12:17 -0700 | [diff] [blame] | 587 | uint8_t action; |
Satya Calloji | 1a9247a | 2014-06-05 13:15:15 -0700 | [diff] [blame] | 588 | tBTA_DM_BLE_PF_STATUS_CBACK *p_filt_status_cback; |
| 589 | tBTA_DM_BLE_REF_VALUE ref_value; |
Andre Eisenbach | b203d47 | 2013-11-20 17:23:06 -0800 | [diff] [blame] | 590 | }tBTA_DM_API_ENABLE_SCAN_FILTER; |
Satya Calloji | 1a9247a | 2014-06-05 13:15:15 -0700 | [diff] [blame] | 591 | |
| 592 | typedef struct |
| 593 | { |
| 594 | BT_HDR hdr; |
Marie Janssen | e9e58ce | 2016-06-17 14:12:17 -0700 | [diff] [blame] | 595 | uint8_t action; |
Satya Calloji | 1a9247a | 2014-06-05 13:15:15 -0700 | [diff] [blame] | 596 | tBTA_DM_BLE_PF_FILT_INDEX filt_index; |
Nitin Arora | 643aea5 | 2014-09-11 18:35:55 -0700 | [diff] [blame] | 597 | tBTA_DM_BLE_PF_FILT_PARAMS filt_params; |
Satya Calloji | 1a9247a | 2014-06-05 13:15:15 -0700 | [diff] [blame] | 598 | tBLE_BD_ADDR *p_target; |
| 599 | tBTA_DM_BLE_PF_PARAM_CBACK *p_filt_param_cback; |
| 600 | tBTA_DM_BLE_REF_VALUE ref_value; |
| 601 | }tBTA_DM_API_SCAN_FILTER_PARAM_SETUP; |
Andre Eisenbach | b203d47 | 2013-11-20 17:23:06 -0800 | [diff] [blame] | 602 | #endif |
| 603 | |
The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 604 | /* union of all data types */ |
| 605 | typedef union |
| 606 | { |
| 607 | /* GKI event buffer header */ |
| 608 | BT_HDR hdr; |
| 609 | tBTA_DM_API_ENABLE enable; |
| 610 | |
| 611 | tBTA_DM_API_SET_NAME set_name; |
| 612 | |
| 613 | tBTA_DM_API_SET_VISIBILITY set_visibility; |
| 614 | |
The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 615 | tBTA_DM_API_ADD_DEVICE add_dev; |
| 616 | |
| 617 | tBTA_DM_API_REMOVE_DEVICE remove_dev; |
| 618 | |
| 619 | tBTA_DM_API_SEARCH search; |
| 620 | |
| 621 | tBTA_DM_API_DISCOVER discover; |
| 622 | |
| 623 | tBTA_DM_API_BOND bond; |
| 624 | |
| 625 | tBTA_DM_API_BOND_CANCEL bond_cancel; |
| 626 | |
| 627 | tBTA_DM_API_PIN_REPLY pin_reply; |
The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 628 | |
| 629 | tBTA_DM_API_LOC_OOB loc_oob; |
| 630 | tBTA_DM_API_CONFIRM confirm; |
The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 631 | tBTA_DM_CI_IO_REQ ci_io_req; |
| 632 | tBTA_DM_CI_RMT_OOB ci_rmt_oob; |
| 633 | |
The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 634 | tBTA_DM_REM_NAME rem_name; |
| 635 | |
| 636 | tBTA_DM_DISC_RESULT disc_result; |
| 637 | |
| 638 | tBTA_DM_INQUIRY_CMPL inq_cmpl; |
| 639 | |
| 640 | tBTA_DM_SDP_RESULT sdp_event; |
| 641 | |
The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 642 | tBTA_DM_ACL_CHANGE acl_change; |
| 643 | |
| 644 | tBTA_DM_PM_BTM_STATUS pm_status; |
| 645 | |
| 646 | tBTA_DM_PM_TIMER pm_timer; |
| 647 | |
| 648 | tBTA_DM_API_DI_DISC di_disc; |
| 649 | |
| 650 | tBTA_DM_API_EXECUTE_CBACK exec_cback; |
| 651 | |
| 652 | tBTA_DM_API_SET_ENCRYPTION set_encryption; |
| 653 | |
Marie Janssen | e9e58ce | 2016-06-17 14:12:17 -0700 | [diff] [blame] | 654 | #if (BLE_INCLUDED == TRUE) |
The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 655 | tBTA_DM_API_ADD_BLEKEY add_ble_key; |
| 656 | tBTA_DM_API_ADD_BLE_DEVICE add_ble_device; |
| 657 | tBTA_DM_API_PASSKEY_REPLY ble_passkey_reply; |
| 658 | tBTA_DM_API_BLE_SEC_GRANT ble_sec_grant; |
| 659 | tBTA_DM_API_BLE_SET_BG_CONN_TYPE ble_set_bd_conn_type; |
| 660 | tBTA_DM_API_BLE_CONN_PARAMS ble_set_conn_params; |
VenkatRaghavan VijayaRaghavan | 76356ae | 2015-04-21 11:32:29 -0700 | [diff] [blame] | 661 | tBTA_DM_API_BLE_CONN_SCAN_PARAMS ble_set_conn_scan_params; |
The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 662 | tBTA_DM_API_BLE_SCAN_PARAMS ble_set_scan_params; |
Ganesh Ganapathi Batta | ead3cde | 2013-02-05 15:22:31 -0800 | [diff] [blame] | 663 | tBTA_DM_API_BLE_OBSERVE ble_observe; |
| 664 | tBTA_DM_API_ENABLE_PRIVACY ble_remote_privacy; |
| 665 | tBTA_DM_API_LOCAL_PRIVACY ble_local_privacy; |
Marie Janssen | e9e58ce | 2016-06-17 14:12:17 -0700 | [diff] [blame] | 666 | #if (BLE_ANDROID_CONTROLLER_SCAN_FILTER == TRUE) |
Satya Calloji | 1a9247a | 2014-06-05 13:15:15 -0700 | [diff] [blame] | 667 | tBTA_DM_API_SCAN_FILTER_PARAM_SETUP ble_scan_filt_param_setup; |
Andre Eisenbach | b203d47 | 2013-11-20 17:23:06 -0800 | [diff] [blame] | 668 | tBTA_DM_API_CFG_FILTER_COND ble_cfg_filter_cond; |
Satya Calloji | 1a9247a | 2014-06-05 13:15:15 -0700 | [diff] [blame] | 669 | tBTA_DM_API_ENABLE_SCAN_FILTER ble_enable_scan_filt; |
Andre Eisenbach | b203d47 | 2013-11-20 17:23:06 -0800 | [diff] [blame] | 670 | #endif |
Ganesh Ganapathi Batta | 7fa4fba | 2014-04-16 16:50:09 -0700 | [diff] [blame] | 671 | tBTA_DM_API_UPDATE_CONN_PARAM ble_update_conn_params; |
Priti Aghera | 636d671 | 2014-12-18 13:55:48 -0800 | [diff] [blame] | 672 | tBTA_DM_API_BLE_SET_DATA_LENGTH ble_set_data_length; |
| 673 | |
Satya Calloji | c4e2596 | 2014-05-10 23:46:24 -0700 | [diff] [blame] | 674 | tBTA_DM_API_SET_STORAGE_CONFIG ble_set_storage; |
| 675 | tBTA_DM_API_ENABLE_SCAN ble_enable_scan; |
| 676 | tBTA_DM_API_READ_SCAN_REPORTS ble_read_reports; |
| 677 | tBTA_DM_API_DISABLE_SCAN ble_disable_scan; |
| 678 | tBTA_DM_API_TRACK_ADVERTISER ble_track_advert; |
Satya Calloji | e5ba884 | 2014-07-03 17:18:02 -0700 | [diff] [blame] | 679 | tBTA_DM_API_ENERGY_INFO ble_energy_info; |
The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 680 | #endif |
| 681 | |
Ganesh Ganapathi Batta | ead3cde | 2013-02-05 15:22:31 -0800 | [diff] [blame] | 682 | tBTA_DM_API_REMOVE_ACL remove_acl; |
VenkatRaghavan VijayaRaghavan | 76356ae | 2015-04-21 11:32:29 -0700 | [diff] [blame] | 683 | tBTA_DM_API_REMOVE_ALL_ACL remove_all_acl; |
The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 684 | |
| 685 | } tBTA_DM_MSG; |
| 686 | |
| 687 | |
| 688 | #define BTA_DM_NUM_PEER_DEVICE 7 |
| 689 | |
| 690 | #define BTA_DM_NOT_CONNECTED 0 |
| 691 | #define BTA_DM_CONNECTED 1 |
| 692 | #define BTA_DM_UNPAIRING 2 |
Marie Janssen | e9e58ce | 2016-06-17 14:12:17 -0700 | [diff] [blame] | 693 | typedef uint8_t tBTA_DM_CONN_STATE; |
The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 694 | |
| 695 | |
| 696 | #define BTA_DM_DI_NONE 0x00 /* nothing special */ |
| 697 | #define BTA_DM_DI_USE_SSR 0x10 /* set this bit if ssr is supported for this link */ |
| 698 | #define BTA_DM_DI_AV_ACTIVE 0x20 /* set this bit if AV is active for this link */ |
| 699 | #define BTA_DM_DI_SET_SNIFF 0x01 /* set this bit if call BTM_SetPowerMode(sniff) */ |
| 700 | #define BTA_DM_DI_INT_SNIFF 0x02 /* set this bit if call BTM_SetPowerMode(sniff) & enter sniff mode */ |
| 701 | #define BTA_DM_DI_ACP_SNIFF 0x04 /* set this bit if peer init sniff */ |
Marie Janssen | e9e58ce | 2016-06-17 14:12:17 -0700 | [diff] [blame] | 702 | typedef uint8_t tBTA_DM_DEV_INFO; |
The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 703 | |
VenkatRaghavan VijayaRaghavan | 76356ae | 2015-04-21 11:32:29 -0700 | [diff] [blame] | 704 | /* set power mode request type */ |
| 705 | #define BTA_DM_PM_RESTART 1 |
| 706 | #define BTA_DM_PM_NEW_REQ 2 |
| 707 | #define BTA_DM_PM_EXECUTE 3 |
Marie Janssen | e9e58ce | 2016-06-17 14:12:17 -0700 | [diff] [blame] | 708 | typedef uint8_t tBTA_DM_PM_REQ; |
VenkatRaghavan VijayaRaghavan | 76356ae | 2015-04-21 11:32:29 -0700 | [diff] [blame] | 709 | |
The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 710 | typedef struct |
| 711 | { |
| 712 | BD_ADDR peer_bdaddr; |
Marie Janssen | e9e58ce | 2016-06-17 14:12:17 -0700 | [diff] [blame] | 713 | uint16_t link_policy; |
The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 714 | tBTA_DM_CONN_STATE conn_state; |
| 715 | tBTA_PREF_ROLES pref_role; |
Marie Janssen | e9e58ce | 2016-06-17 14:12:17 -0700 | [diff] [blame] | 716 | bool in_use; |
The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 717 | tBTA_DM_DEV_INFO info; |
Ganesh Ganapathi Batta | 7fa4fba | 2014-04-16 16:50:09 -0700 | [diff] [blame] | 718 | tBTA_DM_ENCRYPT_CBACK *p_encrypt_cback; |
The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 719 | #if (BTM_SSR_INCLUDED == TRUE) |
| 720 | tBTM_PM_STATUS prev_low; /* previous low power mode used */ |
| 721 | #endif |
VenkatRaghavan VijayaRaghavan | 76356ae | 2015-04-21 11:32:29 -0700 | [diff] [blame] | 722 | tBTA_DM_PM_ACTION pm_mode_attempted; |
| 723 | tBTA_DM_PM_ACTION pm_mode_failed; |
Marie Janssen | e9e58ce | 2016-06-17 14:12:17 -0700 | [diff] [blame] | 724 | bool remove_dev_pending; |
| 725 | #if (BLE_INCLUDED == TRUE) |
| 726 | uint16_t conn_handle; |
Ganesh Ganapathi Batta | 7fa4fba | 2014-04-16 16:50:09 -0700 | [diff] [blame] | 727 | tBT_TRANSPORT transport; |
VenkatRaghavan VijayaRaghavan | 76356ae | 2015-04-21 11:32:29 -0700 | [diff] [blame] | 728 | #endif |
The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 729 | } tBTA_DM_PEER_DEVICE; |
| 730 | |
| 731 | |
| 732 | |
| 733 | /* structure to store list of |
| 734 | active connections */ |
| 735 | typedef struct |
| 736 | { |
| 737 | tBTA_DM_PEER_DEVICE peer_device[BTA_DM_NUM_PEER_DEVICE]; |
Marie Janssen | e9e58ce | 2016-06-17 14:12:17 -0700 | [diff] [blame] | 738 | uint8_t count; |
| 739 | #if (BLE_INCLUDED == TRUE) |
| 740 | uint8_t le_count; |
Ganesh Ganapathi Batta | 7fa4fba | 2014-04-16 16:50:09 -0700 | [diff] [blame] | 741 | #endif |
The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 742 | } tBTA_DM_ACTIVE_LINK; |
| 743 | |
| 744 | |
| 745 | typedef struct |
| 746 | { |
| 747 | BD_ADDR peer_bdaddr; |
| 748 | tBTA_SYS_ID id; |
Marie Janssen | e9e58ce | 2016-06-17 14:12:17 -0700 | [diff] [blame] | 749 | uint8_t app_id; |
The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 750 | tBTA_SYS_CONN_STATUS state; |
Marie Janssen | e9e58ce | 2016-06-17 14:12:17 -0700 | [diff] [blame] | 751 | bool new_request; |
The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 752 | |
| 753 | } tBTA_DM_SRVCS; |
| 754 | |
VenkatRaghavan VijayaRaghavan | 76356ae | 2015-04-21 11:32:29 -0700 | [diff] [blame] | 755 | #ifndef BTA_DM_NUM_CONN_SRVS |
| 756 | #define BTA_DM_NUM_CONN_SRVS 10 |
| 757 | #endif |
The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 758 | |
| 759 | typedef struct |
| 760 | { |
| 761 | |
Marie Janssen | e9e58ce | 2016-06-17 14:12:17 -0700 | [diff] [blame] | 762 | uint8_t count; |
The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 763 | tBTA_DM_SRVCS conn_srvc[BTA_DM_NUM_CONN_SRVS]; |
| 764 | |
| 765 | } tBTA_DM_CONNECTED_SRVCS; |
| 766 | |
| 767 | typedef struct |
| 768 | { |
VenkatRaghavan VijayaRaghavan | 76356ae | 2015-04-21 11:32:29 -0700 | [diff] [blame] | 769 | #define BTA_DM_PM_SNIFF_TIMER_IDX 0 |
| 770 | #define BTA_DM_PM_PARK_TIMER_IDX 1 |
| 771 | #define BTA_DM_PM_SUSPEND_TIMER_IDX 2 |
| 772 | #define BTA_DM_PM_MODE_TIMER_MAX 3 |
| 773 | /* |
| 774 | * Keep three different timers for PARK, SNIFF and SUSPEND if TBFC is |
| 775 | * supported. |
| 776 | */ |
Pavlin Radoslavov | 78bcff7 | 2015-12-04 17:36:34 -0800 | [diff] [blame] | 777 | alarm_t * timer[BTA_DM_PM_MODE_TIMER_MAX]; |
VenkatRaghavan VijayaRaghavan | 76356ae | 2015-04-21 11:32:29 -0700 | [diff] [blame] | 778 | |
Marie Janssen | e9e58ce | 2016-06-17 14:12:17 -0700 | [diff] [blame] | 779 | uint8_t srvc_id[BTA_DM_PM_MODE_TIMER_MAX]; |
| 780 | uint8_t pm_action[BTA_DM_PM_MODE_TIMER_MAX]; |
| 781 | uint8_t active; /* number of active timer */ |
VenkatRaghavan VijayaRaghavan | 76356ae | 2015-04-21 11:32:29 -0700 | [diff] [blame] | 782 | |
The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 783 | BD_ADDR peer_bdaddr; |
Marie Janssen | e9e58ce | 2016-06-17 14:12:17 -0700 | [diff] [blame] | 784 | bool in_use; |
The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 785 | } tBTA_PM_TIMER; |
| 786 | |
| 787 | extern tBTA_DM_CONNECTED_SRVCS bta_dm_conn_srvcs; |
| 788 | |
VenkatRaghavan VijayaRaghavan | 76356ae | 2015-04-21 11:32:29 -0700 | [diff] [blame] | 789 | #define BTA_DM_NUM_PM_TIMER 7 |
The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 790 | |
| 791 | /* DM control block */ |
| 792 | typedef struct |
| 793 | { |
Marie Janssen | e9e58ce | 2016-06-17 14:12:17 -0700 | [diff] [blame] | 794 | bool is_bta_dm_active; |
The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 795 | tBTA_DM_ACTIVE_LINK device_list; |
| 796 | tBTA_DM_SEC_CBACK *p_sec_cback; |
Marie Janssen | e9e58ce | 2016-06-17 14:12:17 -0700 | [diff] [blame] | 797 | #if (BLE_INCLUDED == TRUE) |
Satya Calloji | c4e2596 | 2014-05-10 23:46:24 -0700 | [diff] [blame] | 798 | tBTA_BLE_SCAN_SETUP_CBACK *p_setup_cback; |
Satya Calloji | 1a9247a | 2014-06-05 13:15:15 -0700 | [diff] [blame] | 799 | tBTA_DM_BLE_PF_CFG_CBACK *p_scan_filt_cfg_cback; |
| 800 | tBTA_DM_BLE_PF_STATUS_CBACK *p_scan_filt_status_cback; |
| 801 | tBTA_DM_BLE_PF_PARAM_CBACK *p_scan_filt_param_cback; |
Prerepa Viswanadham | 16fe082 | 2014-08-07 11:38:06 -0700 | [diff] [blame] | 802 | tBTA_BLE_ENERGY_INFO_CBACK *p_energy_info_cback; |
Prerepa Viswanadham | b944703 | 2014-08-07 18:30:59 -0700 | [diff] [blame] | 803 | #endif |
Marie Janssen | e9e58ce | 2016-06-17 14:12:17 -0700 | [diff] [blame] | 804 | uint16_t state; |
| 805 | bool disabling; |
Pavlin Radoslavov | 78bcff7 | 2015-12-04 17:36:34 -0800 | [diff] [blame] | 806 | alarm_t *disable_timer; |
Marie Janssen | e9e58ce | 2016-06-17 14:12:17 -0700 | [diff] [blame] | 807 | uint32_t wbt_sdp_handle; /* WIDCOMM Extensions SDP record handle */ |
| 808 | uint8_t wbt_scn; /* WIDCOMM Extensions SCN */ |
| 809 | uint8_t num_master_only; |
| 810 | uint8_t pm_id; |
The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 811 | tBTA_PM_TIMER pm_timer[BTA_DM_NUM_PM_TIMER]; |
Marie Janssen | e9e58ce | 2016-06-17 14:12:17 -0700 | [diff] [blame] | 812 | uint32_t role_policy_mask; /* the bits set indicates the modules that wants to remove role switch from the default link policy */ |
| 813 | uint16_t cur_policy; /* current default link policy */ |
| 814 | uint16_t rs_event; /* the event waiting for role switch */ |
| 815 | uint8_t cur_av_count; /* current AV connecions */ |
| 816 | bool disable_pair_mode; /* disable pair mode or not */ |
| 817 | bool conn_paired_only; /* allow connectable to paired device only or not */ |
The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 818 | tBTA_DM_API_SEARCH search_msg; |
Marie Janssen | e9e58ce | 2016-06-17 14:12:17 -0700 | [diff] [blame] | 819 | uint16_t page_scan_interval; |
| 820 | uint16_t page_scan_window; |
| 821 | uint16_t inquiry_scan_interval; |
| 822 | uint16_t inquiry_scan_window; |
The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 823 | |
| 824 | /* Storage for pin code request parameters */ |
| 825 | BD_ADDR pin_bd_addr; |
| 826 | DEV_CLASS pin_dev_class; |
| 827 | tBTA_DM_SEC_EVT pin_evt; |
Marie Janssen | e9e58ce | 2016-06-17 14:12:17 -0700 | [diff] [blame] | 828 | uint32_t num_val; /* the numeric value for comparison. If just_works, do not show this number to UI */ |
| 829 | bool just_works; /* true, if "Just Works" association model */ |
| 830 | #if (BTA_EIR_CANNED_UUID_LIST != TRUE) |
The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 831 | /* store UUID list for EIR */ |
Marie Janssen | e9e58ce | 2016-06-17 14:12:17 -0700 | [diff] [blame] | 832 | uint32_t eir_uuid[BTM_EIR_SERVICE_ARRAY_SIZE]; |
The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 833 | #if (BTA_EIR_SERVER_NUM_CUSTOM_UUID > 0) |
| 834 | tBT_UUID custom_uuid[BTA_EIR_SERVER_NUM_CUSTOM_UUID]; |
| 835 | #endif |
| 836 | |
| 837 | #endif |
| 838 | |
VenkatRaghavan VijayaRaghavan | 76356ae | 2015-04-21 11:32:29 -0700 | [diff] [blame] | 839 | |
| 840 | tBTA_DM_ENCRYPT_CBACK *p_encrypt_cback; |
Pavlin Radoslavov | 78bcff7 | 2015-12-04 17:36:34 -0800 | [diff] [blame] | 841 | alarm_t *switch_delay_timer; |
The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 842 | |
| 843 | } tBTA_DM_CB; |
| 844 | |
The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 845 | /* DM search control block */ |
| 846 | typedef struct |
| 847 | { |
| 848 | |
| 849 | tBTA_DM_SEARCH_CBACK * p_search_cback; |
| 850 | tBTM_INQ_INFO * p_btm_inq_info; |
| 851 | tBTA_SERVICE_MASK services; |
| 852 | tBTA_SERVICE_MASK services_to_search; |
| 853 | tBTA_SERVICE_MASK services_found; |
| 854 | tSDP_DISCOVERY_DB * p_sdp_db; |
Marie Janssen | e9e58ce | 2016-06-17 14:12:17 -0700 | [diff] [blame] | 855 | uint16_t state; |
The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 856 | BD_ADDR peer_bdaddr; |
Marie Janssen | e9e58ce | 2016-06-17 14:12:17 -0700 | [diff] [blame] | 857 | bool name_discover_done; |
Ganesh Ganapathi Batta | ead3cde | 2013-02-05 15:22:31 -0800 | [diff] [blame] | 858 | BD_NAME peer_name; |
Pavlin Radoslavov | 78bcff7 | 2015-12-04 17:36:34 -0800 | [diff] [blame] | 859 | alarm_t * search_timer; |
Marie Janssen | e9e58ce | 2016-06-17 14:12:17 -0700 | [diff] [blame] | 860 | uint8_t service_index; |
The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 861 | tBTA_DM_MSG * p_search_queue; /* search or discover commands during search cancel stored here */ |
Marie Janssen | e9e58ce | 2016-06-17 14:12:17 -0700 | [diff] [blame] | 862 | bool wait_disc; |
| 863 | bool sdp_results; |
The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 864 | tSDP_UUID uuid; |
Marie Janssen | e9e58ce | 2016-06-17 14:12:17 -0700 | [diff] [blame] | 865 | uint8_t peer_scn; |
| 866 | bool sdp_search; |
| 867 | bool cancel_pending; /* inquiry cancel is pending */ |
Ganesh Ganapathi Batta | 7fa4fba | 2014-04-16 16:50:09 -0700 | [diff] [blame] | 868 | tBTA_TRANSPORT transport; |
Marie Janssen | e9e58ce | 2016-06-17 14:12:17 -0700 | [diff] [blame] | 869 | #if (BLE_INCLUDED == TRUE) |
Ganesh Ganapathi Batta | ead3cde | 2013-02-05 15:22:31 -0800 | [diff] [blame] | 870 | tBTA_DM_SEARCH_CBACK * p_scan_cback; |
Marie Janssen | e9e58ce | 2016-06-17 14:12:17 -0700 | [diff] [blame] | 871 | #if (BTA_GATT_INCLUDED == TRUE) |
The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 872 | tBTA_GATTC_IF client_if; |
Marie Janssen | e9e58ce | 2016-06-17 14:12:17 -0700 | [diff] [blame] | 873 | uint8_t num_uuid; |
The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 874 | tBT_UUID *p_srvc_uuid; |
Marie Janssen | e9e58ce | 2016-06-17 14:12:17 -0700 | [diff] [blame] | 875 | uint8_t uuid_to_search; |
| 876 | bool gatt_disc_active; |
| 877 | uint16_t conn_id; |
| 878 | uint8_t * p_ble_rawdata; |
| 879 | uint32_t ble_raw_size; |
| 880 | uint32_t ble_raw_used; |
Pavlin Radoslavov | 78bcff7 | 2015-12-04 17:36:34 -0800 | [diff] [blame] | 881 | alarm_t * gatt_close_timer; /* GATT channel close delay timer */ |
VenkatRaghavan VijayaRaghavan | 76356ae | 2015-04-21 11:32:29 -0700 | [diff] [blame] | 882 | BD_ADDR pending_close_bda; /* pending GATT channel remote device address */ |
The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 883 | #endif |
| 884 | #endif |
| 885 | |
| 886 | |
| 887 | } tBTA_DM_SEARCH_CB; |
| 888 | |
| 889 | /* DI control block */ |
| 890 | typedef struct |
| 891 | { |
| 892 | tSDP_DISCOVERY_DB * p_di_db; /* pointer to the DI discovery database */ |
Marie Janssen | e9e58ce | 2016-06-17 14:12:17 -0700 | [diff] [blame] | 893 | uint8_t di_num; /* total local DI record number */ |
| 894 | uint32_t di_handle[BTA_DI_NUM_MAX]; /* local DI record handle, the first one is primary record */ |
The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 895 | }tBTA_DM_DI_CB; |
| 896 | |
| 897 | /* DM search state */ |
| 898 | enum |
| 899 | { |
| 900 | |
| 901 | BTA_DM_SEARCH_IDLE, |
| 902 | BTA_DM_SEARCH_ACTIVE, |
| 903 | BTA_DM_SEARCH_CANCELLING, |
| 904 | BTA_DM_DISCOVER_ACTIVE |
| 905 | |
| 906 | }; |
| 907 | |
| 908 | |
| 909 | |
| 910 | typedef struct |
| 911 | { |
| 912 | DEV_CLASS dev_class; /* local device class */ |
Marie Janssen | e9e58ce | 2016-06-17 14:12:17 -0700 | [diff] [blame] | 913 | uint16_t policy_settings; /* link policy setting hold, sniff, park, MS switch */ |
| 914 | uint16_t page_timeout; /* timeout for page in slots */ |
| 915 | uint16_t link_timeout; /* link supervision timeout in slots */ |
| 916 | bool avoid_scatter; /* true to avoid scatternet when av is streaming (be the master) */ |
The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 917 | |
| 918 | } tBTA_DM_CFG; |
| 919 | |
Marie Janssen | e9e58ce | 2016-06-17 14:12:17 -0700 | [diff] [blame] | 920 | extern const uint32_t bta_service_id_to_btm_srv_id_lkup_tbl[]; |
The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 921 | |
The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 922 | |
The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 923 | typedef struct |
| 924 | { |
Marie Janssen | e9e58ce | 2016-06-17 14:12:17 -0700 | [diff] [blame] | 925 | uint8_t id; |
| 926 | uint8_t app_id; |
| 927 | uint8_t cfg; |
The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 928 | |
| 929 | } tBTA_DM_RM ; |
| 930 | |
| 931 | extern tBTA_DM_CFG *p_bta_dm_cfg; |
| 932 | extern tBTA_DM_RM *p_bta_dm_rm_cfg; |
| 933 | |
| 934 | typedef struct |
| 935 | { |
| 936 | |
Marie Janssen | e9e58ce | 2016-06-17 14:12:17 -0700 | [diff] [blame] | 937 | uint8_t id; |
| 938 | uint8_t app_id; |
| 939 | uint8_t spec_idx; /* index of spec table to use */ |
The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 940 | |
| 941 | } tBTA_DM_PM_CFG; |
| 942 | |
| 943 | |
| 944 | typedef struct |
| 945 | { |
| 946 | |
VenkatRaghavan VijayaRaghavan | 76356ae | 2015-04-21 11:32:29 -0700 | [diff] [blame] | 947 | tBTA_DM_PM_ACTION power_mode; |
Marie Janssen | e9e58ce | 2016-06-17 14:12:17 -0700 | [diff] [blame] | 948 | uint16_t timeout; |
The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 949 | |
| 950 | } tBTA_DM_PM_ACTN; |
| 951 | |
| 952 | typedef struct |
| 953 | { |
| 954 | |
Marie Janssen | e9e58ce | 2016-06-17 14:12:17 -0700 | [diff] [blame] | 955 | uint8_t allow_mask; /* mask of sniff/hold/park modes to allow */ |
The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 956 | #if (BTM_SSR_INCLUDED == TRUE) |
Marie Janssen | e9e58ce | 2016-06-17 14:12:17 -0700 | [diff] [blame] | 957 | uint8_t ssr; /* set SSR on conn open/unpark */ |
The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 958 | #endif |
| 959 | tBTA_DM_PM_ACTN actn_tbl [BTA_DM_PM_NUM_EVTS][2]; |
| 960 | |
| 961 | } tBTA_DM_PM_SPEC; |
| 962 | |
| 963 | typedef struct |
| 964 | { |
Marie Janssen | e9e58ce | 2016-06-17 14:12:17 -0700 | [diff] [blame] | 965 | uint16_t max_lat; |
| 966 | uint16_t min_rmt_to; |
| 967 | uint16_t min_loc_to; |
The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 968 | } tBTA_DM_SSR_SPEC; |
| 969 | |
| 970 | typedef struct |
| 971 | { |
Marie Janssen | e9e58ce | 2016-06-17 14:12:17 -0700 | [diff] [blame] | 972 | uint16_t manufacturer; |
| 973 | uint16_t lmp_sub_version; |
| 974 | uint8_t lmp_version; |
The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 975 | }tBTA_DM_LMP_VER_INFO; |
| 976 | |
Marie Janssen | e9e58ce | 2016-06-17 14:12:17 -0700 | [diff] [blame] | 977 | extern const uint16_t bta_service_id_to_uuid_lkup_tbl []; |
Jakub Pawlowski | b7938c1 | 2016-05-26 17:57:22 -0700 | [diff] [blame] | 978 | |
The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 979 | extern tBTA_DM_PM_CFG *p_bta_dm_pm_cfg; |
| 980 | extern tBTA_DM_PM_SPEC *p_bta_dm_pm_spec; |
| 981 | extern tBTM_PM_PWR_MD *p_bta_dm_pm_md; |
| 982 | #if (BTM_SSR_INCLUDED == TRUE) |
| 983 | extern tBTA_DM_SSR_SPEC *p_bta_dm_ssr_spec; |
| 984 | #endif |
| 985 | |
The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 986 | /* update dynamic BRCM Aware EIR data */ |
| 987 | extern const tBTA_DM_EIR_CONF bta_dm_eir_cfg; |
| 988 | extern tBTA_DM_EIR_CONF *p_bta_dm_eir_cfg; |
The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 989 | |
| 990 | /* DM control block */ |
The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 991 | extern tBTA_DM_CB bta_dm_cb; |
The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 992 | |
| 993 | /* DM search control block */ |
The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 994 | extern tBTA_DM_SEARCH_CB bta_dm_search_cb; |
The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 995 | |
| 996 | /* DI control block */ |
The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 997 | extern tBTA_DM_DI_CB bta_dm_di_cb; |
The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 998 | |
Marie Janssen | e9e58ce | 2016-06-17 14:12:17 -0700 | [diff] [blame] | 999 | extern bool bta_dm_sm_execute(BT_HDR *p_msg); |
The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 1000 | extern void bta_dm_sm_disable( void ); |
Marie Janssen | e9e58ce | 2016-06-17 14:12:17 -0700 | [diff] [blame] | 1001 | extern bool bta_dm_search_sm_execute(BT_HDR *p_msg); |
The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 1002 | extern void bta_dm_search_sm_disable( void ); |
| 1003 | |
| 1004 | |
| 1005 | extern void bta_dm_enable (tBTA_DM_MSG *p_data); |
| 1006 | extern void bta_dm_disable (tBTA_DM_MSG *p_data); |
Pavlin Radoslavov | 78bcff7 | 2015-12-04 17:36:34 -0800 | [diff] [blame] | 1007 | extern void bta_dm_init_cb(void); |
The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 1008 | extern void bta_dm_set_dev_name (tBTA_DM_MSG *p_data); |
| 1009 | extern void bta_dm_set_visibility (tBTA_DM_MSG *p_data); |
VenkatRaghavan VijayaRaghavan | 76356ae | 2015-04-21 11:32:29 -0700 | [diff] [blame] | 1010 | |
| 1011 | extern void bta_dm_set_scan_config(tBTA_DM_MSG *p_data); |
| 1012 | extern void bta_dm_vendor_spec_command(tBTA_DM_MSG *p_data); |
The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 1013 | extern void bta_dm_bond (tBTA_DM_MSG *p_data); |
| 1014 | extern void bta_dm_bond_cancel (tBTA_DM_MSG *p_data); |
| 1015 | extern void bta_dm_pin_reply (tBTA_DM_MSG *p_data); |
The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 1016 | extern void bta_dm_acl_change(tBTA_DM_MSG *p_data); |
| 1017 | extern void bta_dm_add_device (tBTA_DM_MSG *p_data); |
| 1018 | extern void bta_dm_remove_device (tBTA_DM_MSG *p_data); |
Ganesh Ganapathi Batta | ead3cde | 2013-02-05 15:22:31 -0800 | [diff] [blame] | 1019 | extern void bta_dm_close_acl(tBTA_DM_MSG *p_data); |
The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 1020 | |
| 1021 | |
| 1022 | extern void bta_dm_pm_btm_status(tBTA_DM_MSG *p_data); |
| 1023 | extern void bta_dm_pm_timer(tBTA_DM_MSG *p_data); |
| 1024 | extern void bta_dm_add_ampkey (tBTA_DM_MSG *p_data); |
| 1025 | |
Marie Janssen | e9e58ce | 2016-06-17 14:12:17 -0700 | [diff] [blame] | 1026 | #if (BLE_INCLUDED == TRUE) |
The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 1027 | extern void bta_dm_add_blekey (tBTA_DM_MSG *p_data); |
| 1028 | extern void bta_dm_add_ble_device (tBTA_DM_MSG *p_data); |
| 1029 | extern void bta_dm_ble_passkey_reply (tBTA_DM_MSG *p_data); |
Satya Calloji | 444a8da | 2015-03-06 10:38:22 -0800 | [diff] [blame] | 1030 | extern void bta_dm_ble_confirm_reply (tBTA_DM_MSG *p_data); |
The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 1031 | extern void bta_dm_security_grant (tBTA_DM_MSG *p_data); |
| 1032 | extern void bta_dm_ble_set_bg_conn_type (tBTA_DM_MSG *p_data); |
| 1033 | extern void bta_dm_ble_set_conn_params (tBTA_DM_MSG *p_data); |
VenkatRaghavan VijayaRaghavan | 76356ae | 2015-04-21 11:32:29 -0700 | [diff] [blame] | 1034 | extern void bta_dm_ble_set_scan_params(tBTA_DM_MSG *p_data); |
Satya Calloji | 5725fc6 | 2015-03-31 13:24:32 -0700 | [diff] [blame] | 1035 | extern void bta_dm_ble_set_conn_scan_params (tBTA_DM_MSG *p_data); |
Andre Eisenbach | 6975b4d | 2013-08-05 16:55:38 -0700 | [diff] [blame] | 1036 | extern void bta_dm_close_gatt_conn(tBTA_DM_MSG *p_data); |
Ganesh Ganapathi Batta | ead3cde | 2013-02-05 15:22:31 -0800 | [diff] [blame] | 1037 | extern void bta_dm_ble_observe (tBTA_DM_MSG *p_data); |
Ganesh Ganapathi Batta | 7fa4fba | 2014-04-16 16:50:09 -0700 | [diff] [blame] | 1038 | extern void bta_dm_ble_update_conn_params (tBTA_DM_MSG *p_data); |
Wei Wang | ed534e3 | 2014-05-20 06:30:13 +0000 | [diff] [blame] | 1039 | extern void bta_dm_ble_config_local_privacy (tBTA_DM_MSG *p_data); |
Jakub Pawlowski | 5b12a83 | 2016-08-11 03:30:47 -0700 | [diff] [blame] | 1040 | extern void bta_dm_ble_set_adv_params(uint16_t adv_int_min, uint16_t adv_int_max, |
| 1041 | tBLE_BD_ADDR *p_dir_bda); |
Jakub Pawlowski | 5b12a83 | 2016-08-11 03:30:47 -0700 | [diff] [blame] | 1042 | |
Andre Eisenbach | eeeac99 | 2013-11-08 10:23:52 -0800 | [diff] [blame] | 1043 | extern void bta_dm_ble_broadcast (tBTA_DM_MSG *p_data); |
Priti Aghera | 636d671 | 2014-12-18 13:55:48 -0800 | [diff] [blame] | 1044 | extern void bta_dm_ble_set_data_length(tBTA_DM_MSG *p_data); |
Andre Eisenbach | 5c44e45 | 2013-08-06 18:19:37 -0700 | [diff] [blame] | 1045 | |
Marie Janssen | e9e58ce | 2016-06-17 14:12:17 -0700 | [diff] [blame] | 1046 | #if (BLE_ANDROID_CONTROLLER_SCAN_FILTER == TRUE) |
Andre Eisenbach | b203d47 | 2013-11-20 17:23:06 -0800 | [diff] [blame] | 1047 | extern void bta_dm_cfg_filter_cond (tBTA_DM_MSG *p_data); |
Satya Calloji | 1a9247a | 2014-06-05 13:15:15 -0700 | [diff] [blame] | 1048 | extern void bta_dm_scan_filter_param_setup (tBTA_DM_MSG *p_data); |
| 1049 | extern void bta_dm_enable_scan_filter(tBTA_DM_MSG *p_data); |
Andre Eisenbach | b203d47 | 2013-11-20 17:23:06 -0800 | [diff] [blame] | 1050 | #endif |
| 1051 | |
Satya Calloji | c4e2596 | 2014-05-10 23:46:24 -0700 | [diff] [blame] | 1052 | extern void bta_dm_ble_setup_storage(tBTA_DM_MSG *p_data); |
| 1053 | extern void bta_dm_ble_enable_batch_scan(tBTA_DM_MSG * p_data); |
| 1054 | extern void bta_dm_ble_disable_batch_scan(tBTA_DM_MSG * p_data); |
| 1055 | extern void bta_dm_ble_read_scan_reports(tBTA_DM_MSG * p_data); |
Satya Calloji | 1acb61c | 2014-06-14 23:16:18 -0700 | [diff] [blame] | 1056 | extern void bta_dm_ble_track_advertiser(tBTA_DM_MSG * p_data); |
Satya Calloji | e5ba884 | 2014-07-03 17:18:02 -0700 | [diff] [blame] | 1057 | extern void bta_dm_ble_get_energy_info(tBTA_DM_MSG *p_data); |
Satya Calloji | 1acb61c | 2014-06-14 23:16:18 -0700 | [diff] [blame] | 1058 | |
The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 1059 | #endif |
| 1060 | extern void bta_dm_set_encryption(tBTA_DM_MSG *p_data); |
| 1061 | extern void bta_dm_confirm(tBTA_DM_MSG *p_data); |
The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 1062 | extern void bta_dm_loc_oob(tBTA_DM_MSG *p_data); |
| 1063 | extern void bta_dm_ci_io_req_act(tBTA_DM_MSG *p_data); |
| 1064 | extern void bta_dm_ci_rmt_oob_act(tBTA_DM_MSG *p_data); |
The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 1065 | |
| 1066 | extern void bta_dm_init_pm(void); |
| 1067 | extern void bta_dm_disable_pm(void); |
| 1068 | |
Marie Janssen | e9e58ce | 2016-06-17 14:12:17 -0700 | [diff] [blame] | 1069 | extern uint8_t bta_dm_get_av_count(void); |
The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 1070 | extern void bta_dm_search_start (tBTA_DM_MSG *p_data); |
| 1071 | extern void bta_dm_search_cancel (tBTA_DM_MSG *p_data); |
| 1072 | extern void bta_dm_discover (tBTA_DM_MSG *p_data); |
| 1073 | extern void bta_dm_di_disc (tBTA_DM_MSG *p_data); |
| 1074 | extern void bta_dm_inq_cmpl (tBTA_DM_MSG *p_data); |
| 1075 | extern void bta_dm_rmt_name (tBTA_DM_MSG *p_data); |
| 1076 | extern void bta_dm_sdp_result (tBTA_DM_MSG *p_data); |
| 1077 | extern void bta_dm_search_cmpl (tBTA_DM_MSG *p_data); |
| 1078 | extern void bta_dm_free_sdp_db (tBTA_DM_MSG *p_data); |
| 1079 | extern void bta_dm_disc_result (tBTA_DM_MSG *p_data); |
| 1080 | extern void bta_dm_search_result (tBTA_DM_MSG *p_data); |
| 1081 | extern void bta_dm_discovery_cmpl (tBTA_DM_MSG *p_data); |
| 1082 | extern void bta_dm_queue_search (tBTA_DM_MSG *p_data); |
| 1083 | extern void bta_dm_queue_disc (tBTA_DM_MSG *p_data); |
| 1084 | extern void bta_dm_search_clear_queue (tBTA_DM_MSG *p_data); |
| 1085 | extern void bta_dm_search_cancel_cmpl (tBTA_DM_MSG *p_data); |
| 1086 | extern void bta_dm_search_cancel_notify (tBTA_DM_MSG *p_data); |
| 1087 | extern void bta_dm_search_cancel_transac_cmpl(tBTA_DM_MSG *p_data); |
| 1088 | extern void bta_dm_disc_rmt_name (tBTA_DM_MSG *p_data); |
Jakub Pawlowski | 063ca02 | 2016-04-25 10:43:02 -0700 | [diff] [blame] | 1089 | extern tBTA_DM_PEER_DEVICE * bta_dm_find_peer_device(const BD_ADDR peer_addr); |
The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 1090 | |
Marie Janssen | e9e58ce | 2016-06-17 14:12:17 -0700 | [diff] [blame] | 1091 | void bta_dm_eir_update_uuid(uint16_t uuid16, bool adding); |
The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 1092 | |
The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 1093 | extern void bta_dm_enable_test_mode(tBTA_DM_MSG *p_data); |
| 1094 | extern void bta_dm_disable_test_mode(tBTA_DM_MSG *p_data); |
| 1095 | extern void bta_dm_execute_callback(tBTA_DM_MSG *p_data); |
| 1096 | |
VenkatRaghavan VijayaRaghavan | 76356ae | 2015-04-21 11:32:29 -0700 | [diff] [blame] | 1097 | |
| 1098 | extern void bta_dm_remove_all_acl(tBTA_DM_MSG *p_data); |
The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 1099 | #endif /* BTA_DM_INT_H */ |