static void put_link_key(bd_addr_t bd_addr, link_key_t link_key, link_key_type_t link_key_type){ char bd_addr_ini_string[BD_ADDR_LEN * 2 + 1]; memory_to_ini_string(bd_addr, BD_ADDR_LEN, bd_addr_ini_string); char link_key_ini_string[3 /* store link_key_type */ + LINK_KEY_LEN * 2 + 1]; uint8_t link_key_type_val = link_key_type; memory_to_ini_string(&link_key_type_val, 1, link_key_ini_string); link_key_ini_string[2] = '/'; memory_to_ini_string(link_key, LINK_KEY_LEN, link_key_ini_string + 3); ev3rt_put_bluetooth_link_key(bd_addr_ini_string, link_key_ini_string); #if 1 #else db_mem_device_link_key_t * existingRecord = (db_mem_device_link_key_t *) get_item(db_mem_link_keys, bd_addr); if (existingRecord){ memcpy(existingRecord->link_key, link_key, LINK_KEY_LEN); return; } // Record not found, create new one for this device db_mem_device_link_key_t * newItem = btstack_memory_db_mem_device_link_key_get(); if (!newItem){ newItem = (db_mem_device_link_key_t*)linked_list_get_last_item(&db_mem_link_keys); } if (!newItem) return; memcpy(newItem->device.bd_addr, bd_addr, sizeof(bd_addr_t)); memcpy(newItem->link_key, link_key, LINK_KEY_LEN); newItem->link_key_type = link_key_type; linked_list_add(&db_mem_link_keys, (linked_item_t *) newItem); #endif }
static void put_link_key(bd_addr_t *bd_addr, link_key_t *link_key){ db_mem_device_link_key_t * existingRecord = (db_mem_device_link_key_t *) get_item(db_mem_link_keys, bd_addr); if (existingRecord){ memcpy(existingRecord->link_key, link_key, LINK_KEY_LEN); return; } // Record not found, create new one for this device db_mem_device_link_key_t * newItem = (db_mem_device_link_key_t*) btstack_memory_db_mem_device_link_key_get(); if (!newItem){ newItem = (db_mem_device_link_key_t*)linked_list_get_last_item(&db_mem_link_keys); } if (!newItem) return; memcpy(newItem->device.bd_addr, bd_addr, sizeof(bd_addr_t)); memcpy(newItem->link_key, link_key, LINK_KEY_LEN); linked_list_add(&db_mem_link_keys, (linked_item_t *) newItem); }