Lines Matching refs:pkt

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