/******************************************************************************* ** ** Function btm_send_pending_direct_conn ** ** Description This function send the pending direct connection request in queue ** ** Returns TRUE if started, FALSE otherwise ** *******************************************************************************/ BOOLEAN btm_send_pending_direct_conn(void) { tBTM_BLE_CONN_REQ *p_req; BOOLEAN rt = FALSE; if (!GKI_queue_is_empty(&btm_cb.ble_ctr_cb.conn_pending_q)) { p_req = (tBTM_BLE_CONN_REQ*)GKI_dequeue (&btm_cb.ble_ctr_cb.conn_pending_q); rt = l2cble_init_direct_conn((tL2C_LCB *)(p_req->p_param)); GKI_freebuf((void *)p_req); } return rt; }
/******************************************************************************* ** ** Function btm_send_pending_direct_conn ** ** Description This function send the pending direct connection request in queue ** ** Returns TRUE if started, FALSE otherwise ** *******************************************************************************/ BOOLEAN btm_send_pending_direct_conn(void ) { tBTM_BLE_CONN_REQ *p_req; BOOLEAN rt = FALSE; if ( btm_cb.ble_ctr_cb.conn_pending_q.count ) { if (NULL != (p_req = (tBTM_BLE_CONN_REQ*)GKI_dequeue (&btm_cb.ble_ctr_cb.conn_pending_q))) { rt = l2cble_init_direct_conn((tL2C_LCB *)(p_req->p_param)); GKI_freebuf((void *)p_req); } else { BTM_TRACE_ERROR ("%s: Failed to get pending connection", __FUNCTION__); } } return rt; }
/******************************************************************************* ** ** Function l2cble_create_conn ** ** Description This function initiates an acl connection via HCI ** ** Returns TRUE if successful, FALSE if connection not started. ** *******************************************************************************/ BOOLEAN l2cble_create_conn (tL2C_LCB *p_lcb) { tBTM_BLE_CONN_ST conn_st = btm_ble_get_conn_st(); BOOLEAN rt = FALSE; /* There can be only one BLE connection request outstanding at a time */ if (conn_st == BLE_CONN_IDLE) { rt = l2cble_init_direct_conn(p_lcb); } else { L2CAP_TRACE_WARNING1 ("L2CAP - LE - cannot start new connection at conn st: %d", conn_st); btm_ble_enqueue_direct_conn_req(p_lcb); if (conn_st == BLE_BG_CONN) btm_ble_suspend_bg_conn(); rt = TRUE; } return rt; }