diff --git a/emulator/btdev.c b/emulator/btdev.c
index 0de273e..fc2fb20 100644
--- a/emulator/btdev.c
+++ b/emulator/btdev.c
btdev->commands[38] |= 0x40; /* LE Read Periodic Adv List Size */
}
-static void set_le_60_commands(struct btdev *btdev)
+static void set_le_52_commands(struct btdev *btdev)
{
btdev->commands[41] |= 0x20; /* LE Read Buffer Size v2 */
btdev->commands[41] |= 0x40; /* LE Read ISO TX Sync */
if (btdev->type >= BTDEV_TYPE_BREDRLE50)
set_le_50_commands(btdev);
- /* Extra LE commands for >= 6.0 adapters */
- if (btdev->type >= BTDEV_TYPE_BREDRLE60)
- set_le_60_commands(btdev);
+ /* Extra LE commands for >= 5.2 adapters */
+ if (btdev->type >= BTDEV_TYPE_BREDRLE52)
+ set_le_52_commands(btdev);
}
static void set_bredrle_commands(struct btdev *btdev)
btdev->le_features[1] |= 0x10; /* LE EXT ADV */
}
- if (btdev->type >= BTDEV_TYPE_BREDRLE60) {
+ if (btdev->type >= BTDEV_TYPE_BREDRLE52) {
btdev->le_features[3] |= 0x10; /* LE CIS Master */
btdev->le_features[3] |= 0x20; /* LE CIS Slave */
btdev->le_features[3] |= 0x40; /* LE ISO Broadcaster */
if (type == BTDEV_TYPE_BREDRLE || type == BTDEV_TYPE_LE ||
type == BTDEV_TYPE_BREDRLE50 ||
- type == BTDEV_TYPE_BREDRLE60) {
+ type == BTDEV_TYPE_BREDRLE52) {
btdev->crypto = bt_crypto_new();
if (!btdev->crypto) {
free(btdev);
switch (btdev->type) {
case BTDEV_TYPE_BREDRLE:
case BTDEV_TYPE_BREDRLE50:
- case BTDEV_TYPE_BREDRLE60:
+ case BTDEV_TYPE_BREDRLE52:
btdev->version = 0x09;
set_bredrle_features(btdev);
set_bredrle_commands(btdev);
case BT_HCI_CMD_READ_LE_HOST_SUPPORTED:
if (btdev->type != BTDEV_TYPE_BREDRLE &&
btdev->type != BTDEV_TYPE_BREDRLE50 &&
- btdev->type != BTDEV_TYPE_BREDRLE60)
+ btdev->type != BTDEV_TYPE_BREDRLE52)
goto unsupported;
rlhs.status = BT_HCI_ERR_SUCCESS;
rlhs.supported = btdev->le_supported;
if (btdev->type != BTDEV_TYPE_BREDRLE &&
btdev->type != BTDEV_TYPE_LE &&
btdev->type != BTDEV_TYPE_BREDRLE50 &&
- btdev->type != BTDEV_TYPE_BREDRLE60)
+ btdev->type != BTDEV_TYPE_BREDRLE52)
goto unsupported;
wlhs = data;
btdev->le_supported = wlhs->supported;
case BT_HCI_CMD_READ_SECURE_CONN_SUPPORT:
if (btdev->type != BTDEV_TYPE_BREDRLE &&
btdev->type != BTDEV_TYPE_BREDRLE50 &&
- btdev->type != BTDEV_TYPE_BREDRLE60)
+ btdev->type != BTDEV_TYPE_BREDRLE52)
goto unsupported;
rscs.status = BT_HCI_ERR_SUCCESS;
rscs.support = btdev->secure_conn_support;
case BT_HCI_CMD_WRITE_SECURE_CONN_SUPPORT:
if (btdev->type != BTDEV_TYPE_BREDRLE &&
btdev->type != BTDEV_TYPE_BREDRLE50 &&
- btdev->type != BTDEV_TYPE_BREDRLE60)
+ btdev->type != BTDEV_TYPE_BREDRLE52)
goto unsupported;
wscs = data;
btdev->secure_conn_support = wscs->support;
case BT_HCI_CMD_READ_LOCAL_OOB_EXT_DATA:
if (btdev->type != BTDEV_TYPE_BREDRLE &&
btdev->type != BTDEV_TYPE_BREDRLE50 &&
- btdev->type != BTDEV_TYPE_BREDRLE60)
+ btdev->type != BTDEV_TYPE_BREDRLE52)
goto unsupported;
rloed.status = BT_HCI_ERR_SUCCESS;
cmd_complete(btdev, opcode, &rloed, sizeof(rloed));
case BT_HCI_CMD_READ_SYNC_TRAIN_PARAMS:
if (btdev->type != BTDEV_TYPE_BREDRLE &&
btdev->type != BTDEV_TYPE_BREDRLE50 &&
- btdev->type != BTDEV_TYPE_BREDRLE60)
+ btdev->type != BTDEV_TYPE_BREDRLE52)
goto unsupported;
rstp.status = BT_HCI_ERR_SUCCESS;
rstp.interval = cpu_to_le16(btdev->sync_train_interval);
if (btdev->type != BTDEV_TYPE_BREDRLE &&
btdev->type != BTDEV_TYPE_BREDR &&
btdev->type != BTDEV_TYPE_BREDRLE50 &&
- btdev->type != BTDEV_TYPE_BREDRLE60)
+ btdev->type != BTDEV_TYPE_BREDRLE52)
goto unsupported;
reks = data;
read_enc_key_size_complete(btdev, le16_to_cpu(reks->handle));
break;
case BT_HCI_CMD_LE_READ_NUM_SUPPORTED_ADV_SETS:
if (btdev->type != BTDEV_TYPE_BREDRLE50 &&
- btdev->type != BTDEV_TYPE_BREDRLE60)
+ btdev->type != BTDEV_TYPE_BREDRLE52)
goto unsupported;
rlrnsas.status = BT_HCI_ERR_SUCCESS;
break;
case BT_HCI_CMD_LE_SET_ADV_SET_RAND_ADDR:
if (btdev->type != BTDEV_TYPE_BREDRLE50 &&
- btdev->type != BTDEV_TYPE_BREDRLE60)
+ btdev->type != BTDEV_TYPE_BREDRLE52)
goto unsupported;
lsasra = data;
break;
case BT_HCI_CMD_LE_SET_EXT_ADV_PARAMS:
if (btdev->type != BTDEV_TYPE_BREDRLE50 &&
- btdev->type != BTDEV_TYPE_BREDRLE60)
+ btdev->type != BTDEV_TYPE_BREDRLE52)
goto unsupported;
if (btdev->le_adv_enable) {
break;
case BT_HCI_CMD_LE_SET_EXT_ADV_ENABLE:
if (btdev->type != BTDEV_TYPE_BREDRLE50 &&
- btdev->type != BTDEV_TYPE_BREDRLE60)
+ btdev->type != BTDEV_TYPE_BREDRLE52)
goto unsupported;
lseae = data;
break;
case BT_HCI_CMD_LE_SET_EXT_ADV_DATA:
if (btdev->type != BTDEV_TYPE_BREDRLE50 &&
- btdev->type != BTDEV_TYPE_BREDRLE60)
+ btdev->type != BTDEV_TYPE_BREDRLE52)
goto unsupported;
lsead = data;
break;
case BT_HCI_CMD_LE_SET_EXT_SCAN_RSP_DATA:
if (btdev->type != BTDEV_TYPE_BREDRLE50 &&
- btdev->type != BTDEV_TYPE_BREDRLE60)
+ btdev->type != BTDEV_TYPE_BREDRLE52)
goto unsupported;
lsesrd = data;
break;
case BT_HCI_CMD_LE_REMOVE_ADV_SET:
if (btdev->type != BTDEV_TYPE_BREDRLE50 &&
- btdev->type != BTDEV_TYPE_BREDRLE60)
+ btdev->type != BTDEV_TYPE_BREDRLE52)
goto unsupported;
status = BT_HCI_ERR_SUCCESS;
break;
case BT_HCI_CMD_LE_CLEAR_ADV_SETS:
if (btdev->type != BTDEV_TYPE_BREDRLE50 &&
- btdev->type != BTDEV_TYPE_BREDRLE60)
+ btdev->type != BTDEV_TYPE_BREDRLE52)
goto unsupported;
status = BT_HCI_ERR_SUCCESS;
break;
case BT_HCI_CMD_LE_SET_EXT_SCAN_PARAMS:
if (btdev->type != BTDEV_TYPE_BREDRLE50 &&
- btdev->type != BTDEV_TYPE_BREDRLE60)
+ btdev->type != BTDEV_TYPE_BREDRLE52)
goto unsupported;
lsesp = data;
break;
case BT_HCI_CMD_LE_SET_EXT_SCAN_ENABLE:
if (btdev->type != BTDEV_TYPE_BREDRLE50 &&
- btdev->type != BTDEV_TYPE_BREDRLE60)
+ btdev->type != BTDEV_TYPE_BREDRLE52)
goto unsupported;
lsese = data;
break;
case BT_HCI_CMD_LE_EXT_CREATE_CONN:
if (btdev->type != BTDEV_TYPE_BREDRLE50 &&
- btdev->type != BTDEV_TYPE_BREDRLE60)
+ btdev->type != BTDEV_TYPE_BREDRLE52)
goto unsupported;
cmd_status(btdev, BT_HCI_ERR_SUCCESS, opcode);
break;
case BT_HCI_CMD_LE_READ_BUFFER_SIZE_V2:
- if (btdev->type != BTDEV_TYPE_BREDRLE60)
+ if (btdev->type != BTDEV_TYPE_BREDRLE52)
goto unsupported;
lrbsv2.status = BT_HCI_ERR_SUCCESS;
lrbsv2.acl_mtu = cpu_to_le16(btdev->acl_mtu);
break;
case BT_HCI_CMD_LE_SET_CIG_PARAMS:
- if (btdev->type != BTDEV_TYPE_BREDRLE60)
+ if (btdev->type != BTDEV_TYPE_BREDRLE52)
goto unsupported;
memcpy(&btdev->le_cig, data, len);
lscp.params.status = BT_HCI_ERR_SUCCESS;
break;
case BT_HCI_CMD_LE_CREATE_CIS:
- if (btdev->type != BTDEV_TYPE_BREDRLE60)
+ if (btdev->type != BTDEV_TYPE_BREDRLE52)
goto unsupported;
cmd_status(btdev, BT_HCI_ERR_SUCCESS, opcode);
break;
case BT_HCI_CMD_LE_ACCEPT_CIS:
- if (btdev->type != BTDEV_TYPE_BREDRLE60)
+ if (btdev->type != BTDEV_TYPE_BREDRLE52)
goto unsupported;
cmd_status(btdev, BT_HCI_ERR_SUCCESS, opcode);
break;
case BT_HCI_CMD_LE_REJECT_CIS:
- if (btdev->type != BTDEV_TYPE_BREDRLE60)
+ if (btdev->type != BTDEV_TYPE_BREDRLE52)
goto unsupported;
cmd_status(btdev, BT_HCI_ERR_SUCCESS, opcode);
break;
case BT_HCI_CMD_LE_SET_EXT_SCAN_ENABLE:
if (btdev->type != BTDEV_TYPE_BREDRLE50 &&
- btdev->type != BTDEV_TYPE_BREDRLE60)
+ btdev->type != BTDEV_TYPE_BREDRLE52)
return;
lsese = data;
if (btdev->le_scan_enable && lsese->enable)
break;
case BT_HCI_CMD_LE_EXT_CREATE_CONN:
if (btdev->type != BTDEV_TYPE_BREDRLE50 &&
- btdev->type != BTDEV_TYPE_BREDRLE60)
+ btdev->type != BTDEV_TYPE_BREDRLE52)
return;
leecc = data;
btdev->le_scan_own_addr_type = leecc->own_addr_type;
break;
case BT_HCI_CMD_LE_CREATE_CIS:
if (btdev->type != BTDEV_TYPE_BREDRLE50 &&
- btdev->type != BTDEV_TYPE_BREDRLE60)
+ btdev->type != BTDEV_TYPE_BREDRLE52)
return;
leccis = data;
le_cis_request(btdev, leccis);
diff --git a/emulator/btdev.h b/emulator/btdev.h
index b535930..a9f71b2 100644
--- a/emulator/btdev.h
+++ b/emulator/btdev.h
BTDEV_TYPE_AMP,
BTDEV_TYPE_BREDR20,
BTDEV_TYPE_BREDRLE50,
- BTDEV_TYPE_BREDRLE60,
+ BTDEV_TYPE_BREDRLE52,
};
enum btdev_hook_type {
diff --git a/emulator/hciemu.c b/emulator/hciemu.c
index 23891a2..ac861cc 100644
--- a/emulator/hciemu.c
+++ b/emulator/hciemu.c
case HCIEMU_TYPE_BREDRLE50:
hciemu->btdev_type = BTDEV_TYPE_BREDRLE50;
break;
- case HCIEMU_TYPE_BREDRLE60:
- hciemu->btdev_type = BTDEV_TYPE_BREDRLE60;
+ case HCIEMU_TYPE_BREDRLE52:
+ hciemu->btdev_type = BTDEV_TYPE_BREDRLE52;
break;
default:
return NULL;
diff --git a/emulator/hciemu.h b/emulator/hciemu.h
index 6f651cb..4c8858b 100644
--- a/emulator/hciemu.h
+++ b/emulator/hciemu.h
HCIEMU_TYPE_LE,
HCIEMU_TYPE_LEGACY,
HCIEMU_TYPE_BREDRLE50,
- HCIEMU_TYPE_BREDRLE60,
+ HCIEMU_TYPE_BREDRLE52,
};
enum hciemu_hook_type {
diff --git a/emulator/vhci.c b/emulator/vhci.c
index 7a69b48..f79b34f 100644
--- a/emulator/vhci.c
+++ b/emulator/vhci.c
switch (type) {
case VHCI_TYPE_BREDRLE:
- btdev_type = BTDEV_TYPE_BREDRLE60;
+ btdev_type = BTDEV_TYPE_BREDRLE52;
ctrl_type = HCI_PRIMARY;
break;
case VHCI_TYPE_BREDR: