Diff between 4c4726d1d57c1588266491a946fe9308e6e84002 and 711b7e30087ffea0b709929291c15a05de99fd26

Changed Files

File Additions Deletions Status
emulator/btdev.c +11 -0 modified

Full Patch

diff --git a/emulator/btdev.c b/emulator/btdev.c
index 8a4b34d..6e7606c 100644
--- a/emulator/btdev.c
+++ b/emulator/btdev.c
@@ -69,6 +69,7 @@ struct btdev {
 
 	uint16_t default_link_policy;
 	uint8_t  event_mask[8];
+	uint8_t  event_mask_page2[8];
 	uint8_t  event_filter;
 	uint8_t  name[248];
 	uint8_t  dev_class[3];
@@ -725,6 +726,7 @@ static void default_cmd(struct btdev *btdev, uint16_t opcode,
 	const struct bt_hci_cmd_write_ext_inquiry_response *weir;
 	const struct bt_hci_cmd_write_simple_pairing_mode *wspm;
 	const struct bt_hci_cmd_write_le_host_supported *wlhs;
+	const struct bt_hci_cmd_set_event_mask_page2 *semp2;
 	const struct bt_hci_cmd_le_set_event_mask *lsem;
 	const struct bt_hci_cmd_le_set_adv_data *lsad;
 	struct bt_hci_rsp_read_default_link_policy rdlp;
@@ -1286,6 +1288,15 @@ static void default_cmd(struct btdev *btdev, uint16_t opcode,
 		cmd_complete(btdev, opcode, &rlai, sizeof(rlai));
 		break;
 
+	case BT_HCI_CMD_SET_EVENT_MASK_PAGE2:
+		if (btdev->type != BTDEV_TYPE_BREDRLE)
+			goto unsupported;
+		semp2 = data;
+		memcpy(btdev->event_mask_page2, semp2->mask, 8);
+		status = BT_HCI_ERR_SUCCESS;
+		cmd_complete(btdev, opcode, &status, sizeof(status));
+		break;
+
 	case BT_HCI_CMD_LE_SET_EVENT_MASK:
 		if (btdev->type == BTDEV_TYPE_BREDR)
 			goto unsupported;