Lines Matching refs:pkt

392 dp_got_full_hdr(struct rmc_comm_state *rcs, dp_packet_t *pkt)  in dp_got_full_hdr()  argument
403 pkt->full_length = dp_get_msglen(rcs, pkt->buf); in dp_got_full_hdr()
406 pkt->full_length)); in dp_got_full_hdr()
408 if ((pkt->full_length < 0) || in dp_got_full_hdr()
409 (pkt->full_length < sizeof (dp_header_t)) || in dp_got_full_hdr()
410 (pkt->full_length > DP_BUFFER_SIZE)) { in dp_got_full_hdr()
415 pkt->buf = NULL; in dp_got_full_hdr()
417 pkt->rx_state = WAITING_FOR_SYNC; in dp_got_full_hdr()
419 } else if (pkt->full_length == sizeof (dp_header_t)) { in dp_got_full_hdr()
424 rmc_comm_dp_mrecv(rcs, pkt->buf); in dp_got_full_hdr()
427 pkt->buf = NULL; in dp_got_full_hdr()
429 pkt->rx_state = WAITING_FOR_SYNC; in dp_got_full_hdr()
431 pkt->rx_state = RECEIVING_BODY; in dp_got_full_hdr()
442 dp_got_bp_msg(struct rmc_comm_state *rcs, dp_packet_t *pkt) in dp_got_bp_msg() argument
444 bp_msg_t *msgp = (bp_msg_t *)pkt->buf; in dp_got_bp_msg()
468 bcopy(pkt->buf, drr->response.msg_buf, datalen); in dp_got_bp_msg()
479 pkt->buf = NULL; in dp_got_bp_msg()
480 pkt->rx_state = WAITING_FOR_SYNC; in dp_got_bp_msg()
488 dp_got_full_msg(struct rmc_comm_state *rcs, dp_packet_t *pkt) in dp_got_full_msg() argument
499 msglen = pkt->full_length - sizeof (dp_header_t) - sizeof (crc); in dp_got_full_msg()
501 bcopy(pkt->buf + (pkt->full_length - sizeof (crc)), &crc, sizeof (crc)); in dp_got_full_msg()
503 if (crc == dp_calc_crc16(pkt->buf + sizeof (dp_header_t), msglen)) { in dp_got_full_msg()
509 rmc_comm_dp_mrecv(rcs, pkt->buf); in dp_got_full_msg()
516 pkt->buf = NULL; in dp_got_full_msg()
518 pkt->rx_state = WAITING_FOR_SYNC; in dp_got_full_msg()
622 dp_packet_t *pkt = &dps->dp_packet; in rmc_comm_dp_init() local
635 pkt->rx_state = WAITING_FOR_SYNC; in rmc_comm_dp_init()
729 dp_packet_t *pkt = &dps->dp_packet; in rmc_comm_dp_drecv() local
736 pkt->inbuf = buf; in rmc_comm_dp_drecv()
737 pkt->inbuflen = buflen; in rmc_comm_dp_drecv()
741 while (pkt->inbuflen > 0) { in rmc_comm_dp_drecv()
742 switch (pkt->rx_state) { in rmc_comm_dp_drecv()
745 while ((pkt->inbuflen > 0) && in rmc_comm_dp_drecv()
746 (*pkt->inbuf != SYNC_CHAR) && in rmc_comm_dp_drecv()
747 (*pkt->inbuf != ESC_CHAR)) { in rmc_comm_dp_drecv()
751 (uchar_t)(*pkt->inbuf))); in rmc_comm_dp_drecv()
753 pkt->inbuf++; in rmc_comm_dp_drecv()
754 pkt->inbuflen--; in rmc_comm_dp_drecv()
757 if (pkt->inbuflen > 0) { in rmc_comm_dp_drecv()
758 if (*pkt->inbuf == SYNC_CHAR) in rmc_comm_dp_drecv()
759 pkt->rx_state = WAITING_FOR_HDR; in rmc_comm_dp_drecv()
760 else if (*pkt->inbuf == ESC_CHAR) in rmc_comm_dp_drecv()
761 pkt->rx_state = WAITING_FOR_SYNC_ESC; in rmc_comm_dp_drecv()
766 pkt->inbuf++; in rmc_comm_dp_drecv()
767 pkt->inbuflen--; in rmc_comm_dp_drecv()
768 pkt->rx_state = WAITING_FOR_SYNC; in rmc_comm_dp_drecv()
772 while ((pkt->inbuflen > 0) && in rmc_comm_dp_drecv()
773 (*pkt->inbuf == SYNC_CHAR)) { in rmc_comm_dp_drecv()
774 pkt->inbuf++; in rmc_comm_dp_drecv()
775 pkt->inbuflen--; in rmc_comm_dp_drecv()
778 if (pkt->inbuflen <= 0) in rmc_comm_dp_drecv()
781 if (*pkt->inbuf == ESC_CHAR) { in rmc_comm_dp_drecv()
786 pkt->rx_state = WAITING_FOR_SYNC; in rmc_comm_dp_drecv()
787 pkt->inbuf++; in rmc_comm_dp_drecv()
788 pkt->inbuflen--; in rmc_comm_dp_drecv()
793 pkt->buf = dp_get_buffer(rcs, DP_RX_BUFFER); in rmc_comm_dp_drecv()
794 if (pkt->buf == NULL) { in rmc_comm_dp_drecv()
796 pkt->rx_state = WAITING_FOR_SYNC; in rmc_comm_dp_drecv()
800 (uchar_t)*pkt->inbuf)); in rmc_comm_dp_drecv()
802 pkt->buf[1] = *pkt->inbuf; in rmc_comm_dp_drecv()
803 pkt->bufpos = 2; in rmc_comm_dp_drecv()
804 pkt->rx_state = RECEIVING_HDR; in rmc_comm_dp_drecv()
806 pkt->inbuf++; in rmc_comm_dp_drecv()
807 pkt->inbuflen--; in rmc_comm_dp_drecv()
812 while ((pkt->inbuflen > 0) && in rmc_comm_dp_drecv()
813 (*pkt->inbuf != SYNC_CHAR) && in rmc_comm_dp_drecv()
814 (*pkt->inbuf != ESC_CHAR)) { in rmc_comm_dp_drecv()
815 pkt->buf[pkt->bufpos++] = *pkt->inbuf; in rmc_comm_dp_drecv()
816 pkt->inbuf++; in rmc_comm_dp_drecv()
817 pkt->inbuflen--; in rmc_comm_dp_drecv()
818 if (pkt->bufpos >= sizeof (dp_header_t)) { in rmc_comm_dp_drecv()
819 dp_got_full_hdr(rcs, pkt); in rmc_comm_dp_drecv()
822 } else if ((pkt->bufpos >= sizeof (bp_msg_t)) && in rmc_comm_dp_drecv()
823 (IS_BOOT_MSG(pkt->buf[1]))) { in rmc_comm_dp_drecv()
824 dp_got_bp_msg(rcs, pkt); in rmc_comm_dp_drecv()
833 if (pkt->inbuflen > 0) { in rmc_comm_dp_drecv()
835 if (*pkt->inbuf == SYNC_CHAR) { in rmc_comm_dp_drecv()
839 "bufpos=%d\n", pkt->bufpos)); in rmc_comm_dp_drecv()
842 pkt->buf = NULL; in rmc_comm_dp_drecv()
843 pkt->rx_state = WAITING_FOR_HDR; in rmc_comm_dp_drecv()
845 pkt->rx_state = RECEIVING_HDR_ESC; in rmc_comm_dp_drecv()
847 pkt->inbuf++; in rmc_comm_dp_drecv()
848 pkt->inbuflen--; in rmc_comm_dp_drecv()
853 pkt->buf[pkt->bufpos++] = *pkt->inbuf; in rmc_comm_dp_drecv()
854 pkt->inbuf++; in rmc_comm_dp_drecv()
855 pkt->inbuflen--; in rmc_comm_dp_drecv()
856 if (pkt->bufpos >= sizeof (dp_header_t)) { in rmc_comm_dp_drecv()
857 dp_got_full_hdr(rcs, pkt); in rmc_comm_dp_drecv()
858 } else if ((pkt->bufpos >= sizeof (bp_msg_t)) && in rmc_comm_dp_drecv()
859 (IS_BOOT_MSG(pkt->buf[1]))) { in rmc_comm_dp_drecv()
860 dp_got_bp_msg(rcs, pkt); in rmc_comm_dp_drecv()
862 pkt->rx_state = RECEIVING_HDR; in rmc_comm_dp_drecv()
867 max = pkt->full_length - pkt->bufpos; in rmc_comm_dp_drecv()
868 if (max > pkt->inbuflen) in rmc_comm_dp_drecv()
869 max = pkt->inbuflen; in rmc_comm_dp_drecv()
872 if ((pkt->inbuf[count] == SYNC_CHAR) || in rmc_comm_dp_drecv()
873 (pkt->inbuf[count] == ESC_CHAR)) in rmc_comm_dp_drecv()
877 bcopy(pkt->inbuf, pkt->buf + pkt->bufpos, in rmc_comm_dp_drecv()
879 pkt->inbuf += count; in rmc_comm_dp_drecv()
880 pkt->inbuflen -= count; in rmc_comm_dp_drecv()
881 pkt->bufpos += count; in rmc_comm_dp_drecv()
883 if (pkt->bufpos >= pkt->full_length) { in rmc_comm_dp_drecv()
884 dp_got_full_msg(rcs, pkt); in rmc_comm_dp_drecv()
891 if (*pkt->inbuf == SYNC_CHAR) { in rmc_comm_dp_drecv()
893 pkt->buf = NULL; in rmc_comm_dp_drecv()
894 pkt->rx_state = WAITING_FOR_HDR; in rmc_comm_dp_drecv()
896 pkt->rx_state = RECEIVING_BODY_ESC; in rmc_comm_dp_drecv()
898 pkt->inbuf++; in rmc_comm_dp_drecv()
899 pkt->inbuflen--; in rmc_comm_dp_drecv()
904 pkt->buf[pkt->bufpos] = *pkt->inbuf; in rmc_comm_dp_drecv()
905 pkt->inbuf++; in rmc_comm_dp_drecv()
906 pkt->inbuflen--; in rmc_comm_dp_drecv()
907 pkt->bufpos++; in rmc_comm_dp_drecv()
908 if (pkt->bufpos >= pkt->full_length) { in rmc_comm_dp_drecv()
909 dp_got_full_msg(rcs, pkt); in rmc_comm_dp_drecv()
911 pkt->rx_state = RECEIVING_BODY; in rmc_comm_dp_drecv()
1204 dp_message_t *pkt; in rmc_comm_dp_msend() local
1282 pkt = &drr->request; in rmc_comm_dp_msend()
1288 if (pkt->msg_buf != NULL) { in rmc_comm_dp_msend()
1297 if ((pkt->msg_buf = dp_get_buffer(rcs, in rmc_comm_dp_msend()
1303 pkt->msg_bufsiz = DP_BUFFER_SIZE; in rmc_comm_dp_msend()
1317 pkt = &ctl; in rmc_comm_dp_msend()
1318 pkt->msg_buf = (uint8_t *)&ctlbuf; in rmc_comm_dp_msend()
1319 pkt->msg_bufsiz = sizeof (dp_header_t); in rmc_comm_dp_msend()
1342 pkt->msg_type = req->msg_type; in rmc_comm_dp_msend()
1347 pkt->msg_msglen = req->msg_msglen + sizeof (dp_header_t); in rmc_comm_dp_msend()
1356 dp_msgp = (dp_header_t *)pkt->msg_buf; in rmc_comm_dp_msend()
1357 dp_msgp->type = pkt->msg_type; in rmc_comm_dp_msend()
1360 dp_msgp->length = pkt->msg_msglen - in rmc_comm_dp_msend()
1364 pkt->msg_msglen - sizeof (dp_msgp->pad); in rmc_comm_dp_msend()
1369 dp_msgp->crc = dp_calc_crc16(pkt->msg_buf + in rmc_comm_dp_msend()
1376 IS_NUMBERED_MSG(pkt->msg_type)) || in rmc_comm_dp_msend()
1378 IS_UNNUMBERED_MSG(pkt->msg_type))) && in rmc_comm_dp_msend()
1394 bcopy(req->msg_buf, pkt->msg_buf + sizeof (dp_header_t), in rmc_comm_dp_msend()
1396 data_crc = dp_calc_crc16(pkt->msg_buf + in rmc_comm_dp_msend()
1413 pkt->msg_buf + (sizeof (dp_header_t) + in rmc_comm_dp_msend()
1423 pkt = &drr->request; in rmc_comm_dp_msend()
1424 dp_msgp = (dp_header_t *)pkt->msg_buf; in rmc_comm_dp_msend()
1431 if (IS_NUMBERED_MSG(pkt->msg_type)) { in rmc_comm_dp_msend()
1482 dp_msgp->crc = dp_calc_crc16(pkt->msg_buf + in rmc_comm_dp_msend()
1494 dp_send_packet(rcs, pkt->msg_buf); in rmc_comm_dp_msend()