diff --git a/emulator/btdev.c b/emulator/btdev.c
index 7aeb3ed..bbc8ed7 100644
--- a/emulator/btdev.c
+++ b/emulator/btdev.c
bdaddr[5] = 0x00;
}
-static void set_bredr_features(struct btdev *btdev)
+static void set_bredrle_features(struct btdev *btdev)
{
btdev->features[0] |= 0x04; /* Encryption */
btdev->features[0] |= 0x20; /* Role switch */
btdev->features[7] |= 0x80; /* Extended features */
}
+static void set_bredr_features(struct btdev *btdev)
+{
+ btdev->features[0] |= 0x04; /* Encryption */
+ btdev->features[0] |= 0x20; /* Role switch */
+ btdev->features[0] |= 0x80; /* Sniff mode */
+ btdev->features[1] |= 0x08; /* SCO link */
+ btdev->features[3] |= 0x40; /* RSSI with inquiry results */
+ btdev->features[3] |= 0x80; /* Extended SCO link */
+ btdev->features[4] |= 0x08; /* AFH capable slave */
+ btdev->features[4] |= 0x10; /* AFH classification slave */
+ btdev->features[5] |= 0x02; /* Sniff subrating */
+ btdev->features[5] |= 0x04; /* Pause encryption */
+ btdev->features[5] |= 0x08; /* AFH capable master */
+ btdev->features[5] |= 0x10; /* AFH classification master */
+ btdev->features[6] |= 0x01; /* Extended Inquiry Response */
+ btdev->features[6] |= 0x08; /* Secure Simple Pairing */
+ btdev->features[6] |= 0x10; /* Encapsulated PDU */
+ btdev->features[6] |= 0x20; /* Erroneous Data Reporting */
+ btdev->features[6] |= 0x40; /* Non-flushable Packet Boundary Flag */
+ btdev->features[7] |= 0x01; /* Link Supervision Timeout Event */
+ btdev->features[7] |= 0x02; /* Inquiry TX Power Level */
+ btdev->features[7] |= 0x80; /* Extended features */
+}
+
static void set_le_features(struct btdev *btdev)
{
btdev->features[4] |= 0x20; /* BR/EDR Not Supported */
btdev->revision = 0x0000;
switch (btdev->type) {
+ case BTDEV_TYPE_BREDRLE:
+ set_bredrle_features(btdev);
+ break;
case BTDEV_TYPE_BREDR:
set_bredr_features(btdev);
break;
diff --git a/emulator/btdev.h b/emulator/btdev.h
index 5bb535b..ef71a9b 100644
--- a/emulator/btdev.h
+++ b/emulator/btdev.h
void *user_data);
enum btdev_type {
+ BTDEV_TYPE_BREDRLE,
BTDEV_TYPE_BREDR,
BTDEV_TYPE_LE,
BTDEV_TYPE_AMP,