memset(&le_adv_slot[slot_id], 0x00, sizeof(bt_adapter_le_adv_slot_t));
}
-int _bt_hal_get_available_adv_slot_id(bt_uuid_t *uuid)
+int _bt_hal_get_available_adv_slot_id(bt_uuid_t *uuid, gboolean use_reserved_slot)
{
int i;
}
}
+ /* We should consider 'use_reverved_slot' in later */
+ if (le_feature_info.adv_inst_max <= 1)
+ i = 0;
+ else if (use_reserved_slot == TRUE)
+ i = 1;
+ else
+ i = 2;
+
for (i = 0; i < le_feature_info.adv_inst_max; i++) {
if (le_adv_slot[i].initialized == 0) {
DBG("Slot to be allocated [%d] UUID to be registered [%s]",
gboolean _bt_hal_update_le_feature_support(const char *item, const char *value,
bt_local_le_features_t *le_features);
-int _bt_hal_get_available_adv_slot_id(bt_uuid_t *uuid);
+int _bt_hal_get_available_adv_slot_id(bt_uuid_t *uuid, gboolean use_reserved_slot);
int _bt_hal_get_adv_slot_adv_handle(int slot_id);
hal_register_server_data *user_data = g_malloc0(sizeof(hal_register_server_data));
/* Check if slot available */
- server_if = _bt_hal_get_available_adv_slot_id(uuid);
+ server_if = _bt_hal_get_available_adv_slot_id(uuid, FALSE);
if (server_if == -1) {
ERR("Allocation of server instance failed");
return i;
}
- if (le_feature_info.adv_inst_max <= 2)
- i = 0;
- else if (le_feature_info.adv_inst_max > 2 && use_reserved_slot == TRUE)
+ if (le_feature_info.adv_inst_max <= 1)
i = 0;
+ else if (use_reserved_slot == TRUE)
+ i = 1;
else
i = 2;