void BTU_ShutDown(void) { #if BTU_DYNAMIC_MEMORY FREE_AND_RESET(btu_cb_ptr); #endif btu_task_shut_down(); hash_map_free(btu_general_alarm_hash_map); osi_mutex_free(&btu_general_alarm_lock); hash_map_free(btu_oneshot_alarm_hash_map); osi_mutex_free(&btu_oneshot_alarm_lock); hash_map_free(btu_l2cap_alarm_hash_map); osi_mutex_free(&btu_l2cap_alarm_lock); vTaskDelete(xBtuTaskHandle); vQueueDelete(xBtuQueue); btu_general_alarm_hash_map = NULL; btu_oneshot_alarm_hash_map = NULL; btu_l2cap_alarm_hash_map = NULL; xBtuTaskHandle = NULL; xBtuQueue = 0; }
void bta_gatts_deinit(void) { memset(&bta_gatts_cb, 0, sizeof(tBTA_GATTS_CB)); #if BTA_DYNAMIC_MEMORY FREE_AND_RESET(bta_gatts_cb_ptr); #endif /* #if BTA_DYNAMIC_MEMORY */ }
void SMP_Free(void) { memset(&smp_cb, 0, sizeof(tSMP_CB)); #if SMP_DYNAMIC_MEMORY FREE_AND_RESET(smp_cb_ptr); #endif /* #if SMP_DYNAMIC_MEMORY */ }
/******************************************************************************* ** ** Function btm_free ** ** Description This function is called at btu core free the fixed queue ** ** Returns void ** *******************************************************************************/ void btm_free(void) { fixed_queue_free(btm_cb.page_queue, osi_free_func); fixed_queue_free(btm_cb.sec_pending_q, osi_free_func); #if BTM_DYNAMIC_MEMORY FREE_AND_RESET(btm_cb_ptr); #endif btm_lock_free(); btm_sem_free(); }