Lines Matching refs:msg
50 struct urndis_query_req *msg, uint16_t len,
53 struct urndis_set_req *msg, uint16_t len);
186 } msg;
250 (void)memset_s(msg.ibuf.eaddr, sizeof(msg.ibuf.eaddr), 0, sizeof(msg.ibuf.eaddr));
253 &msg.hdr.query, sizeof(msg.hdr.query) + sizeof(msg.ibuf.eaddr),
269 msg.ibuf.filter = htole32(sc->sc_filter);
272 &msg.hdr.set, sizeof(msg.hdr.set) + sizeof(msg.ibuf.filter));
504 const struct urndis_init_comp *msg;
506 msg = (const struct urndis_init_comp *)hdr;
511 le32toh(msg->rm_len),
512 le32toh(msg->rm_rid),
513 le32toh(msg->rm_status),
514 le32toh(msg->rm_ver_major),
515 le32toh(msg->rm_ver_minor),
516 le32toh(msg->rm_devflags),
517 le32toh(msg->rm_medium),
518 le32toh(msg->rm_pktmaxcnt),
519 le32toh(msg->rm_pktmaxsz),
520 le32toh(msg->rm_align),
521 le32toh(msg->rm_aflistoffset),
522 le32toh(msg->rm_aflistsz));
524 if (le32toh(msg->rm_status) != RNDIS_STATUS_SUCCESS) {
525 DPRINTF("init failed 0x%x\n", le32toh(msg->rm_status));
526 return (le32toh(msg->rm_status));
528 if (le32toh(msg->rm_devflags) != RNDIS_DF_CONNECTIONLESS) {
530 le32toh(msg->rm_devflags));
533 if (le32toh(msg->rm_medium) != RNDIS_MEDIUM_802_3) {
535 le32toh(msg->rm_medium));
538 sc->sc_lim_pktsz = le32toh(msg->rm_pktmaxsz);
540 return (le32toh(msg->rm_status));
547 const struct urndis_query_comp *msg;
553 msg = (const struct urndis_query_comp *)hdr;
557 le32toh(msg->rm_len),
558 le32toh(msg->rm_rid),
559 le32toh(msg->rm_status),
560 le32toh(msg->rm_infobuflen),
561 le32toh(msg->rm_infobufoffset));
565 if (le32toh(msg->rm_status) != RNDIS_STATUS_SUCCESS) {
566 DPRINTF("query failed 0x%x\n", le32toh(msg->rm_status));
567 return (le32toh(msg->rm_status));
569 limit = le32toh(msg->rm_infobuflen);
570 limit += le32toh(msg->rm_infobufoffset);
573 if (limit > (uint64_t)le32toh(msg->rm_len)) {
577 le32toh(msg->rm_infobuflen),
578 le32toh(msg->rm_infobufoffset),
579 le32toh(msg->rm_infobuflen) +
580 le32toh(msg->rm_infobufoffset) + RNDIS_HEADER_OFFSET,
581 le32toh(msg->rm_len));
584 *buf = ((const uint8_t *)msg) + RNDIS_HEADER_OFFSET +
585 le32toh(msg->rm_infobufoffset);
586 *bufsz = le32toh(msg->rm_infobuflen);
588 return (le32toh(msg->rm_status));
595 const struct urndis_reset_comp *msg;
598 msg = (const struct urndis_reset_comp *)hdr;
600 rval = le32toh(msg->rm_status);
604 le32toh(msg->rm_len),
606 le32toh(msg->rm_adrreset));
612 if (msg->rm_adrreset != 0) {
634 struct urndis_init_req msg;
638 msg.rm_type = htole32(REMOTE_NDIS_INITIALIZE_MSG);
639 msg.rm_len = htole32(sizeof(msg));
640 msg.rm_rid = 0;
641 msg.rm_ver_major = htole32(1);
642 msg.rm_ver_minor = htole32(1);
643 msg.rm_max_xfersz = htole32(RNDIS_RX_MAXLEN);
647 le32toh(msg.rm_type),
648 le32toh(msg.rm_len),
649 le32toh(msg.rm_rid),
650 le32toh(msg.rm_ver_major),
651 le32toh(msg.rm_ver_minor),
652 le32toh(msg.rm_max_xfersz));
654 rval = urndis_ctrl_send(sc, &msg, sizeof(msg));
672 struct urndis_halt_req msg;
675 msg.rm_type = htole32(REMOTE_NDIS_HALT_MSG);
676 msg.rm_len = htole32(sizeof(msg));
677 msg.rm_rid = 0;
680 le32toh(msg.rm_type),
681 le32toh(msg.rm_len),
682 le32toh(msg.rm_rid));
684 rval = urndis_ctrl_send(sc, &msg, sizeof(msg));
698 struct urndis_query_req *msg, uint16_t len, const void **rbuf,
704 msg->rm_type = htole32(REMOTE_NDIS_QUERY_MSG);
705 msg->rm_len = htole32(len);
706 msg->rm_rid = 0; /* XXX */
707 msg->rm_oid = htole32(oid);
708 datalen = len - sizeof(*msg);
709 msg->rm_infobuflen = htole32(datalen);
711 msg->rm_infobufoffset = htole32(sizeof(*msg) -
714 msg->rm_infobufoffset = 0;
716 msg->rm_devicevchdl = 0;
720 le32toh(msg->rm_type),
721 le32toh(msg->rm_len),
722 le32toh(msg->rm_rid),
723 le32toh(msg->rm_oid),
724 le32toh(msg->rm_infobuflen),
725 le32toh(msg->rm_infobufoffset),
726 le32toh(msg->rm_devicevchdl));
728 rval = urndis_ctrl_send(sc, msg, len);
745 struct urndis_set_req *msg, uint16_t len)
750 msg->rm_type = htole32(REMOTE_NDIS_SET_MSG);
751 msg->rm_len = htole32(len);
752 msg->rm_rid = 0; /* XXX */
753 msg->rm_oid = htole32(oid);
754 datalen = len - sizeof(*msg);
755 msg->rm_infobuflen = htole32(datalen);
757 msg->rm_infobufoffset = htole32(sizeof(*msg) -
760 msg->rm_infobufoffset = 0;
762 msg->rm_devicevchdl = 0;
766 le32toh(msg->rm_type),
767 le32toh(msg->rm_len),
768 le32toh(msg->rm_rid),
769 le32toh(msg->rm_oid),
770 le32toh(msg->rm_infobuflen),
771 le32toh(msg->rm_infobufoffset),
772 le32toh(msg->rm_devicevchdl));
774 rval = urndis_ctrl_send(sc, msg, len);
794 static int urndis_bulk_read(struct usb_xfer *xfer, struct urndis_packet_msg *msg, int offset)
802 m = pbuf_alloc(PBUF_RAW, msg->rm_datalen + ETH_PAD_SIZE, PBUF_RAM);
817 usbd_copy_out(pc, offset + msg->rm_dataoffset +
818 OFFSET_OF(struct urndis_packet_msg, rm_dataoffset), m->payload, msg->rm_datalen);
840 struct urndis_packet_msg msg;
851 for (offset = 0; actlen >= (int)sizeof(msg);) {
853 usbd_copy_out(pc, offset, &msg, sizeof(msg));
857 msg.rm_type = le32toh(msg.rm_type);
858 msg.rm_len = le32toh(msg.rm_len);
859 msg.rm_dataoffset = le32toh(msg.rm_dataoffset);
860 msg.rm_datalen = le32toh(msg.rm_datalen);
861 msg.rm_oobdataoffset = le32toh(msg.rm_oobdataoffset);
862 msg.rm_oobdatalen = le32toh(msg.rm_oobdatalen);
863 msg.rm_oobdataelements = le32toh(msg.rm_oobdataelements);
864 msg.rm_pktinfooffset = le32toh(msg.rm_pktinfooffset);
865 msg.rm_pktinfolen = le32toh(msg.rm_pktinfolen);
866 msg.rm_vchandle = le32toh(msg.rm_vchandle);
867 msg.rm_reserved = le32toh(msg.rm_reserved);
872 msg.rm_len, msg.rm_dataoffset, msg.rm_datalen,
873 msg.rm_oobdataoffset, msg.rm_oobdatalen,
874 msg.rm_oobdataelements, msg.rm_pktinfooffset,
875 msg.rm_pktinfooffset);
878 if (msg.rm_type != REMOTE_NDIS_PACKET_MSG) {
880 msg.rm_type, REMOTE_NDIS_PACKET_MSG);
882 } else if (msg.rm_len < (uint32_t)sizeof(msg)) {
883 DPRINTF("invalid msg len %u < %u\n",
884 msg.rm_len, (unsigned)sizeof(msg));
886 } else if (msg.rm_len > (uint32_t)actlen) {
887 DPRINTF("invalid msg len %u > buffer "
888 "len %u\n", msg.rm_len, actlen);
890 } else if (msg.rm_dataoffset >= (uint32_t)actlen) {
891 DPRINTF("invalid msg dataoffset %u > buffer "
892 "dataoffset %u\n", msg.rm_dataoffset, actlen);
894 } else if (msg.rm_datalen > (uint32_t)actlen) {
895 DPRINTF("invalid msg datalen %u > buffer "
896 "datalen %u\n", msg.rm_datalen, actlen);
898 } else if (msg.rm_datalen < (uint32_t)sizeof(struct ether_header)) {
900 "%u < %u\n", msg.rm_datalen, (unsigned)sizeof(struct ether_header));
902 } else if (msg.rm_datalen > (uint32_t)(MCLBYTES - ETHER_ALIGN)) {
905 msg.rm_datalen, (unsigned)MCLBYTES);
908 if (0 != urndis_bulk_read(xfer, &msg, offset)) {
913 offset += msg.rm_len;
914 actlen -= msg.rm_len;
943 struct urndis_packet_msg msg;
962 (void)memset_s(&msg, sizeof(msg), 0, sizeof(msg));
977 if ((m->len + sizeof(msg)) > RNDIS_TX_MAXLEN) {
984 msg.rm_type = htole32(REMOTE_NDIS_PACKET_MSG);
985 msg.rm_len = htole32(sizeof(msg) + m->len);
987 msg.rm_dataoffset = htole32(RNDIS_DATA_OFFSET);
988 msg.rm_datalen = htole32(m->len);
991 usbd_copy_in(pc, 0, &msg, sizeof(msg));
992 usbd_copy_in(pc, sizeof(msg), m->payload, m->len);
993 usbd_xfer_set_frame_len(xfer, x, sizeof(msg) + m->len);