Lines Matching refs:pQMI
597 static void dump_qmi(PQCQMIMSG pQMI, int fd, const char flag) in dump_qmi() argument
602 unsigned size = le16toh(pQMI->QMIHdr.Length) + 1; in dump_qmi()
607 printf("%02x ", ((uint8_t *)pQMI)[i]); in dump_qmi()
612 static int send_qmi_to_cdc_wdm(PQCQMIMSG pQMI) { in send_qmi_to_cdc_wdm() argument
621 ssize_t size = le16toh(pQMI->QMIHdr.Length) + 1; in send_qmi_to_cdc_wdm()
622 ret = write(cdc_wdm_fd, pQMI, size); in send_qmi_to_cdc_wdm()
623 dump_qmi(pQMI, cdc_wdm_fd, 'w'); in send_qmi_to_cdc_wdm()
629 static int send_qmi_to_client(PQCQMIMSG pQMI, int clientFd) { in send_qmi_to_client() argument
638 ssize_t size = le16toh(pQMI->QMIHdr.Length) + 1; in send_qmi_to_client()
639 ret = write(clientFd, pQMI, size); in send_qmi_to_client()
640 dump_qmi(pQMI, clientFd, 'w'); in send_qmi_to_client()
646 static void recv_qmi_from_dev(PQCQMIMSG pQMI) { in recv_qmi_from_dev() argument
652 else if (pQMI->QMIHdr.QMIType == QMUX_TYPE_CTL) { in recv_qmi_from_dev()
653 if (pQMI->CTLMsg.QMICTLMsgHdr.CtlFlags == QMICTL_CTL_FLAG_RSP) { in recv_qmi_from_dev()
661 send_qmi_to_client(pQMI, qmi_msg->ClientFd); in recv_qmi_from_dev()
663 … if (le16toh(pQMI->CTLMsg.QMICTLMsgHdrRsp.QMICTLType) == QMICTL_GET_CLIENT_ID_RESP) in recv_qmi_from_dev()
664 …get_client_id(qmi_con, &pQMI->CTLMsg.GetClientIdRsp); … in recv_qmi_from_dev()
665 … else if ((le16toh(pQMI->CTLMsg.QMICTLMsgHdrRsp.QMICTLType) == QMICTL_RELEASE_CLIENT_ID_RESP) || in recv_qmi_from_dev()
666 … (le16toh(pQMI->CTLMsg.QMICTLMsgHdrRsp.QMICTLType) == QMICTL_REVOKE_CLIENT_ID_IND)) { in recv_qmi_from_dev()
667 release_client_id(qmi_con, &pQMI->CTLMsg.ReleaseClientIdRsp); in recv_qmi_from_dev()
668 … if (le16toh(pQMI->CTLMsg.QMICTLMsgHdrRsp.QMICTLType) == QMICTL_REVOKE_CLIENT_ID_IND) in recv_qmi_from_dev()
699 if (pQMI->QMIHdr.QMIType == qmi_client->QMIType) { in recv_qmi_from_dev()
700 … if (pQMI->QMIHdr.ClientId == 0 || pQMI->QMIHdr.ClientId == qmi_client->ClientId) { in recv_qmi_from_dev()
701 send_qmi_to_client(pQMI, qmi_con->ClientFd); in recv_qmi_from_dev()
709 static int recv_qmi_from_client(PQCQMIMSG pQMI, unsigned size, int clientfd) { in recv_qmi_from_client() argument
711 send_qmi_to_cdc_wdm(pQMI); in recv_qmi_from_client()
713 else if (pQMI->QMIHdr.QMIType == QMUX_TYPE_CTL) { in recv_qmi_from_client()
716 if (pQMI->CTLMsg.QMICTLMsgHdr.QMICTLType == QMICTL_SYNC_REQ) { in recv_qmi_from_client()
722 send_qmi_to_cdc_wdm(pQMI); in recv_qmi_from_client()
727 memcpy(qmi_msg->qmi, pQMI, size); in recv_qmi_from_client()
731 send_qmi_to_cdc_wdm(pQMI); in recv_qmi_from_client()
740 PQCQMIMSG pQMI = &_QMI; in qmi_proxy_init() local
744 pQMI->QMIHdr.IFType = USB_CTL_MSG_TYPE_QMI; in qmi_proxy_init()
745 pQMI->QMIHdr.CtlFlags = 0x00; in qmi_proxy_init()
746 pQMI->QMIHdr.QMIType = QMUX_TYPE_CTL; in qmi_proxy_init()
747 pQMI->QMIHdr.ClientId= 0x00; in qmi_proxy_init()
749 pQMI->CTLMsg.QMICTLMsgHdr.CtlFlags = QMICTL_FLAG_REQUEST; in qmi_proxy_init()
753 pQMI->CTLMsg.SyncReq.TransactionId = i+1; in qmi_proxy_init()
754 pQMI->CTLMsg.SyncReq.QMICTLType = QMICTL_SYNC_REQ; in qmi_proxy_init()
755 pQMI->CTLMsg.SyncReq.Length = 0; in qmi_proxy_init()
757 pQMI->QMIHdr.Length = in qmi_proxy_init()
758 …htole16(le16toh(pQMI->CTLMsg.QMICTLMsgHdr.Length) + sizeof(QCQMI_HDR) + sizeof(QCQMICTL_MSG_HDR) -… in qmi_proxy_init()
760 if (send_qmi_to_cdc_wdm(pQMI) <= 0) in qmi_proxy_init()
790 PQCQMIMSG pQMI = (PQCQMIMSG)qmi_buf; in qmi_proxy_loop() local
872 nreads = read(fd, pQMI, sizeof(qmi_buf)); in qmi_proxy_loop()
878 if(merge_qmi_rsp_packet(pQMI, &nreads)) in qmi_proxy_loop()
881 if (nreads != (le16toh(pQMI->QMIHdr.Length) + 1)) { in qmi_proxy_loop()
882 …s nreads=%d, pQCQMI->QMIHdr.Length = %d\n", __func__, (int)nreads, le16toh(pQMI->QMIHdr.Length)); in qmi_proxy_loop()
886 dump_qmi(pQMI, fd, 'r'); in qmi_proxy_loop()
887 recv_qmi_from_dev(pQMI); in qmi_proxy_loop()
892 nreads = read(fd, pQMI, sizeof(qmi_buf)); in qmi_proxy_loop()
900 if (nreads != (le16toh(pQMI->QMIHdr.Length) + 1)) { in qmi_proxy_loop()
901 …s nreads=%d, pQCQMI->QMIHdr.Length = %d\n", __func__, (int)nreads, le16toh(pQMI->QMIHdr.Length)); in qmi_proxy_loop()
905 dump_qmi(pQMI, fd, 'r'); in qmi_proxy_loop()
906 recv_qmi_from_client(pQMI, nreads, fd); in qmi_proxy_loop()