15738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************
25738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *
35b790feeeb211c42bf78ca3ae9c26aa30e516765Jakub Pawlowski *  Copyright 2009-2012 Broadcom Corporation
45738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *
55738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *  Licensed under the Apache License, Version 2.0 (the "License");
65738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *  you may not use this file except in compliance with the License.
75738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *  You may obtain a copy of the License at:
85738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *
95738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *  http://www.apache.org/licenses/LICENSE-2.0
105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *
115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *  Unless required by applicable law or agreed to in writing, software
125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *  distributed under the License is distributed on an "AS IS" BASIS,
135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *  See the License for the specific language governing permissions and
155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *  limitations under the License.
165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *
175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project ******************************************************************************/
185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#ifndef BTIF_STORAGE_H
205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTIF_STORAGE_H
215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
22819e2ecb84a22d6e03ec9ed67b3260c0dd7e8abaJakub Pawlowski#include <bluetooth/uuid.h>
2349a86709488e5cfd5e23759da18bf9613e15b04dMarie Janssen#include <hardware/bluetooth.h>
2449a86709488e5cfd5e23759da18bf9613e15b04dMarie Janssen
2549a86709488e5cfd5e23759da18bf9613e15b04dMarie Janssen#include "bt_target.h"
265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#include "bt_types.h"
275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
296bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson *  Constants & Macros
30ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ******************************************************************************/
315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTIF_STORAGE_FILL_PROPERTY(p_prop, t, l, p_v) \
3240cde56d28ab9751ba76bded0b7ac5974c750a97Myles Watson  do {                                                \
3340cde56d28ab9751ba76bded0b7ac5974c750a97Myles Watson    (p_prop)->type = (t);                             \
3440cde56d28ab9751ba76bded0b7ac5974c750a97Myles Watson    (p_prop)->len = (l);                              \
3540cde56d28ab9751ba76bded0b7ac5974c750a97Myles Watson    (p_prop)->val = (p_v);                            \
3640cde56d28ab9751ba76bded0b7ac5974c750a97Myles Watson  } while (0)
375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
396bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson *  Functions
40ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ******************************************************************************/
415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
436bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson *
446bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson * Function         btif_storage_get_adapter_property
456bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson *
466bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson * Description      BTIF storage API - Fetches the adapter property->type
476bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson *                  from NVRAM and fills property->val.
486bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson *                  Caller should provide memory for property->val and
496bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson *                  set the property->val
506bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson *
516bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson * Returns          BT_STATUS_SUCCESS if the fetch was successful,
526bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson *                  BT_STATUS_FAIL otherwise
536bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson *
546bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson ******************************************************************************/
556bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watsonbt_status_t btif_storage_get_adapter_property(bt_property_t* property);
565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
586bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson *
596bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson * Function         btif_storage_set_adapter_property
606bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson *
616bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson * Description      BTIF storage API - Stores the adapter property
626bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson *                  to NVRAM
636bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson *
646bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson * Returns          BT_STATUS_SUCCESS if the store was successful,
656bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson *                  BT_STATUS_FAIL otherwise
666bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson *
676bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson ******************************************************************************/
686bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watsonbt_status_t btif_storage_set_adapter_property(bt_property_t* property);
695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
716bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson *
726bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson * Function         btif_storage_get_remote_device_property
736bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson *
746bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson * Description      BTIF storage API - Fetches the remote device property->type
756bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson *                  from NVRAM and fills property->val.
766bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson *                  Caller should provide memory for property->val and
776bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson *                  set the property->val
786bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson *
796bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson * Returns          BT_STATUS_SUCCESS if the fetch was successful,
806bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson *                  BT_STATUS_FAIL otherwise
816bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson *
826bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson ******************************************************************************/
83c2276b06572ab6fc1f900fbb1f41087e77d47e2aJakub Pawlowskibt_status_t btif_storage_get_remote_device_property(
84a484a888196ddf8bcbf1ad3226d6451bc735a94bJakub Pawlowski    const RawAddress* remote_bd_addr, bt_property_t* property);
855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
876bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson *
886bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson * Function         btif_storage_set_remote_device_property
896bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson *
906bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson * Description      BTIF storage API - Stores the remote device property
916bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson *                  to NVRAM
926bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson *
936bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson * Returns          BT_STATUS_SUCCESS if the store was successful,
946bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson *                  BT_STATUS_FAIL otherwise
956bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson *
966bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson ******************************************************************************/
97c2276b06572ab6fc1f900fbb1f41087e77d47e2aJakub Pawlowskibt_status_t btif_storage_set_remote_device_property(
98a484a888196ddf8bcbf1ad3226d6451bc735a94bJakub Pawlowski    const RawAddress* remote_bd_addr, bt_property_t* property);
995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
1016bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson *
1026bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson * Function         btif_storage_add_remote_device
1036bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson *
1046bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson * Description      BTIF storage API - Adds a newly discovered device to
1056bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson *                  track along with the timestamp. Also, stores the various
1066bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson *                  properties - RSSI, BDADDR, NAME (if found in EIR)
1076bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson *
1086bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson * Returns          BT_STATUS_SUCCESS if successful,
1096bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson *                  BT_STATUS_FAIL otherwise
1106bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson *
1116bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson ******************************************************************************/
112a484a888196ddf8bcbf1ad3226d6451bc735a94bJakub Pawlowskibt_status_t btif_storage_add_remote_device(const RawAddress* remote_bd_addr,
1135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                           uint32_t num_properties,
1146bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson                                           bt_property_t* properties);
1155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
1176bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson *
1186bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson * Function         btif_storage_add_bonded_device
1196bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson *
1206bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson * Description      BTIF storage API - Adds the newly bonded device to NVRAM
1216bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson *                  along with the link-key, Key type and Pin key length
1226bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson *
1236bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson * Returns          BT_STATUS_SUCCESS if the store was successful,
1246bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson *                  BT_STATUS_FAIL otherwise
1256bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson *
1266bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson ******************************************************************************/
127a484a888196ddf8bcbf1ad3226d6451bc735a94bJakub Pawlowskibt_status_t btif_storage_add_bonded_device(RawAddress* remote_bd_addr,
1286bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson                                           LINK_KEY link_key, uint8_t key_type,
1295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                           uint8_t pin_length);
1305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
1326bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson *
1336bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson * Function         btif_storage_remove_bonded_device
1346bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson *
1356bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson * Description      BTIF storage API - Deletes the bonded device from NVRAM
1366bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson *
1376bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson * Returns          BT_STATUS_SUCCESS if the deletion was successful,
1386bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson *                  BT_STATUS_FAIL otherwise
1396bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson *
1406bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson ******************************************************************************/
141a484a888196ddf8bcbf1ad3226d6451bc735a94bJakub Pawlowskibt_status_t btif_storage_remove_bonded_device(const RawAddress* remote_bd_addr);
1425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
1446bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson *
1456bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson * Function         btif_storage_remove_bonded_device
1466bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson *
1476bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson * Description      BTIF storage API - Deletes the bonded device from NVRAM
1486bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson *
1496bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson * Returns          BT_STATUS_SUCCESS if the deletion was successful,
1506bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson *                  BT_STATUS_FAIL otherwise
1516bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson *
1526bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson ******************************************************************************/
1535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectbt_status_t btif_storage_load_bonded_devices(void);
1545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
1566bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson *
1576bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson * Function         btif_storage_add_hid_device_info
1586bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson *
1596bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson * Description      BTIF storage API - Adds the hid information of bonded hid
160f45481678af0694902b5200ba69ced4cb61d73f0Myles Watson *                  devices-to NVRAM
1616bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson *
1626bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson * Returns          BT_STATUS_SUCCESS if the store was successful,
1636bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson *                  BT_STATUS_FAIL otherwise
1646bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson *
1656bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson ******************************************************************************/
1666bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson
1676bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watsonbt_status_t btif_storage_add_hid_device_info(
168a484a888196ddf8bcbf1ad3226d6451bc735a94bJakub Pawlowski    RawAddress* remote_bd_addr, uint16_t attr_mask, uint8_t sub_class,
1696bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson    uint8_t app_id, uint16_t vendor_id, uint16_t product_id, uint16_t version,
1706bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson    uint8_t ctry_code, uint16_t ssr_max_latency, uint16_t ssr_min_tout,
1716bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson    uint16_t dl_len, uint8_t* dsc_list);
1725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
1746bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson *
1756bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson * Function         btif_storage_load_bonded_hid_info
1766bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson *
1776bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson * Description      BTIF storage API - Loads hid info for all the bonded devices
178f45481678af0694902b5200ba69ced4cb61d73f0Myles Watson *                  from NVRAM and adds those devices  to the BTA_HH.
1796bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson *
1806bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson * Returns          BT_STATUS_SUCCESS if successful, BT_STATUS_FAIL otherwise
1816bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson *
1826bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson ******************************************************************************/
1835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectbt_status_t btif_storage_load_bonded_hid_info(void);
1845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
1866bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson *
1876bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson * Function         btif_storage_remove_hid_info
1886bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson *
1896bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson * Description      BTIF storage API - Deletes the bonded hid device info from
190f45481678af0694902b5200ba69ced4cb61d73f0Myles Watson *                  NVRAM
1916bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson *
1926bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson * Returns          BT_STATUS_SUCCESS if the deletion was successful,
1936bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson *                  BT_STATUS_FAIL otherwise
1946bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson *
1956bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson ******************************************************************************/
196a484a888196ddf8bcbf1ad3226d6451bc735a94bJakub Pawlowskibt_status_t btif_storage_remove_hid_info(RawAddress* remote_bd_addr);
1975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
19889b0ccb03476a637c6e8dbe7d7d8c77057362d49Jakub Pawlowski/** Loads information about bonded hearing aid devices */
19989b0ccb03476a637c6e8dbe7d7d8c77057362d49Jakub Pawlowskivoid btif_storage_load_bonded_hearing_aids();
20089b0ccb03476a637c6e8dbe7d7d8c77057362d49Jakub Pawlowski
20189b0ccb03476a637c6e8dbe7d7d8c77057362d49Jakub Pawlowski/** Deletes the bonded hearing aid device info from NVRAM */
20289b0ccb03476a637c6e8dbe7d7d8c77057362d49Jakub Pawlowskivoid btif_storage_remove_hearing_aid(const RawAddress& address);
20389b0ccb03476a637c6e8dbe7d7d8c77057362d49Jakub Pawlowski
204dc77837a27e4110a74b977990adfade076770a19Hansong Zhang/** Remove the hearing aid device from white list */
205dc77837a27e4110a74b977990adfade076770a19Hansong Zhangvoid btif_storage_remove_hearing_aid_white_list(const RawAddress& address);
206dc77837a27e4110a74b977990adfade076770a19Hansong Zhang
2077b266be449e4f915c419199c2312eb31f70e63bcAjay Panicker/*******************************************************************************
2086bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson *
2096bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson * Function         btif_storage_is_retricted_device
2106bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson *
2116bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson * Description      BTIF storage API - checks if this device is a restricted
212f45481678af0694902b5200ba69ced4cb61d73f0Myles Watson *                  device
2136bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson *
2146bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson * Returns          true  if the device is labled as restricted
2156bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson *                  false otherwise
2166bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson *
2176bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson ******************************************************************************/
218a484a888196ddf8bcbf1ad3226d6451bc735a94bJakub Pawlowskibool btif_storage_is_restricted_device(const RawAddress* remote_bd_addr);
2197b266be449e4f915c419199c2312eb31f70e63bcAjay Panicker
220a484a888196ddf8bcbf1ad3226d6451bc735a94bJakub Pawlowskibt_status_t btif_storage_add_ble_bonding_key(RawAddress* remote_bd_addr,
22180a9ee783ae47262c3a12b983e7681bc75c69338Myles Watson                                             const uint8_t* key,
22280a9ee783ae47262c3a12b983e7681bc75c69338Myles Watson                                             uint8_t key_type,
2236bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson                                             uint8_t key_length);
224a484a888196ddf8bcbf1ad3226d6451bc735a94bJakub Pawlowskibt_status_t btif_storage_get_ble_bonding_key(RawAddress* remote_bd_addr,
22580a9ee783ae47262c3a12b983e7681bc75c69338Myles Watson                                             uint8_t key_type,
22680a9ee783ae47262c3a12b983e7681bc75c69338Myles Watson                                             uint8_t* key_value,
227ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta                                             int key_length);
228ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta
2296bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watsonbt_status_t btif_storage_add_ble_local_key(char* key, uint8_t key_type,
230ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta                                           uint8_t key_length);
231c2276b06572ab6fc1f900fbb1f41087e77d47e2aJakub Pawlowskibt_status_t btif_storage_remove_ble_bonding_keys(
232a484a888196ddf8bcbf1ad3226d6451bc735a94bJakub Pawlowski    const RawAddress* remote_bd_addr);
233ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Battabt_status_t btif_storage_remove_ble_local_keys(void);
2346bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watsonbt_status_t btif_storage_get_ble_local_key(uint8_t key_type, char* key_value,
235ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta                                           int key_len);
236ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta
237a484a888196ddf8bcbf1ad3226d6451bc735a94bJakub Pawlowskibt_status_t btif_storage_get_remote_addr_type(const RawAddress* remote_bd_addr,
2386bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson                                              int* addr_type);
239ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta
240a484a888196ddf8bcbf1ad3226d6451bc735a94bJakub Pawlowskibt_status_t btif_storage_set_remote_addr_type(const RawAddress* remote_bd_addr,
241b7f64bc45dec7f7fec74ceb04874f322b9434bbfMarie Janssen                                              uint8_t addr_type);
242ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta
2438843cc830b522cfe6f1e361297fc28fd331a1378Hemant Gupta/*******************************************************************************
2448843cc830b522cfe6f1e361297fc28fd331a1378Hemant Gupta * Function         btif_storage_load_hidd
2458843cc830b522cfe6f1e361297fc28fd331a1378Hemant Gupta *
2468843cc830b522cfe6f1e361297fc28fd331a1378Hemant Gupta * Description      Loads hidd bonded device and "plugs" it into hidd
2478843cc830b522cfe6f1e361297fc28fd331a1378Hemant Gupta *
2488843cc830b522cfe6f1e361297fc28fd331a1378Hemant Gupta * Returns          BT_STATUS_SUCCESS if successful, BT_STATUS_FAIL otherwise
2498843cc830b522cfe6f1e361297fc28fd331a1378Hemant Gupta *
2508843cc830b522cfe6f1e361297fc28fd331a1378Hemant Gupta ******************************************************************************/
2518843cc830b522cfe6f1e361297fc28fd331a1378Hemant Guptabt_status_t btif_storage_load_hidd(void);
2528843cc830b522cfe6f1e361297fc28fd331a1378Hemant Gupta
2538843cc830b522cfe6f1e361297fc28fd331a1378Hemant Gupta/*******************************************************************************
2548843cc830b522cfe6f1e361297fc28fd331a1378Hemant Gupta *
2558843cc830b522cfe6f1e361297fc28fd331a1378Hemant Gupta * Function         btif_storage_set_hidd
2568843cc830b522cfe6f1e361297fc28fd331a1378Hemant Gupta *
2578843cc830b522cfe6f1e361297fc28fd331a1378Hemant Gupta * Description      Stores hidd bonded device info in nvram.
2588843cc830b522cfe6f1e361297fc28fd331a1378Hemant Gupta *
2598843cc830b522cfe6f1e361297fc28fd331a1378Hemant Gupta * Returns          BT_STATUS_SUCCESS
2608843cc830b522cfe6f1e361297fc28fd331a1378Hemant Gupta *
2618843cc830b522cfe6f1e361297fc28fd331a1378Hemant Gupta ******************************************************************************/
2628843cc830b522cfe6f1e361297fc28fd331a1378Hemant Gupta
263a484a888196ddf8bcbf1ad3226d6451bc735a94bJakub Pawlowskibt_status_t btif_storage_set_hidd(RawAddress* remote_bd_addr);
2648843cc830b522cfe6f1e361297fc28fd331a1378Hemant Gupta
2658843cc830b522cfe6f1e361297fc28fd331a1378Hemant Gupta/*******************************************************************************
2668843cc830b522cfe6f1e361297fc28fd331a1378Hemant Gupta *
2678843cc830b522cfe6f1e361297fc28fd331a1378Hemant Gupta * Function         btif_storage_remove_hidd
2688843cc830b522cfe6f1e361297fc28fd331a1378Hemant Gupta *
2698843cc830b522cfe6f1e361297fc28fd331a1378Hemant Gupta * Description      Removes hidd bonded device info from nvram
2708843cc830b522cfe6f1e361297fc28fd331a1378Hemant Gupta *
2718843cc830b522cfe6f1e361297fc28fd331a1378Hemant Gupta * Returns          BT_STATUS_SUCCESS
2728843cc830b522cfe6f1e361297fc28fd331a1378Hemant Gupta *
2738843cc830b522cfe6f1e361297fc28fd331a1378Hemant Gupta ******************************************************************************/
2748843cc830b522cfe6f1e361297fc28fd331a1378Hemant Gupta
275a484a888196ddf8bcbf1ad3226d6451bc735a94bJakub Pawlowskibt_status_t btif_storage_remove_hidd(RawAddress* remote_bd_addr);
2768843cc830b522cfe6f1e361297fc28fd331a1378Hemant Gupta
277e91297a4d1a77ae0c367fbe756090b7357e9893aPavlin Radoslavov// Gets the device name for a given Bluetooth address |bd_addr|.
278e91297a4d1a77ae0c367fbe756090b7357e9893aPavlin Radoslavov// The device name (if found) is stored in |name|.
279e91297a4d1a77ae0c367fbe756090b7357e9893aPavlin Radoslavov// Returns true if the device name is found, othervise false.
280e91297a4d1a77ae0c367fbe756090b7357e9893aPavlin Radoslavov// Note: |name| should point to a buffer that can store string of length
281e91297a4d1a77ae0c367fbe756090b7357e9893aPavlin Radoslavov// |BTM_MAX_REM_BD_NAME_LEN|.
282a484a888196ddf8bcbf1ad3226d6451bc735a94bJakub Pawlowskibool btif_storage_get_stored_remote_name(const RawAddress& bd_addr, char* name);
283e91297a4d1a77ae0c367fbe756090b7357e9893aPavlin Radoslavov
28416856640e6179a73abf955e24dc7acf0699b66e4Andre Eisenbach/******************************************************************************
28516856640e6179a73abf955e24dc7acf0699b66e4Andre Eisenbach * Exported for unit tests
28616856640e6179a73abf955e24dc7acf0699b66e4Andre Eisenbach *****************************************************************************/
287819e2ecb84a22d6e03ec9ed67b3260c0dd7e8abaJakub Pawlowskisize_t btif_split_uuids_string(const char* str, bluetooth::Uuid* p_uuid,
2886bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson                               size_t max_uuids);
28916856640e6179a73abf955e24dc7acf0699b66e4Andre Eisenbach
2905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#endif /* BTIF_STORAGE_H */
291