Diff between 2515c432f30538500b0ea54faddf86538029c05d and 66e5db602123dbc185fafddcb6d9a9633388fe07

Changed Files

File Additions Deletions Status
emulator/bthost.c +11 -0 modified
emulator/bthost.h +3 -0 modified

Full Patch

diff --git a/emulator/bthost.c b/emulator/bthost.c
index b30999b..1394fca 100644
--- a/emulator/bthost.c
+++ b/emulator/bthost.c
@@ -2069,6 +2069,17 @@ void bthost_hci_connect(struct bthost *bthost, const uint8_t *bdaddr,
 	}
 }
 
+void bthost_hci_disconnect(struct bthost *bthost, uint16_t handle,
+								uint8_t reason)
+{
+	struct bt_hci_cmd_disconnect disc;
+
+	disc.handle = cpu_to_le16(handle);
+	disc.reason = reason;
+
+	send_command(bthost, BT_HCI_CMD_DISCONNECT, &disc, sizeof(disc));
+}
+
 void bthost_write_scan_enable(struct bthost *bthost, uint8_t scan)
 {
 	send_command(bthost, BT_HCI_CMD_WRITE_SCAN_ENABLE, &scan, 1);
diff --git a/emulator/bthost.h b/emulator/bthost.h
index 4a7e2bd..d7d3d8a 100644
--- a/emulator/bthost.h
+++ b/emulator/bthost.h
@@ -52,6 +52,9 @@ void bthost_set_connect_cb(struct bthost *bthost, bthost_new_conn_cb cb,
 void bthost_hci_connect(struct bthost *bthost, const uint8_t *bdaddr,
 							uint8_t addr_type);
 
+void bthost_hci_disconnect(struct bthost *bthost, uint16_t handle,
+								uint8_t reason);
+
 typedef void (*bthost_cid_hook_func_t)(const void *data, uint16_t len,
 							void *user_data);