/* Schedules the transmission of all queued ACL data packets to the controller.  */
void ble_hs_wakeup_tx(void)
/* Schedules the transmission of all queued ACL data packets to the controller.  */
void ble_hs_wakeup_tx(void)
{
    struct ble_hs_conn *conn;
    int rc;
    ble_hs_lock();
    for (conn = ble_hs_conn_first();
         conn != NULL;
         conn = SLIST_NEXT(conn, bhc_next)) {
        if (conn->bhc_flags & BLE_HS_CONN_F_TX_FRAG) {
            rc = ble_hs_wakeup_tx_conn(conn);
            if (rc != 0) {
                goto done;
            }
            break;
        }
    }
    for (conn = ble_hs_conn_first();
         conn != NULL;
         conn = SLIST_NEXT(conn, bhc_next)) {
        rc = ble_hs_wakeup_tx_conn(conn);
        if (rc != 0) {
            goto done;
        }
    }
done:
    ble_hs_unlock();
}