Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9db3d057 authored by Hansong Zhang's avatar Hansong Zhang
Browse files

Introduce pL2CA_Error_Cb

L2CAP notifies users error in ConnectRsp and ConfigRsp through this
callback function (not linked so far). Next step is we send success
through pL2CA_ConnectCfm_Cb and pL2CA_ConfigCfm_Cb.

Bug: 159815595
Tag: #refactor
Test: compile & verify basic functions working
Change-Id: I4456487d36248408fc1c31403d107baef05e3646
parent bd064d88
Loading
Loading
Loading
Loading
+8 −9
Original line number Diff line number Diff line
@@ -39,17 +39,16 @@ void avct_l2c_config_ind_cback(uint16_t lcid, tL2CAP_CFG_INFO* p_cfg);
void avct_l2c_disconnect_ind_cback(uint16_t lcid, bool ack_needed);
void avct_l2c_congestion_ind_cback(uint16_t lcid, bool is_congested);
void avct_l2c_data_ind_cback(uint16_t lcid, BT_HDR* p_buf);
static void avct_on_l2cap_error(uint16_t lcid, uint16_t result);

/* L2CAP callback function structure */
const tL2CAP_APPL_INFO avct_l2c_appl = {avct_l2c_connect_ind_cback,
                                        avct_l2c_connect_cfm_cback,
                                        avct_l2c_config_ind_cback,
                                        avct_l2c_config_cfm_cback,
                                        avct_l2c_disconnect_ind_cback,
                                        avct_l2c_data_ind_cback,
                                        avct_l2c_congestion_ind_cback,
                                        NULL,
                                        /* tL2CA_TX_COMPLETE_CB */};
const tL2CAP_APPL_INFO avct_l2c_appl = {
    avct_l2c_connect_ind_cback,    avct_l2c_connect_cfm_cback,
    avct_l2c_config_ind_cback,     avct_l2c_config_cfm_cback,
    avct_l2c_disconnect_ind_cback, avct_l2c_data_ind_cback,
    avct_l2c_congestion_ind_cback, NULL,
    avct_on_l2cap_error,
};

/*******************************************************************************
 *
+8 −9
Original line number Diff line number Diff line
@@ -40,17 +40,16 @@ void avct_l2c_br_config_ind_cback(uint16_t lcid, tL2CAP_CFG_INFO* p_cfg);
void avct_l2c_br_disconnect_ind_cback(uint16_t lcid, bool ack_needed);
void avct_l2c_br_congestion_ind_cback(uint16_t lcid, bool is_congested);
void avct_l2c_br_data_ind_cback(uint16_t lcid, BT_HDR* p_buf);
void avct_br_on_l2cap_error(uint16_t lcid, uint16_t result);

/* L2CAP callback function structure */
const tL2CAP_APPL_INFO avct_l2c_br_appl = {avct_l2c_br_connect_ind_cback,
                                           avct_l2c_br_connect_cfm_cback,
                                           avct_l2c_br_config_ind_cback,
                                           avct_l2c_br_config_cfm_cback,
                                           avct_l2c_br_disconnect_ind_cback,
                                           avct_l2c_br_data_ind_cback,
                                           avct_l2c_br_congestion_ind_cback,
                                           NULL,
                                           /* tL2CA_TX_COMPLETE_CB */};
const tL2CAP_APPL_INFO avct_l2c_br_appl = {
    avct_l2c_br_connect_ind_cback,    avct_l2c_br_connect_cfm_cback,
    avct_l2c_br_config_ind_cback,     avct_l2c_br_config_cfm_cback,
    avct_l2c_br_disconnect_ind_cback, avct_l2c_br_data_ind_cback,
    avct_l2c_br_congestion_ind_cback, NULL,
    avct_br_on_l2cap_error,
};

/*******************************************************************************
 *
+8 −9
Original line number Diff line number Diff line
@@ -42,17 +42,16 @@ void avdt_l2c_config_ind_cback(uint16_t lcid, tL2CAP_CFG_INFO* p_cfg);
void avdt_l2c_disconnect_ind_cback(uint16_t lcid, bool ack_needed);
void avdt_l2c_congestion_ind_cback(uint16_t lcid, bool is_congested);
void avdt_l2c_data_ind_cback(uint16_t lcid, BT_HDR* p_buf);
static void avdt_on_l2cap_error(uint16_t lcid, uint16_t result);

/* L2CAP callback function structure */
const tL2CAP_APPL_INFO avdt_l2c_appl = {avdt_l2c_connect_ind_cback,
                                        avdt_l2c_connect_cfm_cback,
                                        avdt_l2c_config_ind_cback,
                                        avdt_l2c_config_cfm_cback,
                                        avdt_l2c_disconnect_ind_cback,
                                        avdt_l2c_data_ind_cback,
                                        avdt_l2c_congestion_ind_cback,
                                        NULL,
                                        /* tL2CA_TX_COMPLETE_CB */};
const tL2CAP_APPL_INFO avdt_l2c_appl = {
    avdt_l2c_connect_ind_cback,    avdt_l2c_connect_cfm_cback,
    avdt_l2c_config_ind_cback,     avdt_l2c_config_cfm_cback,
    avdt_l2c_disconnect_ind_cback, avdt_l2c_data_ind_cback,
    avdt_l2c_congestion_ind_cback, NULL,
    avdt_on_l2cap_error,
};

/*******************************************************************************
 *
+2 −1
Original line number Diff line number Diff line
@@ -59,7 +59,7 @@ static void bnep_config_cfm(uint16_t l2cap_cid, uint16_t result);
static void bnep_disconnect_ind(uint16_t l2cap_cid, bool ack_needed);
static void bnep_data_ind(uint16_t l2cap_cid, BT_HDR* p_msg);
static void bnep_congestion_ind(uint16_t lcid, bool is_congested);

static void bnep_on_l2cap_error(uint16_t l2cap_cid, uint16_t result);
/*******************************************************************************
 *
 * Function         bnep_register_with_l2cap
@@ -83,6 +83,7 @@ tBNEP_RESULT bnep_register_with_l2cap(void) {
  bnep_cb.reg_info.pL2CA_DisconnectInd_Cb = bnep_disconnect_ind;
  bnep_cb.reg_info.pL2CA_DataInd_Cb = bnep_data_ind;
  bnep_cb.reg_info.pL2CA_CongestionStatus_Cb = bnep_congestion_ind;
  bnep_cb.reg_info.pL2CA_Error_Cb = bnep_on_l2cap_error;

  /* Now, register with L2CAP */
  if (!L2CA_Register2(BT_PSM_BNEP, bnep_cb.reg_info, false /* enable_snoop */,
+2 −0
Original line number Diff line number Diff line
@@ -90,6 +90,7 @@ static void gap_disconnect_ind(uint16_t l2cap_cid, bool ack_needed);
static void gap_data_ind(uint16_t l2cap_cid, BT_HDR* p_msg);
static void gap_congestion_ind(uint16_t lcid, bool is_congested);
static void gap_tx_complete_ind(uint16_t l2cap_cid, uint16_t sdu_sent);
static void gap_on_l2cap_error(uint16_t l2cap_cid, uint16_t result);
static tGAP_CCB* gap_find_ccb_by_cid(uint16_t cid);
static tGAP_CCB* gap_find_ccb_by_handle(uint16_t handle);
static tGAP_CCB* gap_allocate_ccb(void);
@@ -116,6 +117,7 @@ void gap_conn_init(void) {
  conn.reg_info.pL2CA_DataInd_Cb = gap_data_ind;
  conn.reg_info.pL2CA_CongestionStatus_Cb = gap_congestion_ind;
  conn.reg_info.pL2CA_TxComplete_Cb = gap_tx_complete_ind;
  conn.reg_info.pL2CA_Error_Cb = gap_on_l2cap_error;
}

/*******************************************************************************
Loading