void FmpFreeChannel(FmpChannel *channel) { CMGR_DeregisterHandler(&channel->cmgr_handler); RemoveEntryList(&(channel->node)); fmp_free(channel->servicedb); fmp_free(channel); }
BtStatus time_gatt_destroy_link(TimeCTransport *pChnl) { BtStatus status; status = CMGR_RemoveDataLink(&pChnl->handler); status = CMGR_DeregisterHandler(&pChnl->handler); // Always return success return BT_STATUS_SUCCESS; }
void hdp_tp_disconnect(HdpChannel *channel) { if (NULL == channel) { return; } CMGR_RemoveDataLink(&(channel->cmgrHdlr)); CMGR_RemoveCmgrWithDevice(&(channel->cmgrHdlr)); CMGR_DeregisterHandler(&(channel->cmgrHdlr)); }
void l2capTesterCmgrCallback(CmgrHandler *cHandler, CmgrEvent Event, BtStatus Status) { L2capChannelId l2ChannelId; BtStatus status; //add by stanley:2006-0721 local_para_struct* msg; bt_test_cmd_rsp_struct *param_ptr; switch (Event) { case CMEVENT_DATA_LINK_CON_CNF: if (Status == BT_STATUS_SUCCESS) { /* ACL is connected, start SDP Query */ switch(L2CAPTS(pending_command)) { case L2CAP_TESTER_CONNECT_REQ: cHandler->remDev->discFlag = FALSE; status = L2CAP_ConnectReq(&L2CAPTS(Protocol), BT_PSM_TESTING, cHandler->remDev, 0, &l2ChannelId); bt_trace(BT_TRACE_G1_PROTOCOL, BT_L2CAPTS_CONNECTREQ,l2ChannelId); L2CAPTS(cid) = l2ChannelId; //add by stanley:2006-0721 param_ptr = (bt_test_cmd_rsp_struct *)construct_local_para( (U16)sizeof(bt_test_cmd_rsp_struct), TD_CTRL); memset(param_ptr->test_cmd_rsp_buf,0,256); param_ptr->test_cmd_rsp_buf[0]=0x03; //logs type param_ptr->test_cmd_rsp_buf[1]=0x02; //L2cap category kal_sprintf((kal_char*)(param_ptr->test_cmd_rsp_buf+4),"L2CA_ConnectReq,using cid=%d",l2ChannelId); Report(("str data send to L4C:%s",param_ptr->test_cmd_rsp_buf+4)); param_ptr->length= strlen((kal_char*)param_ptr->test_cmd_rsp_buf+4); bt_trace(TRACE_GROUP_1,STR_DATA_LENxD ,param_ptr->length); //fill the data length field of string data for rsp param_ptr->test_cmd_rsp_buf[2]= (U8)(param_ptr->length & 0x00ff); param_ptr->test_cmd_rsp_buf[3]= (U8)((param_ptr->length >> 8) & 0x00ff); //rsp_buf's total length = param_ptr->length + 4 bytes header param_ptr->length += 4; msg = (local_para_struct*)param_ptr; bt_trace(TRACE_GROUP_1,CALL_BTTESTER_SENDMSG); #if 0 btTester_sendMsg(MSG_ID_BT_L4C_TEST_CMD_CNF, #ifdef __GEMINI__ Get_DualSim_Uart_Default_Owner(), #else MOD_ATCI, #endif INVALID_SAP, msg, NULL); #endif return; case L2CAP_TESTER_PING_REQ: memset( (U8 *)L2CAPTS(common_data), 0x55, sizeof(L2CAPTS(common_data))); status = L2CAP_Ping( &(L2CAPTS(Protocol)), L2CAPTS(cmgrHandler).remDev, (U8 *)L2CAPTS(common_data), sizeof(L2CAPTS(common_data))); return; case L2CAP_TESTER_INFO_REQ: status = L2CAP_GetInfo(&(L2CAPTS(Protocol)), L2CAPTS(cmgrHandler).remDev, L2CAPTS(info_type)); return; default: status = BT_STATUS_FAILED; break; } if (Status == BT_STATUS_PENDING) { return; } } /* Disconnect and call the application */ (void)CMGR_RemoveDataLink(&L2CAPTS(cmgrHandler)); (void)CMGR_DeregisterHandler(&L2CAPTS(cmgrHandler)); break; } }