36
36
#define MODE_DISCOVERABLE 0x02
37
37
#define MODE_UNKNOWN 0xff
41
#define STATE_DISCOV 1
42
#define STATE_RESOLVNAME 2
43
#define STATE_SUSPENDED 3
45
39
#define MAX_NAME_LENGTH 248
47
41
/* Invalid SSP passkey value used to indicate negative replies */
48
42
#define INVALID_PASSKEY 0xffffffff
52
NAME_NOT_REQUIRED, /* used by get remote name without name resolving */
53
NAME_REQUIRED, /* remote name needs be resolved */
54
NAME_REQUESTED, /* HCI remote name request was sent */
57
50
struct btd_adapter;
95
87
struct btd_device *device,
96
88
gboolean remove_storage);
98
int adapter_resolve_names(struct btd_adapter *adapter);
100
90
struct btd_adapter *adapter_create(DBusConnection *conn, int id);
101
91
gboolean adapter_init(struct btd_adapter *adapter);
102
92
void adapter_remove(struct btd_adapter *adapter);
103
93
void adapter_set_allow_name_changes(struct btd_adapter *adapter,
104
94
gboolean allow_name_changes);
95
void adapter_set_discovering(struct btd_adapter *adapter,
96
gboolean discovering);
105
97
uint16_t adapter_get_dev_id(struct btd_adapter *adapter);
106
98
const gchar *adapter_get_path(struct btd_adapter *adapter);
107
99
void adapter_get_address(struct btd_adapter *adapter, bdaddr_t *bdaddr);
108
100
void adapter_set_state(struct btd_adapter *adapter, int state);
109
101
int adapter_get_state(struct btd_adapter *adapter);
110
int adapter_get_discover_type(struct btd_adapter *adapter);
111
102
struct remote_dev_info *adapter_search_found_devices(struct btd_adapter *adapter,
112
struct remote_dev_info *match);
113
void adapter_update_found_devices(struct btd_adapter *adapter, bdaddr_t *bdaddr,
114
uint32_t class, int8_t rssi,
116
int adapter_remove_found_device(struct btd_adapter *adapter, bdaddr_t *bdaddr);
104
void adapter_update_found_devices(struct btd_adapter *adapter,
105
bdaddr_t *bdaddr, addr_type_t type,
106
uint32_t class, int8_t rssi,
107
uint8_t confirm_name,
108
uint8_t *data, uint8_t data_len);
117
109
void adapter_emit_device_found(struct btd_adapter *adapter,
118
110
struct remote_dev_info *dev);
119
111
void adapter_mode_changed(struct btd_adapter *adapter, uint8_t scan_mode);
120
int adapter_update_local_name(struct btd_adapter *adapter, const char *name);
112
int adapter_set_name(struct btd_adapter *adapter, const char *name);
113
void adapter_name_changed(struct btd_adapter *adapter, const char *name);
121
114
void adapter_service_insert(struct btd_adapter *adapter, void *rec);
122
115
void adapter_service_remove(struct btd_adapter *adapter, void *rec);
123
116
void btd_adapter_class_changed(struct btd_adapter *adapter,
131
124
void adapter_remove_connection(struct btd_adapter *adapter,
132
125
struct btd_device *device);
133
126
gboolean adapter_has_discov_sessions(struct btd_adapter *adapter);
134
void adapter_suspend_discovery(struct btd_adapter *adapter);
135
void adapter_resume_discovery(struct btd_adapter *adapter);
137
128
struct btd_adapter *btd_adapter_ref(struct btd_adapter *adapter);
138
129
void btd_adapter_unref(struct btd_adapter *adapter);
159
150
const char *btd_adapter_any_request_path(void);
160
151
void btd_adapter_any_release_path(void);
161
gboolean adapter_is_pairable(struct btd_adapter *adapter);
162
152
gboolean adapter_powering_down(struct btd_adapter *adapter);
164
154
int btd_adapter_restore_powered(struct btd_adapter *adapter);
165
155
int btd_adapter_switch_online(struct btd_adapter *adapter);
166
156
int btd_adapter_switch_offline(struct btd_adapter *adapter);
157
void btd_adapter_enable_auto_connect(struct btd_adapter *adapter);
168
159
typedef ssize_t (*btd_adapter_pin_cb_t) (struct btd_adapter *adapter,
169
160
struct btd_device *dev, char *out);
186
177
int (*start_discovery) (int index);
187
178
int (*stop_discovery) (int index);
189
int (*resolve_name) (int index, bdaddr_t *bdaddr);
190
int (*cancel_resolve_name) (int index, bdaddr_t *bdaddr);
191
180
int (*set_name) (int index, const char *name);
192
181
int (*set_dev_class) (int index, uint8_t major, uint8_t minor);
193
182
int (*set_fast_connectable) (int index, gboolean enable);
204
193
int (*confirm_reply) (int index, bdaddr_t *bdaddr, gboolean success);
205
194
int (*passkey_reply) (int index, bdaddr_t *bdaddr, uint32_t passkey);
206
int (*enable_le) (int index);
207
195
int (*encrypt_link) (int index, bdaddr_t *bdaddr, bt_hci_result_t cb,
208
196
gpointer user_data);
209
197
int (*set_did) (int index, uint16_t vendor, uint16_t product,
220
208
int (*add_remote_oob_data) (int index, bdaddr_t *bdaddr, uint8_t *hash,
221
209
uint8_t *randomizer);
222
210
int (*remove_remote_oob_data) (int index, bdaddr_t *bdaddr);
211
int (*confirm_name) (int index, bdaddr_t *bdaddr, gboolean name_known);
225
214
int btd_register_adapter_ops(struct btd_adapter_ops *ops, gboolean priority);
270
259
int adapter_cancel_bonding(struct btd_adapter *adapter, bdaddr_t *bdaddr);
261
void adapter_bonding_complete(struct btd_adapter *adapter, bdaddr_t *bdaddr,
272
264
int btd_adapter_read_local_oob_data(struct btd_adapter *adapter);
274
266
int btd_adapter_add_remote_oob_data(struct btd_adapter *adapter,