Home | History | Annotate | Download | only in l2cap

Lines Matching refs:p_lcb

35 static void l2cble_start_conn_update (tL2C_LCB *p_lcb);
51 tL2C_LCB *p_lcb;
73 if ((p_lcb = l2cu_find_lcb_by_bd_addr (rem_bda, BT_TRANSPORT_LE)) != NULL)
75 p_lcb->disc_reason = L2CAP_CONN_CANCEL;
76 l2cu_release_lcb (p_lcb);
101 tL2C_LCB *p_lcb;
105 p_lcb = l2cu_find_lcb_by_bd_addr (rem_bda, BT_TRANSPORT_LE);
108 if (!p_lcb || !p_acl_cb)
116 if (p_lcb->transport != BT_TRANSPORT_LE)
128 p_lcb->min_interval = min_int;
129 p_lcb->max_interval = max_int;
130 p_lcb->latency = latency;
131 p_lcb->timeout = timeout;
132 p_lcb->conn_update_mask |= L2C_BLE_NEW_CONN_PARAM;
134 l2cble_start_conn_update(p_lcb);
142 if (p_lcb->link_role == HCI_ROLE_MASTER)
144 p_lcb->min_interval = min_int;
145 p_lcb->max_interval = max_int;
146 p_lcb->latency = latency;
147 p_lcb->timeout = timeout;
148 p_lcb->conn_update_mask |= L2C_BLE_NEW_CONN_PARAM;
150 l2cble_start_conn_update(p_lcb);
153 l2cu_send_peer_ble_par_req (p_lcb, min_int, max_int, latency, timeout);
173 tL2C_LCB *p_lcb;
176 p_lcb = l2cu_find_lcb_by_bd_addr (rem_bda, BT_TRANSPORT_LE);
178 if (!p_lcb)
188 (rem_bda[4]<<8)+rem_bda[5], enable, p_lcb->conn_update_mask);
190 if (p_lcb->transport != BT_TRANSPORT_LE || (p_lcb->link_role != HCI_ROLE_MASTER))
194 (rem_bda[4]<<8)+rem_bda[5], p_lcb->link_role);
199 p_lcb->conn_update_mask &= ~L2C_BLE_CONN_UPDATE_DISABLE;
201 p_lcb->conn_update_mask |= L2C_BLE_CONN_UPDATE_DISABLE;
203 l2cble_start_conn_update(p_lcb);
222 tL2C_LCB *p_lcb;
224 if ((p_lcb = l2cu_find_lcb_by_bd_addr (bd_addr, BT_TRANSPORT_LE)) != NULL)
225 role = p_lcb->link_role;
240 tL2C_LCB *p_lcb;
243 if ((p_lcb = l2cu_find_lcb_by_bd_addr (remote_bda, transport)) != NULL)
244 reason = p_lcb->disc_reason;
262 tL2C_LCB *p_lcb = l2cu_find_lcb_by_bd_addr (bda, BT_TRANSPORT_LE);
265 if (p_lcb != NULL && p_acl != NULL && p_lcb->link_state != LST_CONNECTED)
270 p_lcb->link_state = LST_CONNECTED;
271 l2cu_process_fixed_chnl_resp (p_lcb);
288 tL2C_LCB *p_lcb;
297 p_lcb = l2cu_find_lcb_by_bd_addr (bda, BT_TRANSPORT_LE);
300 if (!p_lcb)
302 p_lcb = l2cu_allocate_lcb (bda, FALSE, BT_TRANSPORT_LE);
303 if (!p_lcb)
311 if (!l2cu_initialize_fixed_ccb (p_lcb, L2CAP_ATT_CID, &l2cb.fixed_reg[L2CAP_ATT_CID - L2CAP_FIRST_FIXED_CHNL].fixed_chnl_opts))
319 else if (p_lcb->link_state != LST_CONNECTING)
321 L2CAP_TRACE_ERROR ("L2CAP got BLE scanner conn_comp in bad state: %d", p_lcb->link_state);
324 btu_stop_timer(&p_lcb->timer_entry);
327 p_lcb->handle = handle;
330 p_lcb->link_role = HCI_ROLE_MASTER;
331 p_lcb->transport = BT_TRANSPORT_LE;
360 btm_acl_created (bda, NULL, p_dev_rec->sec_bd_name, handle, p_lcb->link_role, BT_TRANSPORT_LE);
362 p_lcb->peer_chnl_mask[0] = L2CAP_FIXED_CHNL_ATT_BIT | L2CAP_FIXED_CHNL_BLE_SIG_BIT | L2CAP_FIXED_CHNL_SMP_BIT;
381 tL2C_LCB *p_lcb;
389 p_lcb = l2cu_find_lcb_by_bd_addr (bda, BT_TRANSPORT_LE);
392 if (!p_lcb)
394 p_lcb = l2cu_allocate_lcb (bda, FALSE, BT_TRANSPORT_LE);
395 if (!p_lcb)
403 if (!l2cu_initialize_fixed_ccb (p_lcb, L2CAP_ATT_CID, &l2cb.fixed_reg[L2CAP_ATT_CID - L2CAP_FIRST_FIXED_CHNL].fixed_chnl_opts))
413 p_lcb->handle = handle;
416 p_lcb->link_role = HCI_ROLE_SLAVE;
417 p_lcb->transport = BT_TRANSPORT_LE;
422 btm_acl_created (bda, NULL, p_dev_rec->sec_bd_name, handle, p_lcb->link_role, BT_TRANSPORT_LE);
424 p_lcb->peer_chnl_mask[0] = L2CAP_FIXED_CHNL_ATT_BIT | L2CAP_FIXED_CHNL_BLE_SIG_BIT | L2CAP_FIXED_CHNL_SMP_BIT;
428 p_lcb->link_state = LST_CONNECTED;
429 l2cu_process_fixed_chnl_resp (p_lcb);
473 static void l2cble_start_conn_update (tL2C_LCB *p_lcb)
475 tBTM_SEC_DEV_REC *p_dev_rec = btm_find_or_alloc_dev(p_lcb->remote_bd_addr);
477 if (p_lcb->conn_update_mask & L2C_BLE_UPDATE_PENDING) return;
479 if (p_lcb->conn_update_mask & L2C_BLE_CONN_UPDATE_DISABLE)
484 if (p_lcb->conn_update_mask & L2C_BLE_NOT_DEFAULT_PARAM)
486 btsnd_hcic_ble_upd_ll_conn_params(p_lcb->handle,
496 p_lcb->conn_update_mask &= ~L2C_BLE_NOT_DEFAULT_PARAM;
497 p_lcb->conn_update_mask |= (L2C_BLE_UPDATE_PENDING | L2C_BLE_NEW_CONN_PARAM);
503 if (p_lcb->conn_update_mask & L2C_BLE_NEW_CONN_PARAM)
505 btsnd_hcic_ble_upd_ll_conn_params(p_lcb->handle, p_lcb->min_interval,
506 p_lcb->max_interval, p_lcb->latency, p_lcb->timeout, 0, 0);
507 p_lcb->conn_update_mask &= ~L2C_BLE_NEW_CONN_PARAM;
508 p_lcb->conn_update_mask |= (L2C_BLE_UPDATE_PENDING | L2C_BLE_NOT_DEFAULT_PARAM);
525 tL2C_LCB *p_lcb;
530 p_lcb = l2cu_find_lcb_by_handle(handle);
531 if (!p_lcb)
537 p_lcb->conn_update_mask &= ~L2C_BLE_UPDATE_PENDING;
544 l2cble_start_conn_update(p_lcb);
546 L2CAP_TRACE_DEBUG("l2cble_process_conn_update_evt: conn_update_mask=%d", p_lcb->conn_update_mask);
558 void l2cble_process_sig_cmd (tL2C_LCB *p_lcb, UINT8 *p, UINT16 pkt_len)
588 l2cu_send_peer_cmd_reject (p_lcb, L2CAP_CMD_REJ_NOT_UNDERSTOOD, id, 0, 0);
597 if (p_lcb->link_role == HCI_ROLE_MASTER)
606 l2cu_send_peer_ble_par_rsp (p_lcb, L2CAP_CFG_UNACCEPTABLE_PARAMS, id);
611 l2cu_send_peer_ble_par_rsp (p_lcb, L2CAP_CFG_OK, id);
613 p_lcb->min_interval = min_interval;
614 p_lcb->max_interval = max_interval;
615 p_lcb->latency = latency;
616 p_lcb->timeout = timeout;
617 p_lcb->conn_update_mask |= L2C_BLE_NEW_CONN_PARAM;
619 l2cble_start_conn_update(p_lcb);
623 l2cu_send_peer_cmd_reject (p_lcb, L2CAP_CMD_REJ_NOT_UNDERSTOOD, id, 0, 0);
632 l2cu_send_peer_cmd_reject (p_lcb, L2CAP_CMD_REJ_NOT_UNDERSTOOD, id, 0, 0);
646 BOOLEAN l2cble_init_direct_conn (tL2C_LCB *p_lcb)
648 tBTM_SEC_DEV_REC *p_dev_rec = btm_find_or_alloc_dev (p_lcb->remote_bd_addr);
665 init_addr_type = p_lcb->ble_addr_type;
666 memcpy(init_addr, p_lcb->remote_bd_addr, BD_ADDR_LEN);
685 l2cu_release_lcb (p_lcb);
707 l2cu_release_lcb (p_lcb);
713 p_lcb->link_state = LST_CONNECTING;
715 memcpy (l2cb.ble_connecting_bda, p_lcb->remote_bd_addr, BD_ADDR_LEN);
716 btu_start_timer (&p_lcb->timer_entry, BTU_TTYPE_L2CAP_LINK, L2CAP_BLE_LINK_CONNECT_TOUT);
732 BOOLEAN l2cble_create_conn (tL2C_LCB *p_lcb)
740 rt = l2cble_init_direct_conn(p_lcb);
746 btm_ble_enqueue_direct_conn_req(p_lcb);
796 tL2C_LCB *p_lcb;
812 for (yy = 0, p_lcb = &l2cb.lcb_pool[0]; yy < MAX_L2CAP_LINKS; yy++, p_lcb++)
814 if (p_lcb->in_use && p_lcb->transport == BT_TRANSPORT_LE)
816 if (p_lcb->acl_priority == L2CAP_PRIORITY_HIGH)
861 for (yy = 0, p_lcb = &l2cb.lcb_pool[0]; yy < MAX_L2CAP_LINKS; yy++, p_lcb++)
863 if (p_lcb->in_use && p_lcb->transport == BT_TRANSPORT_LE)
865 if (p_lcb->acl_priority == L2CAP_PRIORITY_HIGH)
867 p_lcb->link_xmit_quota = high_pri_link_quota;
874 if (( p_lcb->link_xmit_quota > 0 )&&( qq == 0 ))
875 l2cb.ble_round_robin_unacked += p_lcb->sent_not_acked;
877 p_lcb->link_xmit_quota = qq;
880 p_lcb->link_xmit_quota++;
886 yy, p_lcb->acl_priority, p_lcb->link_xmit_quota);
889 p_lcb->sent_not_acked, l2cb.round_robin_unacked);
894 if ( (p_lcb->link_state == LST_CONNECTED)
895 && (p_lcb->link_xmit_data_q.count)
896 && (p_lcb->sent_not_acked < p_lcb->link_xmit_quota) )
897 btu_start_timer (&p_lcb->timer_entry, BTU_TTYPE_L2CAP_LINK, L2CAP_LINK_FLOW_CONTROL_TOUT);
915 tL2C_LCB *p_lcb = l2cu_find_lcb_by_handle (handle);
917 if (p_lcb != NULL)
919 p_lcb->min_interval = int_min;
920 p_lcb->max_interval = int_max;
921 p_lcb->latency = latency;
922 p_lcb->timeout = timeout;
925 if ((p_lcb->conn_update_mask & L2C_BLE_CONN_UPDATE_DISABLE) == 0)