Lines Matching refs:hdev
393 int (*open)(struct hci_dev *hdev);
394 int (*close)(struct hci_dev *hdev);
395 int (*flush)(struct hci_dev *hdev);
396 int (*setup)(struct hci_dev *hdev);
397 int (*shutdown)(struct hci_dev *hdev);
398 int (*send)(struct hci_dev *hdev, struct sk_buff *skb);
399 void (*notify)(struct hci_dev *hdev, unsigned int evt);
400 void (*hw_error)(struct hci_dev *hdev, u8 code);
401 int (*post_init)(struct hci_dev *hdev);
402 int (*set_diag)(struct hci_dev *hdev, bool enable);
403 int (*set_bdaddr)(struct hci_dev *hdev, const bdaddr_t *bdaddr);
479 struct hci_dev *hdev; member
530 #define hci_dev_set_flag(hdev, nr) set_bit((nr), (hdev)->dev_flags) argument
531 #define hci_dev_clear_flag(hdev, nr) clear_bit((nr), (hdev)->dev_flags) argument
532 #define hci_dev_change_flag(hdev, nr) change_bit((nr), (hdev)->dev_flags) argument
533 #define hci_dev_test_flag(hdev, nr) test_bit((nr), (hdev)->dev_flags) argument
534 #define hci_dev_test_and_set_flag(hdev, nr) test_and_set_bit((nr), (hdev)->dev_flags) argument
535 #define hci_dev_test_and_clear_flag(hdev, nr) test_and_clear_bit((nr), (hdev)->dev_flags) argument
536 #define hci_dev_test_and_change_flag(hdev, nr) test_and_change_bit((nr), (hdev)->dev_flags) argument
538 #define hci_dev_clear_volatile_flags(hdev) \ argument
540 hci_dev_clear_flag(hdev, HCI_LE_SCAN); \
541 hci_dev_clear_flag(hdev, HCI_LE_ADV); \
542 hci_dev_clear_flag(hdev, HCI_PERIODIC_INQ); \
546 int l2cap_connect_ind(struct hci_dev *hdev, bdaddr_t *bdaddr);
551 int sco_connect_ind(struct hci_dev *hdev, bdaddr_t *bdaddr, __u8 *flags);
554 static inline int sco_connect_ind(struct hci_dev *hdev, bdaddr_t *bdaddr, in sco_connect_ind() argument
569 static inline void discovery_init(struct hci_dev *hdev) in discovery_init() argument
571 hdev->discovery.state = DISCOVERY_STOPPED; in discovery_init()
572 INIT_LIST_HEAD(&hdev->discovery.all); in discovery_init()
573 INIT_LIST_HEAD(&hdev->discovery.unknown); in discovery_init()
574 INIT_LIST_HEAD(&hdev->discovery.resolve); in discovery_init()
575 hdev->discovery.report_invalid_rssi = true; in discovery_init()
576 hdev->discovery.rssi = HCI_RSSI_INVALID; in discovery_init()
579 static inline void hci_discovery_filter_clear(struct hci_dev *hdev) in hci_discovery_filter_clear() argument
581 hdev->discovery.result_filtering = false; in hci_discovery_filter_clear()
582 hdev->discovery.report_invalid_rssi = true; in hci_discovery_filter_clear()
583 hdev->discovery.rssi = HCI_RSSI_INVALID; in hci_discovery_filter_clear()
584 hdev->discovery.uuid_count = 0; in hci_discovery_filter_clear()
585 kfree(hdev->discovery.uuids); in hci_discovery_filter_clear()
586 hdev->discovery.uuids = NULL; in hci_discovery_filter_clear()
587 hdev->discovery.scan_start = 0; in hci_discovery_filter_clear()
588 hdev->discovery.scan_duration = 0; in hci_discovery_filter_clear()
591 bool hci_discovery_active(struct hci_dev *hdev);
593 void hci_discovery_set_state(struct hci_dev *hdev, int state);
595 static inline int inquiry_cache_empty(struct hci_dev *hdev) in inquiry_cache_empty() argument
597 return list_empty(&hdev->discovery.all); in inquiry_cache_empty()
600 static inline long inquiry_cache_age(struct hci_dev *hdev) in inquiry_cache_age() argument
602 struct discovery_state *c = &hdev->discovery; in inquiry_cache_age()
611 struct inquiry_entry *hci_inquiry_cache_lookup(struct hci_dev *hdev,
613 struct inquiry_entry *hci_inquiry_cache_lookup_unknown(struct hci_dev *hdev,
615 struct inquiry_entry *hci_inquiry_cache_lookup_resolve(struct hci_dev *hdev,
618 void hci_inquiry_cache_update_resolve(struct hci_dev *hdev,
620 u32 hci_inquiry_cache_update(struct hci_dev *hdev, struct inquiry_data *data,
622 void hci_inquiry_cache_flush(struct hci_dev *hdev);
652 struct hci_dev *hdev = conn->hdev; in hci_conn_ssp_enabled() local
653 return hci_dev_test_flag(hdev, HCI_SSP_ENABLED) && in hci_conn_ssp_enabled()
659 struct hci_dev *hdev = conn->hdev; in hci_conn_sc_enabled() local
660 return hci_dev_test_flag(hdev, HCI_SC_ENABLED) && in hci_conn_sc_enabled()
664 static inline void hci_conn_hash_add(struct hci_dev *hdev, struct hci_conn *c) in hci_conn_hash_add() argument
666 struct hci_conn_hash *h = &hdev->conn_hash; in hci_conn_hash_add()
687 static inline void hci_conn_hash_del(struct hci_dev *hdev, struct hci_conn *c) in hci_conn_hash_del() argument
689 struct hci_conn_hash *h = &hdev->conn_hash; in hci_conn_hash_del()
713 static inline unsigned int hci_conn_num(struct hci_dev *hdev, __u8 type) in hci_conn_num() argument
715 struct hci_conn_hash *h = &hdev->conn_hash; in hci_conn_num()
731 static inline unsigned int hci_conn_count(struct hci_dev *hdev) in hci_conn_count() argument
733 struct hci_conn_hash *c = &hdev->conn_hash; in hci_conn_count()
738 static inline __u8 hci_conn_lookup_type(struct hci_dev *hdev, __u16 handle) in hci_conn_lookup_type() argument
740 struct hci_conn_hash *h = &hdev->conn_hash; in hci_conn_lookup_type()
758 static inline struct hci_conn *hci_conn_hash_lookup_handle(struct hci_dev *hdev, in hci_conn_hash_lookup_handle() argument
761 struct hci_conn_hash *h = &hdev->conn_hash; in hci_conn_hash_lookup_handle()
777 static inline struct hci_conn *hci_conn_hash_lookup_ba(struct hci_dev *hdev, in hci_conn_hash_lookup_ba() argument
780 struct hci_conn_hash *h = &hdev->conn_hash; in hci_conn_hash_lookup_ba()
797 static inline struct hci_conn *hci_conn_hash_lookup_le(struct hci_dev *hdev, in hci_conn_hash_lookup_le() argument
801 struct hci_conn_hash *h = &hdev->conn_hash; in hci_conn_hash_lookup_le()
821 static inline struct hci_conn *hci_conn_hash_lookup_state(struct hci_dev *hdev, in hci_conn_hash_lookup_state() argument
824 struct hci_conn_hash *h = &hdev->conn_hash; in hci_conn_hash_lookup_state()
841 static inline struct hci_conn *hci_lookup_le_connect(struct hci_dev *hdev) in hci_lookup_le_connect() argument
843 struct hci_conn_hash *h = &hdev->conn_hash; in hci_lookup_le_connect()
865 struct hci_conn *hci_conn_add(struct hci_dev *hdev, int type, bdaddr_t *dst,
868 void hci_conn_hash_flush(struct hci_dev *hdev);
869 void hci_conn_check_pending(struct hci_dev *hdev);
874 struct hci_chan *hci_chan_lookup_handle(struct hci_dev *hdev, __u16 handle);
876 struct hci_conn *hci_connect_le_scan(struct hci_dev *hdev, bdaddr_t *dst,
879 struct hci_conn *hci_connect_le(struct hci_dev *hdev, bdaddr_t *dst,
882 struct hci_conn *hci_connect_acl(struct hci_dev *hdev, bdaddr_t *dst,
884 struct hci_conn *hci_connect_sco(struct hci_dev *hdev, int type, bdaddr_t *dst,
966 queue_delayed_work(conn->hdev->workqueue, in hci_conn_drop()
995 static inline void *hci_get_drvdata(struct hci_dev *hdev) in hci_get_drvdata() argument
997 return dev_get_drvdata(&hdev->dev); in hci_get_drvdata()
1000 static inline void hci_set_drvdata(struct hci_dev *hdev, void *data) in hci_set_drvdata() argument
1002 dev_set_drvdata(&hdev->dev, data); in hci_set_drvdata()
1009 void hci_free_dev(struct hci_dev *hdev);
1010 int hci_register_dev(struct hci_dev *hdev);
1011 void hci_unregister_dev(struct hci_dev *hdev);
1012 int hci_suspend_dev(struct hci_dev *hdev);
1013 int hci_resume_dev(struct hci_dev *hdev);
1014 int hci_reset_dev(struct hci_dev *hdev);
1017 int hci_dev_do_close(struct hci_dev *hdev);
1024 int hci_get_conn_info(struct hci_dev *hdev, void __user *arg);
1025 int hci_get_auth_info(struct hci_dev *hdev, void __user *arg);
1034 struct hci_conn_params *hci_conn_params_lookup(struct hci_dev *hdev,
1036 struct hci_conn_params *hci_conn_params_add(struct hci_dev *hdev,
1038 void hci_conn_params_del(struct hci_dev *hdev, bdaddr_t *addr, u8 addr_type);
1039 void hci_conn_params_clear_all(struct hci_dev *hdev);
1040 void hci_conn_params_clear_disabled(struct hci_dev *hdev);
1046 void hci_uuids_clear(struct hci_dev *hdev);
1048 void hci_link_keys_clear(struct hci_dev *hdev);
1049 struct link_key *hci_find_link_key(struct hci_dev *hdev, bdaddr_t *bdaddr);
1050 struct link_key *hci_add_link_key(struct hci_dev *hdev, struct hci_conn *conn,
1053 struct smp_ltk *hci_add_ltk(struct hci_dev *hdev, bdaddr_t *bdaddr,
1056 struct smp_ltk *hci_find_ltk(struct hci_dev *hdev, bdaddr_t *bdaddr,
1058 int hci_remove_ltk(struct hci_dev *hdev, bdaddr_t *bdaddr, u8 bdaddr_type);
1059 void hci_smp_ltks_clear(struct hci_dev *hdev);
1060 int hci_remove_link_key(struct hci_dev *hdev, bdaddr_t *bdaddr);
1062 struct smp_irk *hci_find_irk_by_rpa(struct hci_dev *hdev, bdaddr_t *rpa);
1063 struct smp_irk *hci_find_irk_by_addr(struct hci_dev *hdev, bdaddr_t *bdaddr,
1065 struct smp_irk *hci_add_irk(struct hci_dev *hdev, bdaddr_t *bdaddr,
1067 void hci_remove_irk(struct hci_dev *hdev, bdaddr_t *bdaddr, u8 addr_type);
1068 void hci_smp_irks_clear(struct hci_dev *hdev);
1070 bool hci_bdaddr_is_paired(struct hci_dev *hdev, bdaddr_t *bdaddr, u8 type);
1072 void hci_remote_oob_data_clear(struct hci_dev *hdev);
1073 struct oob_data *hci_find_remote_oob_data(struct hci_dev *hdev,
1075 int hci_add_remote_oob_data(struct hci_dev *hdev, bdaddr_t *bdaddr,
1078 int hci_remove_remote_oob_data(struct hci_dev *hdev, bdaddr_t *bdaddr,
1081 void hci_adv_instances_clear(struct hci_dev *hdev);
1082 struct adv_info *hci_find_adv_instance(struct hci_dev *hdev, u8 instance);
1083 struct adv_info *hci_get_next_instance(struct hci_dev *hdev, u8 instance);
1084 int hci_add_adv_instance(struct hci_dev *hdev, u8 instance, u32 flags,
1088 int hci_remove_adv_instance(struct hci_dev *hdev, u8 instance);
1090 void hci_event_packet(struct hci_dev *hdev, struct sk_buff *skb);
1092 int hci_recv_frame(struct hci_dev *hdev, struct sk_buff *skb);
1093 int hci_recv_diag(struct hci_dev *hdev, struct sk_buff *skb);
1095 void hci_init_sysfs(struct hci_dev *hdev);
1100 #define SET_HCIDEV_DEV(hdev, pdev) ((hdev)->dev.parent = (pdev)) argument
1145 static inline int hci_proto_connect_ind(struct hci_dev *hdev, bdaddr_t *bdaddr, in hci_proto_connect_ind() argument
1150 return l2cap_connect_ind(hdev, bdaddr); in hci_proto_connect_ind()
1154 return sco_connect_ind(hdev, bdaddr, flags); in hci_proto_connect_ind()
1332 static inline struct smp_irk *hci_get_irk(struct hci_dev *hdev, in hci_get_irk() argument
1338 return hci_find_irk_by_rpa(hdev, bdaddr); in hci_get_irk()
1365 struct sk_buff *__hci_cmd_sync(struct hci_dev *hdev, u16 opcode, u32 plen,
1367 struct sk_buff *__hci_cmd_sync_ev(struct hci_dev *hdev, u16 opcode, u32 plen,
1370 int hci_send_cmd(struct hci_dev *hdev, __u16 opcode, __u32 plen,
1375 void *hci_sent_cmd_data(struct hci_dev *hdev, __u16 opcode);
1377 struct sk_buff *hci_cmd_sync(struct hci_dev *hdev, u16 opcode, u32 plen,
1381 void hci_send_to_sock(struct hci_dev *hdev, struct sk_buff *skb);
1384 void hci_send_to_monitor(struct hci_dev *hdev, struct sk_buff *skb);
1386 void hci_sock_dev_event(struct hci_dev *hdev, int event);
1394 int (*func) (struct sock *sk, struct hci_dev *hdev, void *data,
1405 void (*hdev_init) (struct sock *sk, struct hci_dev *hdev);
1430 int mgmt_new_settings(struct hci_dev *hdev);
1431 void mgmt_index_added(struct hci_dev *hdev);
1432 void mgmt_index_removed(struct hci_dev *hdev);
1433 void mgmt_set_powered_failed(struct hci_dev *hdev, int err);
1434 int mgmt_powered(struct hci_dev *hdev, u8 powered);
1435 int mgmt_update_adv_data(struct hci_dev *hdev);
1436 void mgmt_discoverable_timeout(struct hci_dev *hdev);
1437 void mgmt_adv_timeout_expired(struct hci_dev *hdev);
1438 void mgmt_new_link_key(struct hci_dev *hdev, struct link_key *key,
1440 void mgmt_device_connected(struct hci_dev *hdev, struct hci_conn *conn,
1442 void mgmt_device_disconnected(struct hci_dev *hdev, bdaddr_t *bdaddr,
1445 void mgmt_disconnect_failed(struct hci_dev *hdev, bdaddr_t *bdaddr,
1447 void mgmt_connect_failed(struct hci_dev *hdev, bdaddr_t *bdaddr, u8 link_type,
1449 void mgmt_pin_code_request(struct hci_dev *hdev, bdaddr_t *bdaddr, u8 secure);
1450 void mgmt_pin_code_reply_complete(struct hci_dev *hdev, bdaddr_t *bdaddr,
1452 void mgmt_pin_code_neg_reply_complete(struct hci_dev *hdev, bdaddr_t *bdaddr,
1454 int mgmt_user_confirm_request(struct hci_dev *hdev, bdaddr_t *bdaddr,
1457 int mgmt_user_confirm_reply_complete(struct hci_dev *hdev, bdaddr_t *bdaddr,
1459 int mgmt_user_confirm_neg_reply_complete(struct hci_dev *hdev, bdaddr_t *bdaddr,
1461 int mgmt_user_passkey_request(struct hci_dev *hdev, bdaddr_t *bdaddr,
1463 int mgmt_user_passkey_reply_complete(struct hci_dev *hdev, bdaddr_t *bdaddr,
1465 int mgmt_user_passkey_neg_reply_complete(struct hci_dev *hdev, bdaddr_t *bdaddr,
1467 int mgmt_user_passkey_notify(struct hci_dev *hdev, bdaddr_t *bdaddr,
1471 void mgmt_auth_enable_complete(struct hci_dev *hdev, u8 status);
1472 void mgmt_ssp_enable_complete(struct hci_dev *hdev, u8 enable, u8 status);
1473 void mgmt_set_class_of_dev_complete(struct hci_dev *hdev, u8 *dev_class,
1475 void mgmt_set_local_name_complete(struct hci_dev *hdev, u8 *name, u8 status);
1476 void mgmt_device_found(struct hci_dev *hdev, bdaddr_t *bdaddr, u8 link_type,
1479 void mgmt_remote_name(struct hci_dev *hdev, bdaddr_t *bdaddr, u8 link_type,
1481 void mgmt_discovering(struct hci_dev *hdev, u8 discovering);
1482 bool mgmt_powering_down(struct hci_dev *hdev);
1483 void mgmt_new_ltk(struct hci_dev *hdev, struct smp_ltk *key, bool persistent);
1484 void mgmt_new_irk(struct hci_dev *hdev, struct smp_irk *irk, bool persistent);
1485 void mgmt_new_csrk(struct hci_dev *hdev, struct smp_csrk *csrk,
1487 void mgmt_new_conn_param(struct hci_dev *hdev, bdaddr_t *bdaddr,
1490 void mgmt_reenable_advertising(struct hci_dev *hdev);
1498 void hci_copy_identity_address(struct hci_dev *hdev, bdaddr_t *bdaddr,