/****************************************************************************** * * Copyright (C) 2009-2012 Broadcom Corporation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at: * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * ******************************************************************************/ /******************************************************************************* * * Filename: btif_api.h * * Description: Main API header file for all BTIF functions accessed * from main bluetooth HAL. All HAL extensions will not * require headerfiles as they would be accessed through * callout/callins. * *******************************************************************************/ #ifndef BTIF_API_H #define BTIF_API_H #include <hardware/bluetooth.h> #include "btif_common.h" #include "btif_dm.h" /******************************************************************************* ** BTIF CORE API ********************************************************************************/ /******************************************************************************* ** ** Function btif_init_bluetooth ** ** Description Creates BTIF task and prepares BT scheduler for startup ** ** Returns bt_status_t ** *******************************************************************************/ bt_status_t btif_init_bluetooth(void); /******************************************************************************* ** ** Function btif_enable_bluetooth ** ** Description Performs chip power on and kickstarts OS scheduler ** ** Returns bt_status_t ** *******************************************************************************/ bt_status_t btif_enable_bluetooth(void); /******************************************************************************* ** ** Function btif_disable_bluetooth ** ** Description Inititates shutdown of Bluetooth system. ** Any active links will be dropped and device entering ** non connectable/discoverable mode ** ** Returns void ** *******************************************************************************/ bt_status_t btif_disable_bluetooth(void); /******************************************************************************* ** ** Function btif_cleanup_bluetooth ** ** Description Cleanup BTIF state. ** ** ** Returns void ** *******************************************************************************/ bt_status_t btif_cleanup_bluetooth(void); /******************************************************************************* ** ** Function is_restricted_mode ** ** Description Checks if BT was enabled in restriced mode. In restricted ** mode, bonds that are created are marked as temporary. ** These bonds persist until we leave restricted mode, at ** which point they will be deleted from the config. Also ** while in restricted mode, the user can access devices ** that are already paired before entering restricted mode, ** but they cannot remove any of these devices. ** ** Returns bool ** *******************************************************************************/ bool is_restricted_mode(void); /******************************************************************************* ** ** Function btif_get_adapter_properties ** ** Description Fetches all local adapter properties ** ** Returns bt_status_t ** *******************************************************************************/ bt_status_t btif_get_adapter_properties(void); /******************************************************************************* ** ** Function btif_get_adapter_property ** ** Description Fetches property value from local cache ** ** Returns bt_status_t ** *******************************************************************************/ bt_status_t btif_get_adapter_property( bt_property_type_t type); /******************************************************************************* ** ** Function btif_set_adapter_property ** ** Description Updates core stack with property value and stores it in ** local cache ** ** Returns bt_status_t ** *******************************************************************************/ bt_status_t btif_set_adapter_property( const bt_property_t *property); /******************************************************************************* ** ** Function btif_get_remote_device_property ** ** Description Fetches the remote device property from the NVRAM ** ** Returns bt_status_t ** *******************************************************************************/ bt_status_t btif_get_remote_device_property( bt_bdaddr_t *remote_addr, bt_property_type_t type); /******************************************************************************* ** ** Function btif_get_remote_device_properties ** ** Description Fetches all the remote device properties from NVRAM ** ** Returns bt_status_t ** *******************************************************************************/ bt_status_t btif_get_remote_device_properties( bt_bdaddr_t *remote_addr); /******************************************************************************* ** ** Function btif_set_remote_device_property ** ** Description Writes the remote device property to NVRAM. ** Currently, BT_PROPERTY_REMOTE_FRIENDLY_NAME is the only ** remote device property that can be set ** ** Returns bt_status_t ** *******************************************************************************/ bt_status_t btif_set_remote_device_property( bt_bdaddr_t *remote_addr, const bt_property_t *property); /******************************************************************************* ** ** Function btif_get_remote_service_record ** ** Description Looks up the service matching uuid on the remote device ** and fetches the SCN and service_name if the UUID is found ** ** Returns bt_status_t ** *******************************************************************************/ bt_status_t btif_get_remote_service_record( bt_bdaddr_t *remote_addr, bt_uuid_t *uuid); /******************************************************************************* ** BTIF DM API ********************************************************************************/ /******************************************************************************* ** ** Function btif_dm_start_discovery ** ** Description Start device discovery/inquiry ** ** ** Returns bt_status_t ** *******************************************************************************/ bt_status_t btif_dm_start_discovery(void); /******************************************************************************* ** ** Function btif_dm_cancel_discovery ** ** Description Cancels search ** ** Returns bt_status_t ** *******************************************************************************/ bt_status_t btif_dm_cancel_discovery(void); /******************************************************************************* ** ** Function btif_dm_create_bond ** ** Description Initiate bonding with the specified device ** ** Returns bt_status_t ** *******************************************************************************/ bt_status_t btif_dm_create_bond(const bt_bdaddr_t *bd_addr, int transport); /******************************************************************************* ** ** Function btif_dm_create_bond_out_of_band ** ** Description Initiate bonding with the specified device using OOB data. ** ** Returns bt_status_t ** *******************************************************************************/ bt_status_t btif_dm_create_bond_out_of_band(const bt_bdaddr_t *bd_addr, int transport, const bt_out_of_band_data_t *oob_data); /******************************************************************************* ** ** Function btif_dm_cancel_bond ** ** Description Initiate bonding with the specified device ** ** Returns bt_status_t ** *******************************************************************************/ bt_status_t btif_dm_cancel_bond(const bt_bdaddr_t *bd_addr); /******************************************************************************* ** ** Function btif_dm_remove_bond ** ** Description Removes bonding with the specified device ** ** Returns bt_status_t ** *******************************************************************************/ bt_status_t btif_dm_remove_bond(const bt_bdaddr_t *bd_addr); /******************************************************************************* ** ** Function btif_dm_get_connection_state ** ** Description Returns whether the remote device is currently connected ** ** Returns 0 if not connected ** *******************************************************************************/ uint16_t btif_dm_get_connection_state(const bt_bdaddr_t *bd_addr); /******************************************************************************* ** ** Function btif_dm_pin_reply ** ** Description BT legacy pairing - PIN code reply ** ** Returns bt_status_t ** *******************************************************************************/ bt_status_t btif_dm_pin_reply( const bt_bdaddr_t *bd_addr, uint8_t accept, uint8_t pin_len, bt_pin_code_t *pin_code); /******************************************************************************* ** ** Function btif_dm_passkey_reply ** ** Description BT SSP passkey reply ** ** Returns bt_status_t ** *******************************************************************************/ bt_status_t btif_dm_passkey_reply( const bt_bdaddr_t *bd_addr, uint8_t accept, uint32_t passkey); /******************************************************************************* ** ** Function btif_dm_ssp_reply ** ** Description BT SSP Reply - Just Works, Numeric Comparison & Passkey Entry ** ** Returns bt_status_t ** *******************************************************************************/ bt_status_t btif_dm_ssp_reply( const bt_bdaddr_t *bd_addr, bt_ssp_variant_t variant, uint8_t accept, uint32_t passkey); /******************************************************************************* ** ** Function btif_dm_get_adapter_property ** ** Description Queries the BTA for the adapter property ** ** Returns bt_status_t ** *******************************************************************************/ bt_status_t btif_dm_get_adapter_property(bt_property_t *prop); /******************************************************************************* ** ** Function btif_dm_get_remote_services ** ** Description Start SDP to get remote services ** ** Returns bt_status_t ** *******************************************************************************/ bt_status_t btif_dm_get_remote_service_record(bt_bdaddr_t *remote_addr, bt_uuid_t *uuid); /******************************************************************************* ** ** Function btif_dm_get_remote_services ** ** Description Start SDP to get remote services ** ** Returns bt_status_t ** *******************************************************************************/ bt_status_t btif_dm_get_remote_services(bt_bdaddr_t *remote_addr); /******************************************************************************* ** ** Function btif_dm_get_remote_services_by_transport ** ** Description Start SDP to get remote services by transport ** ** Returns bt_status_t ** *******************************************************************************/ bt_status_t btif_dm_get_remote_services_by_transport(bt_bdaddr_t *remote_addr, int transport); /******************************************************************************* ** ** Function btif_dut_mode_configure ** ** Description Configure Test Mode - 'enable' to 1 puts the device in test mode and 0 exits ** test mode ** ** Returns BT_STATUS_SUCCESS on success ** *******************************************************************************/ bt_status_t btif_dut_mode_configure(uint8_t enable); /******************************************************************************* ** ** Function btif_dut_mode_send ** ** Description Sends a HCI Vendor specific command to the controller ** ** Returns BT_STATUS_SUCCESS on success ** *******************************************************************************/ bt_status_t btif_dut_mode_send(uint16_t opcode, uint8_t *buf, uint8_t len); /******************************************************************************* ** ** Function btif_le_test_mode ** ** Description Sends a HCI BLE Test command to the Controller ** ** Returns BT_STATUS_SUCCESS on success ** *******************************************************************************/ bt_status_t btif_le_test_mode(uint16_t opcode, uint8_t *buf, uint8_t len); /******************************************************************************* ** ** Function btif_dm_read_energy_info ** ** Description Reads the energy info from controller ** ** Returns void ** *******************************************************************************/ void btif_dm_read_energy_info(); /******************************************************************************* ** ** Function btif_config_hci_snoop_log ** ** Description enable or disable HCI snoop log ** ** Returns BT_STATUS_SUCCESS on success ** *******************************************************************************/ bt_status_t btif_config_hci_snoop_log(uint8_t enable); /******************************************************************************* ** ** Function btif_debug_bond_event_dump ** ** Description Dump bond event information ** ** Returns void ** *******************************************************************************/ void btif_debug_bond_event_dump(int fd); #endif /* BTIF_API_H */