diff --git a/emulator/btdev.c b/emulator/btdev.c
index b74442e..48a5914 100644
--- a/emulator/btdev.c
+++ b/emulator/btdev.c
uint16_t revision;
uint8_t commands[64];
uint8_t features[8];
+ uint8_t feat_page_2[8];
uint16_t acl_mtu;
uint16_t acl_max_pkt;
uint8_t country_code;
btdev->features[7] |= 0x01; /* Link Supervision Timeout Event */
btdev->features[7] |= 0x02; /* Inquiry TX Power Level */
btdev->features[7] |= 0x80; /* Extended features */
+
+ btdev->feat_page_2[0] |= 0x01; /* CSB - Master Operation */
+ btdev->feat_page_2[0] |= 0x02; /* CSB - Slave Operation */
+ btdev->feat_page_2[0] |= 0x04; /* Synchronization Train */
+ btdev->feat_page_2[0] |= 0x08; /* Synchronization Scan */
+ btdev->feat_page_2[0] |= 0x10; /* Inquiry Response Notification */
}
static void set_bredr_features(struct btdev *btdev)
case 0x00:
rlef.status = BT_HCI_ERR_SUCCESS;
rlef.page = 0x00;
- rlef.max_page = 0x01;
+ rlef.max_page = 0x02;
memcpy(rlef.features, btdev->features, 8);
break;
case 0x01:
rlef.status = BT_HCI_ERR_SUCCESS;
rlef.page = 0x01;
- rlef.max_page = 0x01;
+ rlef.max_page = 0x02;
memset(rlef.features, 0, 8);
if (btdev->simple_pairing_mode)
rlef.features[0] |= 0x01;
if (btdev->le_simultaneous)
rlef.features[0] |= 0x04;
break;
+ case 0x02:
+ rlef.status = BT_HCI_ERR_SUCCESS;
+ rlef.page = 0x02;
+ rlef.max_page = 0x02;
+ memcpy(rlef.features, btdev->feat_page_2, 8);
+ break;
default:
rlef.status = BT_HCI_ERR_INVALID_PARAMETERS;
rlef.page = page;