3 * BlueZ - Bluetooth protocol stack for Linux
5 * Copyright (C) 2013-2014 Intel Corporation. All rights reserved.
8 * This library is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU Lesser General Public
10 * License as published by the Free Software Foundation; either
11 * version 2.1 of the License, or (at your option) any later version.
13 * This library is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16 * Lesser General Public License for more details.
18 * You should have received a copy of the GNU Lesser General Public
19 * License along with this library; if not, write to the Free Software
20 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
24 typedef void (*bt_bluetooth_ready)(int err, const bdaddr_t *addr);
25 bool bt_bluetooth_start(int index, bool mgmt_dbg, bt_bluetooth_ready cb);
27 typedef void (*bt_bluetooth_stopped)(void);
28 bool bt_bluetooth_stop(bt_bluetooth_stopped cb);
30 void bt_bluetooth_cleanup(void);
32 bool bt_bluetooth_register(struct ipc *ipc, uint8_t mode);
33 void bt_bluetooth_unregister(void);
35 int bt_adapter_add_record(sdp_record_t *rec, uint8_t svc_hint);
36 void bt_adapter_remove_record(uint32_t handle);
38 typedef void (*bt_le_device_found)(const bdaddr_t *addr, int rssi,
39 uint16_t eir_len, const void *eir,
40 bool connectable, bool bonded);
41 bool bt_le_register(bt_le_device_found cb);
42 void bt_le_unregister(void);
44 bool bt_le_discovery_start(void);
46 typedef void (*bt_le_discovery_stopped)(void);
47 bool bt_le_discovery_stop(bt_le_discovery_stopped cb);
49 typedef void (*bt_le_set_advertising_done)(uint8_t status, void *user_data);
50 bool bt_le_set_advertising(bool advertising, bt_le_set_advertising_done cb,
53 uint8_t bt_get_device_android_type(const bdaddr_t *addr);
54 bool bt_is_device_le(const bdaddr_t *addr);
55 uint8_t bt_device_last_seen_bearer(const bdaddr_t *bdaddr);
57 const char *bt_get_adapter_name(void);
58 bool bt_device_is_bonded(const bdaddr_t *bdaddr);
59 bool bt_device_set_uuids(const bdaddr_t *bdaddr, GSList *uuids);
61 typedef void (*bt_read_device_rssi_done)(uint8_t status, const bdaddr_t *addr,
62 int8_t rssi, void *user_data);
63 bool bt_read_device_rssi(const bdaddr_t *addr, bt_read_device_rssi_done cb,
66 bool bt_get_csrk(const bdaddr_t *addr, bool local, uint8_t key[16],
67 uint32_t *sign_cnt, bool *authenticated);
69 void bt_update_sign_counter(const bdaddr_t *addr, bool local, uint32_t val);
71 void bt_store_gatt_ccc(const bdaddr_t *addr, uint16_t value);
73 uint16_t bt_get_gatt_ccc(const bdaddr_t *addr);
75 const bdaddr_t *bt_get_id_addr(const bdaddr_t *addr, uint8_t *type);
77 bool bt_kernel_conn_control(void);
79 bool bt_auto_connect_add(const bdaddr_t *addr);
81 void bt_auto_connect_remove(const bdaddr_t *addr);
83 typedef void (*bt_unpaired_device_cb)(const bdaddr_t *addr);
84 bool bt_unpaired_register(bt_unpaired_device_cb cb);
85 void bt_unpaired_unregister(bt_unpaired_device_cb cb);
87 typedef void (*bt_paired_device_cb)(const bdaddr_t *addr);
88 bool bt_paired_register(bt_paired_device_cb cb);
89 void bt_paired_unregister(bt_paired_device_cb cb);
90 bool bt_is_pairing(const bdaddr_t *addr);