Lines Matching refs:conn

486 	void (*connect_cfm_cb)	(struct hci_conn *conn, u8 status);
487 void (*security_cfm_cb) (struct hci_conn *conn, u8 status);
488 void (*disconn_cfm_cb) (struct hci_conn *conn, u8 reason);
494 struct hci_conn *conn; member
521 struct hci_conn *conn; member
650 static inline bool hci_conn_ssp_enabled(struct hci_conn *conn) in hci_conn_ssp_enabled() argument
652 struct hci_dev *hdev = conn->hdev; in hci_conn_ssp_enabled()
654 test_bit(HCI_CONN_SSP_ENABLED, &conn->flags); in hci_conn_ssp_enabled()
657 static inline bool hci_conn_sc_enabled(struct hci_conn *conn) in hci_conn_sc_enabled() argument
659 struct hci_dev *hdev = conn->hdev; in hci_conn_sc_enabled()
661 test_bit(HCI_CONN_SC_ENABLED, &conn->flags); in hci_conn_sc_enabled()
861 int hci_disconnect(struct hci_conn *conn, __u8 reason);
862 bool hci_setup_sync(struct hci_conn *conn, __u16 handle);
863 void hci_sco_setup(struct hci_conn *conn, __u8 status);
867 int hci_conn_del(struct hci_conn *conn);
871 struct hci_chan *hci_chan_create(struct hci_conn *conn);
873 void hci_chan_list_flush(struct hci_conn *conn);
886 int hci_conn_check_link_mode(struct hci_conn *conn);
887 int hci_conn_check_secure(struct hci_conn *conn, __u8 sec_level);
888 int hci_conn_security(struct hci_conn *conn, __u8 sec_level, __u8 auth_type,
890 int hci_conn_switch_role(struct hci_conn *conn, __u8 role);
892 void hci_conn_enter_active_mode(struct hci_conn *conn, __u8 force_active);
894 void hci_le_conn_failed(struct hci_conn *conn, u8 status);
917 static inline struct hci_conn *hci_conn_get(struct hci_conn *conn) in hci_conn_get() argument
919 get_device(&conn->dev); in hci_conn_get()
920 return conn; in hci_conn_get()
923 static inline void hci_conn_put(struct hci_conn *conn) in hci_conn_put() argument
925 put_device(&conn->dev); in hci_conn_put()
928 static inline void hci_conn_hold(struct hci_conn *conn) in hci_conn_hold() argument
930 BT_DBG("hcon %p orig refcnt %d", conn, atomic_read(&conn->refcnt)); in hci_conn_hold()
932 atomic_inc(&conn->refcnt); in hci_conn_hold()
933 cancel_delayed_work(&conn->disc_work); in hci_conn_hold()
936 static inline void hci_conn_drop(struct hci_conn *conn) in hci_conn_drop() argument
938 BT_DBG("hcon %p orig refcnt %d", conn, atomic_read(&conn->refcnt)); in hci_conn_drop()
940 if (atomic_dec_and_test(&conn->refcnt)) { in hci_conn_drop()
943 switch (conn->type) { in hci_conn_drop()
946 cancel_delayed_work(&conn->idle_work); in hci_conn_drop()
947 if (conn->state == BT_CONNECTED) { in hci_conn_drop()
948 timeo = conn->disc_timeout; in hci_conn_drop()
949 if (!conn->out) in hci_conn_drop()
957 timeo = conn->disc_timeout; in hci_conn_drop()
965 cancel_delayed_work(&conn->disc_work); in hci_conn_drop()
966 queue_delayed_work(conn->hdev->workqueue, in hci_conn_drop()
967 &conn->disc_work, timeo); in hci_conn_drop()
1050 struct link_key *hci_add_link_key(struct hci_dev *hdev, struct hci_conn *conn,
1096 void hci_conn_init_sysfs(struct hci_conn *conn);
1097 void hci_conn_add_sysfs(struct hci_conn *conn);
1098 void hci_conn_del_sysfs(struct hci_conn *conn);
1162 static inline int hci_proto_disconn_ind(struct hci_conn *conn) in hci_proto_disconn_ind() argument
1164 if (conn->type != ACL_LINK && conn->type != LE_LINK) in hci_proto_disconn_ind()
1167 return l2cap_disconn_ind(conn); in hci_proto_disconn_ind()
1176 void (*connect_cfm) (struct hci_conn *conn, __u8 status);
1177 void (*disconn_cfm) (struct hci_conn *conn, __u8 status);
1178 void (*security_cfm) (struct hci_conn *conn, __u8 status,
1180 void (*key_change_cfm) (struct hci_conn *conn, __u8 status);
1181 void (*role_switch_cfm) (struct hci_conn *conn, __u8 status, __u8 role);
1184 static inline void hci_connect_cfm(struct hci_conn *conn, __u8 status) in hci_connect_cfm() argument
1191 cb->connect_cfm(conn, status); in hci_connect_cfm()
1195 if (conn->connect_cfm_cb) in hci_connect_cfm()
1196 conn->connect_cfm_cb(conn, status); in hci_connect_cfm()
1199 static inline void hci_disconn_cfm(struct hci_conn *conn, __u8 reason) in hci_disconn_cfm() argument
1206 cb->disconn_cfm(conn, reason); in hci_disconn_cfm()
1210 if (conn->disconn_cfm_cb) in hci_disconn_cfm()
1211 conn->disconn_cfm_cb(conn, reason); in hci_disconn_cfm()
1214 static inline void hci_auth_cfm(struct hci_conn *conn, __u8 status) in hci_auth_cfm() argument
1219 if (test_bit(HCI_CONN_ENCRYPT_PEND, &conn->flags)) in hci_auth_cfm()
1222 encrypt = test_bit(HCI_CONN_ENCRYPT, &conn->flags) ? 0x01 : 0x00; in hci_auth_cfm()
1227 cb->security_cfm(conn, status, encrypt); in hci_auth_cfm()
1231 if (conn->security_cfm_cb) in hci_auth_cfm()
1232 conn->security_cfm_cb(conn, status); in hci_auth_cfm()
1235 static inline void hci_encrypt_cfm(struct hci_conn *conn, __u8 status, in hci_encrypt_cfm() argument
1240 if (conn->sec_level == BT_SECURITY_SDP) in hci_encrypt_cfm()
1241 conn->sec_level = BT_SECURITY_LOW; in hci_encrypt_cfm()
1243 if (conn->pending_sec_level > conn->sec_level) in hci_encrypt_cfm()
1244 conn->sec_level = conn->pending_sec_level; in hci_encrypt_cfm()
1249 cb->security_cfm(conn, status, encrypt); in hci_encrypt_cfm()
1253 if (conn->security_cfm_cb) in hci_encrypt_cfm()
1254 conn->security_cfm_cb(conn, status); in hci_encrypt_cfm()
1257 static inline void hci_key_change_cfm(struct hci_conn *conn, __u8 status) in hci_key_change_cfm() argument
1264 cb->key_change_cfm(conn, status); in hci_key_change_cfm()
1269 static inline void hci_role_switch_cfm(struct hci_conn *conn, __u8 status, in hci_role_switch_cfm() argument
1277 cb->role_switch_cfm(conn, status, role); in hci_role_switch_cfm()
1373 void hci_send_sco(struct hci_conn *conn, struct sk_buff *skb);
1440 void mgmt_device_connected(struct hci_dev *hdev, struct hci_conn *conn,
1470 void mgmt_auth_failed(struct hci_conn *conn, u8 status);
1491 void mgmt_smp_complete(struct hci_conn *conn, bool complete);
1493 u8 hci_le_conn_update(struct hci_conn *conn, u16 min, u16 max, u16 latency,
1495 void hci_le_start_enc(struct hci_conn *conn, __le16 ediv, __le64 rand,