Lines Matching refs:index
66 static int hciops_start_scanning(int index, int timeout);
158 static inline int get_state(int index) in get_state() argument
160 struct dev_info *dev = &devs[index]; in get_state()
170 static void set_state(int index, int state) in set_state() argument
173 struct dev_info *dev = &devs[index]; in set_state()
178 adapter = manager_find_adapter_by_id(index); in set_state()
186 DBG("hci%d: new state %d", index, dev->discov_state); in set_state()
206 static inline gboolean is_le_capable(int index) in is_le_capable() argument
208 struct dev_info *dev = &devs[index]; in is_le_capable()
214 static inline gboolean is_bredr_capable(int index) in is_bredr_capable() argument
216 struct dev_info *dev = &devs[index]; in is_bredr_capable()
221 static int get_adapter_type(int index) in get_adapter_type() argument
223 if (is_le_capable(index) && is_bredr_capable(index)) in get_adapter_type()
225 else if (is_le_capable(index)) in get_adapter_type()
227 else if (is_bredr_capable(index)) in get_adapter_type()
238 static struct dev_info *init_dev_info(int index, int sk, gboolean registered, in init_dev_info() argument
241 struct dev_info *dev = &devs[index]; in init_dev_info()
245 dev->id = index; in init_dev_info()
361 static int write_inq_mode(int index, uint8_t mode) in write_inq_mode() argument
363 struct dev_info *dev = &devs[index]; in write_inq_mode()
376 static uint8_t get_inquiry_mode(int index) in get_inquiry_mode() argument
378 struct dev_info *dev = &devs[index]; in get_inquiry_mode()
409 static int init_ssp_mode(int index) in init_ssp_mode() argument
411 struct dev_info *dev = &devs[index]; in init_ssp_mode()
428 static int hciops_set_discoverable(int index, gboolean discoverable) in hciops_set_discoverable() argument
430 struct dev_info *dev = &devs[index]; in hciops_set_discoverable()
438 DBG("hci%d discoverable %d", index, discoverable); in hciops_set_discoverable()
447 static int hciops_set_pairable(int index, gboolean pairable) in hciops_set_pairable() argument
451 DBG("hci%d pairable %d", index, pairable); in hciops_set_pairable()
453 adapter = manager_find_adapter(&devs[index].bdaddr); in hciops_set_pairable()
457 devs[index].pairable = pairable; in hciops_set_pairable()
462 static int hciops_power_off(int index) in hciops_power_off() argument
464 struct dev_info *dev = &devs[index]; in hciops_power_off()
467 DBG("hci%d set scan mode off", index); in hciops_power_off()
473 DBG("hci%d HCIDEVDOWN", index); in hciops_power_off()
475 if (ioctl(dev->sk, HCIDEVDOWN, index) < 0 && errno != EALREADY) in hciops_power_off()
481 static void set_event_mask(int index) in set_event_mask() argument
483 struct dev_info *dev = &devs[index]; in set_event_mask()
536 static void start_adapter(int index) in start_adapter() argument
538 struct dev_info *dev = &devs[index]; in start_adapter()
542 set_event_mask(index); in start_adapter()
545 init_ssp_mode(index); in start_adapter()
547 inqmode = get_inquiry_mode(index); in start_adapter()
549 write_inq_mode(index, inqmode); in start_adapter()
575 static int hciops_stop_inquiry(int index) in hciops_stop_inquiry() argument
577 struct dev_info *dev = &devs[index]; in hciops_stop_inquiry()
579 DBG("hci%d", index); in hciops_stop_inquiry()
587 static gboolean init_adapter(int index) in init_adapter() argument
589 struct dev_info *dev = &devs[index]; in init_adapter()
596 adapter = btd_manager_register_adapter(index); in init_adapter()
614 hciops_power_off(index); in init_adapter()
618 start_adapter(index); in init_adapter()
623 hciops_set_discoverable(index, discoverable); in init_adapter()
624 hciops_set_pairable(index, pairable); in init_adapter()
627 hciops_stop_inquiry(index); in init_adapter()
634 static int hciops_encrypt_link(int index, bdaddr_t *dst, bt_hci_result_t cb, in hciops_encrypt_link() argument
646 dd = hci_open_dev(index); in hciops_encrypt_link()
710 static int hciops_set_did(int index, uint16_t vendor, uint16_t product, in hciops_set_did() argument
713 struct dev_info *dev = &devs[index]; in hciops_set_did()
787 static int get_handle(int index, bdaddr_t *bdaddr, uint16_t *handle) in get_handle() argument
789 struct dev_info *dev = &devs[index]; in get_handle()
794 DBG("hci%d dba %s", index, addr); in get_handle()
805 static int disconnect_addr(int index, bdaddr_t *dba, uint8_t reason) in disconnect_addr() argument
811 err = get_handle(index, dba, &handle); in disconnect_addr()
819 if (hci_send_cmd(devs[index].sk, OGF_LINK_CTL, OCF_DISCONNECT, in disconnect_addr()
844 static int get_auth_info(int index, bdaddr_t *bdaddr, uint8_t *auth) in get_auth_info() argument
846 struct dev_info *dev = &devs[index]; in get_auth_info()
851 DBG("hci%d dba %s", index, addr); in get_auth_info()
867 static void link_key_request(int index, bdaddr_t *dba) in link_key_request() argument
869 struct dev_info *dev = &devs[index]; in link_key_request()
876 DBG("hci%d dba %s", index, da); in link_key_request()
882 get_auth_info(index, dba, &conn->loc_auth); in link_key_request()
922 static void link_key_notify(int index, void *ptr) in link_key_notify() argument
924 struct dev_info *dev = &devs[index]; in link_key_notify()
935 DBG("hci%d dba %s type %d", index, da, evt->key_type); in link_key_notify()
1019 disconnect_addr(index, dba, status); in link_key_notify()
1031 static void return_link_keys(int index, void *ptr) in return_link_keys() argument
1033 struct dev_info *dev = &devs[index]; in return_link_keys()
1041 DBG("hci%d num_keys %u", index, num); in return_link_keys()
1049 DBG("hci%d returned key for %s", index, da); in return_link_keys()
1059 static int hciops_confirm_reply(int index, bdaddr_t *bdaddr, gboolean success) in hciops_confirm_reply() argument
1061 struct dev_info *dev = &devs[index]; in hciops_confirm_reply()
1067 DBG("hci%d dba %s success %d", index, addr, success); in hciops_confirm_reply()
1087 static void user_confirm_request(int index, void *ptr) in user_confirm_request() argument
1089 struct dev_info *dev = &devs[index]; in user_confirm_request()
1095 DBG("hci%d", index); in user_confirm_request()
1134 if (hciops_confirm_reply(index, &req->bdaddr, TRUE) < 0) in user_confirm_request()
1149 static void user_passkey_request(int index, void *ptr) in user_passkey_request() argument
1151 struct dev_info *dev = &devs[index]; in user_passkey_request()
1154 DBG("hci%d", index); in user_passkey_request()
1161 static void user_passkey_notify(int index, void *ptr) in user_passkey_notify() argument
1163 struct dev_info *dev = &devs[index]; in user_passkey_notify()
1166 DBG("hci%d", index); in user_passkey_notify()
1180 static void remote_oob_data_request(int index, bdaddr_t *bdaddr) in remote_oob_data_request() argument
1182 struct dev_info *dev = &devs[index]; in remote_oob_data_request()
1185 DBG("hci%d", index); in remote_oob_data_request()
1210 static int get_io_cap(int index, bdaddr_t *bdaddr, uint8_t *cap, uint8_t *auth) in get_io_cap() argument
1212 struct dev_info *dev = &devs[index]; in get_io_cap()
1220 err = get_auth_info(index, bdaddr, &conn->loc_auth); in get_io_cap()
1279 static void io_capa_request(int index, void *ptr) in io_capa_request() argument
1281 struct dev_info *dev = &devs[index]; in io_capa_request()
1288 DBG("hci%d IO capability request for %s", index, da); in io_capa_request()
1290 err = get_io_cap(index, dba, &cap, &auth); in io_capa_request()
1327 static void io_capa_response(int index, void *ptr) in io_capa_response() argument
1329 struct dev_info *dev = &devs[index]; in io_capa_response()
1335 DBG("hci%d IO capability response from %s", index, da); in io_capa_response()
1347 static void pin_code_request(int index, bdaddr_t *dba) in pin_code_request() argument
1349 struct dev_info *dev = &devs[index]; in pin_code_request()
1355 DBG("hci%d PIN request for %s", index, addr); in pin_code_request()
1380 static inline void remote_features_notify(int index, void *ptr) in remote_features_notify() argument
1382 struct dev_info *dev = &devs[index]; in remote_features_notify()
1395 static void write_le_host_complete(int index, uint8_t status) in write_le_host_complete() argument
1397 struct dev_info *dev = &devs[index]; in write_le_host_complete()
1409 static void read_local_version_complete(int index, in read_local_version_complete() argument
1412 struct dev_info *dev = &devs[index]; in read_local_version_complete()
1428 DBG("Got version for hci%d", index); in read_local_version_complete()
1431 init_adapter(index); in read_local_version_complete()
1434 static void read_local_features_complete(int index, in read_local_features_complete() argument
1437 struct dev_info *dev = &devs[index]; in read_local_features_complete()
1449 DBG("Got features for hci%d", index); in read_local_features_complete()
1452 init_adapter(index); in read_local_features_complete()
1455 static void update_ext_inquiry_response(int index) in update_ext_inquiry_response() argument
1457 struct dev_info *dev = &devs[index]; in update_ext_inquiry_response()
1460 DBG("hci%d", index); in update_ext_inquiry_response()
1488 static void update_name(int index, const char *name) in update_name() argument
1492 adapter = manager_find_adapter_by_id(index); in update_name()
1496 update_ext_inquiry_response(index); in update_name()
1499 static void read_local_name_complete(int index, read_local_name_rp *rp) in read_local_name_complete() argument
1501 struct dev_info *dev = &devs[index]; in read_local_name_complete()
1503 DBG("hci%d status %u", index, rp->status); in read_local_name_complete()
1511 update_name(index, (char *) rp->name); in read_local_name_complete()
1517 DBG("Got name for hci%d", index); in read_local_name_complete()
1535 init_adapter(index); in read_local_name_complete()
1538 static void read_tx_power_complete(int index, void *ptr) in read_tx_power_complete() argument
1540 struct dev_info *dev = &devs[index]; in read_tx_power_complete()
1544 DBG("hci%d status %u", index, rp->status); in read_tx_power_complete()
1550 update_ext_inquiry_response(index); in read_tx_power_complete()
1553 static void read_simple_pairing_mode_complete(int index, void *ptr) in read_simple_pairing_mode_complete() argument
1555 struct dev_info *dev = &devs[index]; in read_simple_pairing_mode_complete()
1558 DBG("hci%d status %u", index, rp->status); in read_simple_pairing_mode_complete()
1564 update_ext_inquiry_response(index); in read_simple_pairing_mode_complete()
1567 static void read_local_ext_features_complete(int index, in read_local_ext_features_complete() argument
1570 struct dev_info *dev = &devs[index]; in read_local_ext_features_complete()
1572 DBG("hci%d status %u", index, rp->status); in read_local_ext_features_complete()
1584 static void read_bd_addr_complete(int index, read_bd_addr_rp *rp) in read_bd_addr_complete() argument
1586 struct dev_info *dev = &devs[index]; in read_bd_addr_complete()
1588 DBG("hci%d status %u", index, rp->status); in read_bd_addr_complete()
1600 DBG("Got bdaddr for hci%d", index); in read_bd_addr_complete()
1603 init_adapter(index); in read_bd_addr_complete()
1606 static inline void cs_inquiry_evt(int index, uint8_t status) in cs_inquiry_evt() argument
1613 set_state(index, DISCOV_INQ); in cs_inquiry_evt()
1616 static inline void cmd_status(int index, void *ptr) in cmd_status() argument
1622 cs_inquiry_evt(index, evt->status); in cmd_status()
1625 static void read_scan_complete(int index, uint8_t status, void *ptr) in read_scan_complete() argument
1630 DBG("hci%d status %u", index, status); in read_scan_complete()
1632 adapter = manager_find_adapter_by_id(index); in read_scan_complete()
1641 static int write_class(int index, uint32_t class) in write_class() argument
1643 struct dev_info *dev = &devs[index]; in write_class()
1646 DBG("hci%d class 0x%06x", index, class); in write_class()
1662 static int hciops_set_limited_discoverable(int index, gboolean limited) in hciops_set_limited_discoverable() argument
1664 struct dev_info *dev = &devs[index]; in hciops_set_limited_discoverable()
1669 DBG("hci%d limited %d", index, limited); in hciops_set_limited_discoverable()
1693 return write_class(index, dev->wanted_cod); in hciops_set_limited_discoverable()
1696 static void write_class_complete(int index, uint8_t status) in write_class_complete() argument
1698 struct dev_info *dev = &devs[index]; in write_class_complete()
1714 update_ext_inquiry_response(index); in write_class_complete()
1721 hciops_set_limited_discoverable(index, TRUE); in write_class_complete()
1724 hciops_set_limited_discoverable(index, FALSE); in write_class_complete()
1726 write_class(index, dev->wanted_cod); in write_class_complete()
1729 static void read_local_oob_data_complete(int index, uint8_t status, in read_local_oob_data_complete() argument
1732 struct btd_adapter *adapter = manager_find_adapter_by_id(index); in read_local_oob_data_complete()
1743 static inline void inquiry_complete_evt(int index, uint8_t status) in inquiry_complete_evt() argument
1753 adapter = manager_find_adapter_by_id(index); in inquiry_complete_evt()
1759 adapter_type = get_adapter_type(index); in inquiry_complete_evt()
1763 int err = hciops_start_scanning(index, TIMEOUT_BR_LE_SCAN); in inquiry_complete_evt()
1765 set_state(index, DISCOV_HALTED); in inquiry_complete_evt()
1767 set_state(index, DISCOV_HALTED); in inquiry_complete_evt()
1771 static inline void cc_inquiry_cancel(int index, uint8_t status) in cc_inquiry_cancel() argument
1778 set_state(index, DISCOV_HALTED); in cc_inquiry_cancel()
1781 static inline void cc_le_set_scan_enable(int index, uint8_t status) in cc_le_set_scan_enable() argument
1790 state = get_state(index); in cc_le_set_scan_enable()
1792 set_state(index, DISCOV_HALTED); in cc_le_set_scan_enable()
1794 set_state(index, DISCOV_SCAN); in cc_le_set_scan_enable()
1797 static inline void cmd_complete(int index, void *ptr) in cmd_complete() argument
1799 struct dev_info *dev = &devs[index]; in cmd_complete()
1807 read_local_version_complete(index, ptr); in cmd_complete()
1811 read_local_features_complete(index, ptr); in cmd_complete()
1815 read_local_ext_features_complete(index, ptr); in cmd_complete()
1819 read_bd_addr_complete(index, ptr); in cmd_complete()
1822 cc_inquiry_cancel(index, status); in cmd_complete()
1825 write_le_host_complete(index, status); in cmd_complete()
1828 cc_le_set_scan_enable(index, status); in cmd_complete()
1841 read_scan_complete(index, status, ptr); in cmd_complete()
1844 write_class_complete(index, status); in cmd_complete()
1853 read_simple_pairing_mode_complete(index, ptr); in cmd_complete()
1857 read_local_name_complete(index, ptr); in cmd_complete()
1862 read_tx_power_complete(index, ptr); in cmd_complete()
1866 read_local_oob_data_complete(index, status, ptr); in cmd_complete()
1871 static inline void remote_name_information(int index, void *ptr) in remote_name_information() argument
1873 struct dev_info *dev = &devs[index]; in remote_name_information()
1877 DBG("hci%d status %u", index, evt->status); in remote_name_information()
1887 static inline void remote_version_information(int index, void *ptr) in remote_version_information() argument
1889 struct dev_info *dev = &devs[index]; in remote_version_information()
1893 DBG("hci%d status %u", index, evt->status); in remote_version_information()
1907 static inline void inquiry_result(int index, int plen, void *ptr) in inquiry_result() argument
1909 struct dev_info *dev = &devs[index]; in inquiry_result()
1914 if (get_state(index) != DISCOV_INQ) in inquiry_result()
1929 static inline void inquiry_result_with_rssi(int index, int plen, void *ptr) in inquiry_result_with_rssi() argument
1931 struct dev_info *dev = &devs[index]; in inquiry_result_with_rssi()
1963 static inline void extended_inquiry_result(int index, int plen, void *ptr) in extended_inquiry_result() argument
1965 struct dev_info *dev = &devs[index]; in extended_inquiry_result()
1981 static inline void remote_features_information(int index, void *ptr) in remote_features_information() argument
1983 struct dev_info *dev = &devs[index]; in remote_features_information()
1987 DBG("hci%d status %u", index, evt->status); in remote_features_information()
2000 int index; member
2007 struct dev_info *dev = &devs[req->index]; in __get_remote_version()
2010 DBG("hci%d handle %u", req->index, req->handle); in __get_remote_version()
2021 static void get_remote_version(int index, uint16_t handle) in get_remote_version() argument
2027 req->index = index; in get_remote_version()
2043 static inline void conn_failed(int index, bdaddr_t *bdaddr, uint8_t status) in conn_failed() argument
2045 struct dev_info *dev = &devs[index]; in conn_failed()
2061 static inline void conn_complete(int index, void *ptr) in conn_complete() argument
2063 struct dev_info *dev = &devs[index]; in conn_complete()
2075 conn_failed(index, &evt->bdaddr, evt->status); in conn_complete()
2096 get_remote_version(index, btohs(evt->handle)); in conn_complete()
2101 static inline void le_conn_complete(int index, void *ptr) in le_conn_complete() argument
2103 struct dev_info *dev = &devs[index]; in le_conn_complete()
2129 get_remote_version(index, btohs(evt->handle)); in le_conn_complete()
2134 static inline void disconn_complete(int index, void *ptr) in disconn_complete() argument
2136 struct dev_info *dev = &devs[index]; in disconn_complete()
2156 static inline void auth_complete(int index, void *ptr) in auth_complete() argument
2158 struct dev_info *dev = &devs[index]; in auth_complete()
2162 DBG("hci%d status %u", index, evt->status); in auth_complete()
2171 static inline void simple_pairing_complete(int index, void *ptr) in simple_pairing_complete() argument
2173 struct dev_info *dev = &devs[index]; in simple_pairing_complete()
2176 DBG("hci%d status %u", index, evt->status); in simple_pairing_complete()
2182 static inline void conn_request(int index, void *ptr) in conn_request() argument
2184 struct dev_info *dev = &devs[index]; in conn_request()
2192 static inline void le_advertising_report(int index, evt_le_meta_event *meta) in le_advertising_report() argument
2194 struct dev_info *dev = &devs[index]; in le_advertising_report()
2224 static inline void le_metaevent(int index, void *ptr) in le_metaevent() argument
2228 DBG("hci%d LE Meta Event %u", index, meta->subevent); in le_metaevent()
2232 le_advertising_report(index, meta); in le_metaevent()
2236 le_conn_complete(index, meta->data); in le_metaevent()
2241 static void stop_hci_dev(int index) in stop_hci_dev() argument
2243 struct dev_info *dev = &devs[index]; in stop_hci_dev()
2248 info("Stopping hci%d event socket", index); in stop_hci_dev()
2270 init_dev_info(index, -1, dev->registered, dev->already_up); in stop_hci_dev()
2277 int type, index = GPOINTER_TO_INT(data); in io_security_event() local
2278 struct dev_info *dev = &devs[index]; in io_security_event()
2286 stop_hci_dev(index); in io_security_event()
2296 stop_hci_dev(index); in io_security_event()
2309 if (hci_devinfo(index, &di) == 0) { in io_security_event()
2318 cmd_status(index, ptr); in io_security_event()
2322 cmd_complete(index, ptr); in io_security_event()
2326 remote_name_information(index, ptr); in io_security_event()
2330 remote_version_information(index, ptr); in io_security_event()
2334 remote_features_information(index, ptr); in io_security_event()
2338 remote_features_notify(index, ptr); in io_security_event()
2343 inquiry_complete_evt(index, evt->status); in io_security_event()
2347 inquiry_result(index, eh->plen, ptr); in io_security_event()
2351 inquiry_result_with_rssi(index, eh->plen, ptr); in io_security_event()
2355 extended_inquiry_result(index, eh->plen, ptr); in io_security_event()
2359 conn_complete(index, ptr); in io_security_event()
2363 disconn_complete(index, ptr); in io_security_event()
2367 auth_complete(index, ptr); in io_security_event()
2371 simple_pairing_complete(index, ptr); in io_security_event()
2375 conn_request(index, ptr); in io_security_event()
2378 le_metaevent(index, ptr); in io_security_event()
2381 pin_code_request(index, (bdaddr_t *) ptr); in io_security_event()
2385 link_key_request(index, (bdaddr_t *) ptr); in io_security_event()
2389 link_key_notify(index, ptr); in io_security_event()
2393 return_link_keys(index, ptr); in io_security_event()
2397 io_capa_request(index, ptr); in io_security_event()
2401 io_capa_response(index, ptr); in io_security_event()
2405 user_confirm_request(index, ptr); in io_security_event()
2409 user_passkey_request(index, ptr); in io_security_event()
2413 user_passkey_notify(index, ptr); in io_security_event()
2417 remote_oob_data_request(index, (bdaddr_t *) ptr); in io_security_event()
2424 static void start_hci_dev(int index) in start_hci_dev() argument
2426 struct dev_info *dev = &devs[index]; in start_hci_dev()
2434 info("Listening for HCI events on hci%d", index); in start_hci_dev()
2468 index, strerror(errno), errno); in start_hci_dev()
2476 GINT_TO_POINTER(index), NULL); in start_hci_dev()
2510 static void device_devup_setup(int index) in device_devup_setup() argument
2512 struct dev_info *dev = &devs[index]; in device_devup_setup()
2516 DBG("hci%d", index); in device_devup_setup()
2518 if (hci_devinfo(index, &di) < 0) in device_devup_setup()
2542 init_adapter(index); in device_devup_setup()
2545 static void init_pending(int index) in init_pending() argument
2547 struct dev_info *dev = &devs[index]; in init_pending()
2555 static struct dev_info *init_device(int index, gboolean already_up) in init_device() argument
2562 DBG("hci%d", index); in init_device()
2564 dd = hci_open_dev(index); in init_device()
2566 error("Unable to open hci%d: %s (%d)", index, in init_device()
2571 if (index > max_dev) { in init_device()
2572 max_dev = index; in init_device()
2576 dev = init_dev_info(index, dd, FALSE, already_up); in init_device()
2577 init_pending(index); in init_device()
2578 start_hci_dev(index); in init_device()
2592 index, strerror(errno), errno); in init_device()
2599 dr.dev_id = index; in init_device()
2605 index, strerror(errno), errno); in init_device()
2608 if (ioctl(dd, HCIDEVUP, index) < 0 && errno != EALREADY) { in init_device()
2610 index, strerror(errno), errno); in init_device()
2622 static void init_conn_list(int index) in init_conn_list() argument
2624 struct dev_info *dev = &devs[index]; in init_conn_list()
2629 DBG("hci%d", index); in init_conn_list()
2633 cl->dev_id = index; in init_conn_list()
2657 static void device_event(int event, int index) in device_event() argument
2661 info("HCI dev %d registered", index); in device_event()
2662 init_device(index, FALSE); in device_event()
2666 info("HCI dev %d unregistered", index); in device_event()
2667 stop_hci_dev(index); in device_event()
2668 if (devs[index].registered) in device_event()
2669 btd_manager_unregister_adapter(index); in device_event()
2673 info("HCI dev %d up", index); in device_event()
2674 devs[index].up = TRUE; in device_event()
2675 device_devup_setup(index); in device_event()
2679 info("HCI dev %d down", index); in device_event()
2680 devs[index].up = FALSE; in device_event()
2681 devs[index].pending_cod = 0; in device_event()
2682 devs[index].cache_enable = TRUE; in device_event()
2683 if (!devs[index].pending) { in device_event()
2686 adapter = manager_find_adapter_by_id(index); in device_event()
2690 init_pending(index); in device_event()
2895 static int hciops_set_powered(int index, gboolean powered) in hciops_set_powered() argument
2897 struct dev_info *dev = &devs[index]; in hciops_set_powered()
2900 DBG("hci%d powered %d", index, powered); in hciops_set_powered()
2903 return hciops_power_off(index); in hciops_set_powered()
2905 if (ioctl(dev->sk, HCIDEVUP, index) == 0) in hciops_set_powered()
2913 index, strerror(-err), -err); in hciops_set_powered()
2918 static int hciops_set_dev_class(int index, uint8_t major, uint8_t minor) in hciops_set_dev_class() argument
2920 struct dev_info *dev = &devs[index]; in hciops_set_dev_class()
2923 DBG("hci%d major %u minor %u", index, major, minor); in hciops_set_dev_class()
2936 err = write_class(index, dev->wanted_cod); in hciops_set_dev_class()
2944 static int hciops_start_inquiry(int index, uint8_t length) in hciops_start_inquiry() argument
2946 struct dev_info *dev = &devs[index]; in hciops_start_inquiry()
2950 DBG("hci%d length %u", index, length); in hciops_start_inquiry()
2964 static int le_set_scan_enable(int index, uint8_t enable) in le_set_scan_enable() argument
2966 struct dev_info *dev = &devs[index]; in le_set_scan_enable()
2969 DBG("hci%d enable %u", index, enable); in le_set_scan_enable()
2996 static int hciops_start_scanning(int index, int timeout) in hciops_start_scanning() argument
2998 struct dev_info *dev = &devs[index]; in hciops_start_scanning()
3002 DBG("hci%d", index); in hciops_start_scanning()
3017 err = le_set_scan_enable(index, 1); in hciops_start_scanning()
3027 static int hciops_stop_scanning(int index) in hciops_stop_scanning() argument
3029 struct dev_info *dev = &devs[index]; in hciops_stop_scanning()
3031 DBG("hci%d", index); in hciops_stop_scanning()
3038 return le_set_scan_enable(index, 0); in hciops_stop_scanning()
3041 static int hciops_resolve_name(int index, bdaddr_t *bdaddr) in hciops_resolve_name() argument
3043 struct dev_info *dev = &devs[index]; in hciops_resolve_name()
3048 DBG("hci%d dba %s", index, addr); in hciops_resolve_name()
3061 static int hciops_set_name(int index, const char *name) in hciops_set_name() argument
3063 struct dev_info *dev = &devs[index]; in hciops_set_name()
3066 DBG("hci%d, name %s", index, name); in hciops_set_name()
3076 update_ext_inquiry_response(index); in hciops_set_name()
3081 static int hciops_cancel_resolve_name(int index, bdaddr_t *bdaddr) in hciops_cancel_resolve_name() argument
3083 struct dev_info *dev = &devs[index]; in hciops_cancel_resolve_name()
3088 DBG("hci%d dba %s", index, addr); in hciops_cancel_resolve_name()
3100 static int hciops_start_discovery(int index) in hciops_start_discovery() argument
3102 int adapter_type = get_adapter_type(index); in hciops_start_discovery()
3106 return hciops_start_inquiry(index, LENGTH_BR_LE_INQ); in hciops_start_discovery()
3108 return hciops_start_inquiry(index, LENGTH_BR_INQ); in hciops_start_discovery()
3110 return hciops_start_scanning(index, TIMEOUT_LE_SCAN); in hciops_start_discovery()
3116 static int hciops_stop_discovery(int index) in hciops_stop_discovery() argument
3118 struct dev_info *dev = &devs[index]; in hciops_stop_discovery()
3120 DBG("index %d", index); in hciops_stop_discovery()
3124 return hciops_stop_inquiry(index); in hciops_stop_discovery()
3126 return hciops_stop_scanning(index); in hciops_stop_discovery()
3132 static int hciops_fast_connectable(int index, gboolean enable) in hciops_fast_connectable() argument
3134 struct dev_info *dev = &devs[index]; in hciops_fast_connectable()
3138 DBG("hci%d enable %d", index, enable); in hciops_fast_connectable()
3160 static int hciops_read_clock(int index, bdaddr_t *bdaddr, int which, in hciops_read_clock() argument
3164 struct dev_info *dev = &devs[index]; in hciops_read_clock()
3170 DBG("hci%d addr %s which %d timeout %d", index, addr, which, timeout); in hciops_read_clock()
3172 ret = get_handle(index, bdaddr, &handle); in hciops_read_clock()
3183 static int hciops_read_bdaddr(int index, bdaddr_t *bdaddr) in hciops_read_bdaddr() argument
3185 struct dev_info *dev = &devs[index]; in hciops_read_bdaddr()
3187 DBG("hci%d", index); in hciops_read_bdaddr()
3194 static int hciops_block_device(int index, bdaddr_t *bdaddr) in hciops_block_device() argument
3196 struct dev_info *dev = &devs[index]; in hciops_block_device()
3200 DBG("hci%d dba %s", index, addr); in hciops_block_device()
3208 static int hciops_unblock_device(int index, bdaddr_t *bdaddr) in hciops_unblock_device() argument
3210 struct dev_info *dev = &devs[index]; in hciops_unblock_device()
3214 DBG("hci%d dba %s", index, addr); in hciops_unblock_device()
3222 static int hciops_get_conn_list(int index, GSList **conns) in hciops_get_conn_list() argument
3224 struct dev_info *dev = &devs[index]; in hciops_get_conn_list()
3227 DBG("hci%d", index); in hciops_get_conn_list()
3241 static int hciops_read_local_features(int index, uint8_t *features) in hciops_read_local_features() argument
3243 struct dev_info *dev = &devs[index]; in hciops_read_local_features()
3245 DBG("hci%d", index); in hciops_read_local_features()
3252 static int hciops_disconnect(int index, bdaddr_t *bdaddr) in hciops_disconnect() argument
3254 DBG("hci%d", index); in hciops_disconnect()
3256 return disconnect_addr(index, bdaddr, HCI_OE_USER_ENDED_CONNECTION); in hciops_disconnect()
3259 static int hciops_remove_bonding(int index, bdaddr_t *bdaddr) in hciops_remove_bonding() argument
3261 struct dev_info *dev = &devs[index]; in hciops_remove_bonding()
3267 DBG("hci%d dba %s", index, addr); in hciops_remove_bonding()
3286 static int hciops_pincode_reply(int index, bdaddr_t *bdaddr, const char *pin, in hciops_pincode_reply() argument
3289 struct dev_info *dev = &devs[index]; in hciops_pincode_reply()
3294 DBG("hci%d dba %s", index, addr); in hciops_pincode_reply()
3318 static int hciops_passkey_reply(int index, bdaddr_t *bdaddr, uint32_t passkey) in hciops_passkey_reply() argument
3320 struct dev_info *dev = &devs[index]; in hciops_passkey_reply()
3325 DBG("hci%d dba %s", index, addr); in hciops_passkey_reply()
3347 static int hciops_enable_le(int index) in hciops_enable_le() argument
3349 struct dev_info *dev = &devs[index]; in hciops_enable_le()
3352 DBG("hci%d", index); in hciops_enable_le()
3368 static uint8_t generate_service_class(int index) in generate_service_class() argument
3370 struct dev_info *dev = &devs[index]; in generate_service_class()
3383 static int update_service_classes(int index) in update_service_classes() argument
3385 struct dev_info *dev = &devs[index]; in update_service_classes()
3389 value = generate_service_class(index); in update_service_classes()
3391 DBG("hci%d value %u", index, value); in update_service_classes()
3405 update_ext_inquiry_response(index); in update_service_classes()
3411 err = write_class(index, dev->wanted_cod); in update_service_classes()
3419 static int hciops_add_uuid(int index, uuid_t *uuid, uint8_t svc_hint) in hciops_add_uuid() argument
3421 struct dev_info *dev = &devs[index]; in hciops_add_uuid()
3424 DBG("hci%d", index); in hciops_add_uuid()
3432 return update_service_classes(index); in hciops_add_uuid()
3435 static int hciops_remove_uuid(int index, uuid_t *uuid) in hciops_remove_uuid() argument
3437 struct dev_info *dev = &devs[index]; in hciops_remove_uuid()
3446 DBG("hci%d", index); in hciops_remove_uuid()
3448 return update_service_classes(index); in hciops_remove_uuid()
3451 static int hciops_disable_cod_cache(int index) in hciops_disable_cod_cache() argument
3453 struct dev_info *dev = &devs[index]; in hciops_disable_cod_cache()
3455 DBG("hci%d cache_enable %d", index, dev->cache_enable); in hciops_disable_cod_cache()
3460 DBG("hci%d current_cod 0x%06x wanted_cod 0x%06x", index, in hciops_disable_cod_cache()
3468 update_ext_inquiry_response(index); in hciops_disable_cod_cache()
3472 return write_class(index, dev->wanted_cod); in hciops_disable_cod_cache()
3475 static int hciops_restore_powered(int index) in hciops_restore_powered() argument
3477 struct dev_info *dev = &devs[index]; in hciops_restore_powered()
3480 return hciops_power_off(index); in hciops_restore_powered()
3485 static int hciops_load_keys(int index, GSList *keys, gboolean debug_keys) in hciops_load_keys() argument
3487 struct dev_info *dev = &devs[index]; in hciops_load_keys()
3489 DBG("hci%d keys %d debug_keys %d", index, g_slist_length(keys), in hciops_load_keys()
3501 static int hciops_set_io_capability(int index, uint8_t io_capability) in hciops_set_io_capability() argument
3503 struct dev_info *dev = &devs[index]; in hciops_set_io_capability()
3510 static int request_authentication(int index, bdaddr_t *bdaddr) in request_authentication() argument
3512 struct dev_info *dev = &devs[index]; in request_authentication()
3517 DBG("hci%d", index); in request_authentication()
3519 err = get_handle(index, bdaddr, &handle); in request_authentication()
3557 static int hciops_create_bonding(int index, bdaddr_t *bdaddr, uint8_t io_cap) in hciops_create_bonding() argument
3559 struct dev_info *dev = &devs[index]; in hciops_create_bonding()
3596 static int hciops_cancel_bonding(int index, bdaddr_t *bdaddr) in hciops_cancel_bonding() argument
3598 struct dev_info *dev = &devs[index]; in hciops_cancel_bonding()
3601 DBG("hci%d", index); in hciops_cancel_bonding()
3614 static int hciops_read_local_oob_data(int index) in hciops_read_local_oob_data() argument
3616 struct dev_info *dev = &devs[index]; in hciops_read_local_oob_data()
3618 DBG("hci%d", index); in hciops_read_local_oob_data()
3627 static int hciops_add_remote_oob_data(int index, bdaddr_t *bdaddr, in hciops_add_remote_oob_data() argument
3631 struct dev_info *dev = &devs[index]; in hciops_add_remote_oob_data()
3636 DBG("hci%d bdaddr %s", index, addr); in hciops_add_remote_oob_data()
3654 static int hciops_remove_remote_oob_data(int index, bdaddr_t *bdaddr) in hciops_remove_remote_oob_data() argument
3657 struct dev_info *dev = &devs[index]; in hciops_remove_remote_oob_data()
3661 DBG("hci%d bdaddr %s", index, addr); in hciops_remove_remote_oob_data()
3674 static int hciops_set_link_timeout(int index, bdaddr_t *bdaddr, uint32_t num_slots) in hciops_set_link_timeout() argument
3681 DBG("hci%d, addr %s, num_slots %d", index, bdaddr, num_slots); in hciops_set_link_timeout()
3683 dd = hci_open_dev(index); in hciops_set_link_timeout()
3688 handle = get_handle(index, bdaddr, &handle); in hciops_set_link_timeout()
3699 static int hciops_retry_authentication(int index, bdaddr_t *bdaddr) in hciops_retry_authentication() argument
3701 return request_authentication(index, bdaddr); in hciops_retry_authentication()