Lines Matching full:msg
81 struct rndis_query_req *msg, uint16_t len,
84 struct rndis_set_req *msg, uint16_t len);
226 } msg;
281 memset(msg.eaddr.addr, 0, sizeof(msg.eaddr.addr));
284 (struct rndis_query_req *)&msg.eaddr, sizeof(msg.eaddr),
300 msg.filter.filter = htole32(sc->sc_filter);
303 (struct rndis_set_req *)&msg.filter, sizeof(msg.filter));
530 const struct rndis_init_comp *msg;
532 msg = (const struct rndis_init_comp *)hdr;
537 le32toh(msg->rm_len),
538 le32toh(msg->rm_rid),
539 le32toh(msg->rm_status),
540 le32toh(msg->rm_ver_major),
541 le32toh(msg->rm_ver_minor),
542 le32toh(msg->rm_devflags),
543 le32toh(msg->rm_medium),
544 le32toh(msg->rm_pktmaxcnt),
545 le32toh(msg->rm_pktmaxsz),
546 le32toh(msg->rm_align),
547 le32toh(msg->rm_aflistoffset),
548 le32toh(msg->rm_aflistsz));
550 if (le32toh(msg->rm_status) != RNDIS_STATUS_SUCCESS) {
551 DPRINTF("init failed 0x%x\n", le32toh(msg->rm_status));
552 return (le32toh(msg->rm_status));
554 if (le32toh(msg->rm_devflags) != RNDIS_DF_CONNECTIONLESS) {
556 le32toh(msg->rm_devflags));
559 if (le32toh(msg->rm_medium) != RNDIS_MEDIUM_802_3) {
561 le32toh(msg->rm_medium));
564 sc->sc_lim_pktsz = le32toh(msg->rm_pktmaxsz);
566 return (le32toh(msg->rm_status));
573 const struct rndis_query_comp *msg;
576 msg = (const struct rndis_query_comp *)hdr;
580 le32toh(msg->rm_len),
581 le32toh(msg->rm_rid),
582 le32toh(msg->rm_status),
583 le32toh(msg->rm_infobuflen),
584 le32toh(msg->rm_infobufoffset));
588 if (le32toh(msg->rm_status) != RNDIS_STATUS_SUCCESS) {
589 DPRINTF("query failed 0x%x\n", le32toh(msg->rm_status));
590 return (le32toh(msg->rm_status));
592 limit = le32toh(msg->rm_infobuflen);
593 limit += le32toh(msg->rm_infobufoffset);
596 if (limit > (uint64_t)le32toh(msg->rm_len)) {
600 le32toh(msg->rm_infobuflen),
601 le32toh(msg->rm_infobufoffset),
602 le32toh(msg->rm_infobuflen) +
603 le32toh(msg->rm_infobufoffset) + RNDIS_HEADER_OFFSET,
604 le32toh(msg->rm_len));
607 *buf = ((const uint8_t *)msg) + RNDIS_HEADER_OFFSET +
608 le32toh(msg->rm_infobufoffset);
609 *bufsz = le32toh(msg->rm_infobuflen);
611 return (le32toh(msg->rm_status));
618 const struct rndis_reset_comp *msg;
621 msg = (const struct rndis_reset_comp *)hdr;
623 rval = le32toh(msg->rm_status);
627 le32toh(msg->rm_len),
629 le32toh(msg->rm_adrreset));
635 if (msg->rm_adrreset != 0) {
657 struct rndis_init_req msg;
661 msg.rm_type = htole32(REMOTE_NDIS_INITIALIZE_MSG);
662 msg.rm_len = htole32(sizeof(msg));
663 msg.rm_rid = 0;
664 msg.rm_ver_major = htole32(RNDIS_VERSION_MAJOR);
665 msg.rm_ver_minor = htole32(1);
666 msg.rm_max_xfersz = htole32(RNDIS_RX_MAXLEN);
670 le32toh(msg.rm_type),
671 le32toh(msg.rm_len),
672 le32toh(msg.rm_rid),
673 le32toh(msg.rm_ver_major),
674 le32toh(msg.rm_ver_minor),
675 le32toh(msg.rm_max_xfersz));
677 rval = urndis_ctrl_send(sc, &msg, sizeof(msg));
695 struct rndis_halt_req msg;
698 msg.rm_type = htole32(REMOTE_NDIS_HALT_MSG);
699 msg.rm_len = htole32(sizeof(msg));
700 msg.rm_rid = 0;
703 le32toh(msg.rm_type),
704 le32toh(msg.rm_len),
705 le32toh(msg.rm_rid));
707 rval = urndis_ctrl_send(sc, &msg, sizeof(msg));
721 struct rndis_query_req *msg, uint16_t len, const void **rbuf,
727 msg->rm_type = htole32(REMOTE_NDIS_QUERY_MSG);
728 msg->rm_len = htole32(len);
729 msg->rm_rid = 0; /* XXX */
730 msg->rm_oid = htole32(oid);
731 datalen = len - sizeof(*msg);
732 msg->rm_infobuflen = htole32(datalen);
734 msg->rm_infobufoffset = htole32(sizeof(*msg) -
737 msg->rm_infobufoffset = 0;
739 msg->rm_devicevchdl = 0;
743 le32toh(msg->rm_type),
744 le32toh(msg->rm_len),
745 le32toh(msg->rm_rid),
746 le32toh(msg->rm_oid),
747 le32toh(msg->rm_infobuflen),
748 le32toh(msg->rm_infobufoffset),
749 le32toh(msg->rm_devicevchdl));
751 rval = urndis_ctrl_send(sc, msg, len);
768 struct rndis_set_req *msg, uint16_t len)
773 msg->rm_type = htole32(REMOTE_NDIS_SET_MSG);
774 msg->rm_len = htole32(len);
775 msg->rm_rid = 0; /* XXX */
776 msg->rm_oid = htole32(oid);
777 datalen = len - sizeof(*msg);
778 msg->rm_infobuflen = htole32(datalen);
780 msg->rm_infobufoffset = htole32(sizeof(*msg) -
783 msg->rm_infobufoffset = 0;
785 msg->rm_devicevchdl = 0;
789 le32toh(msg->rm_type),
790 le32toh(msg->rm_len),
791 le32toh(msg->rm_rid),
792 le32toh(msg->rm_oid),
793 le32toh(msg->rm_infobuflen),
794 le32toh(msg->rm_infobufoffset),
795 le32toh(msg->rm_devicevchdl));
797 rval = urndis_ctrl_send(sc, msg, len);
820 struct rndis_packet_msg msg;
832 for (offset = 0; actlen >= (uint32_t)sizeof(msg);) {
834 usbd_copy_out(pc, offset, &msg, sizeof(msg));
838 msg.rm_type = le32toh(msg.rm_type);
839 msg.rm_len = le32toh(msg.rm_len);
840 msg.rm_dataoffset = le32toh(msg.rm_dataoffset);
841 msg.rm_datalen = le32toh(msg.rm_datalen);
842 msg.rm_oobdataoffset = le32toh(msg.rm_oobdataoffset);
843 msg.rm_oobdatalen = le32toh(msg.rm_oobdatalen);
844 msg.rm_oobdataelements = le32toh(msg.rm_oobdataelements);
845 msg.rm_pktinfooffset = le32toh(msg.rm_pktinfooffset);
846 msg.rm_pktinfolen = le32toh(msg.rm_pktinfolen);
847 msg.rm_vchandle = le32toh(msg.rm_vchandle);
848 msg.rm_reserved = le32toh(msg.rm_reserved);
853 msg.rm_len, msg.rm_dataoffset, msg.rm_datalen,
854 msg.rm_oobdataoffset, msg.rm_oobdatalen,
855 msg.rm_oobdataelements, msg.rm_pktinfooffset,
856 msg.rm_pktinfooffset);
859 if (msg.rm_type != REMOTE_NDIS_PACKET_MSG) {
861 msg.rm_type, REMOTE_NDIS_PACKET_MSG);
863 } else if (msg.rm_len < (uint32_t)sizeof(msg)) {
864 DPRINTF("invalid msg len %u < %u\n",
865 msg.rm_len, (unsigned)sizeof(msg));
867 } else if (msg.rm_len > (uint32_t)actlen) {
868 DPRINTF("invalid msg len %u > buffer "
869 "len %u\n", msg.rm_len, actlen);
871 } else if (msg.rm_dataoffset >= (uint32_t)actlen) {
872 DPRINTF("invalid msg dataoffset %u > buffer "
873 "dataoffset %u\n", msg.rm_dataoffset, actlen);
875 } else if (msg.rm_datalen > (uint32_t)actlen) {
876 DPRINTF("invalid msg datalen %u > buffer "
877 "datalen %u\n", msg.rm_datalen, actlen);
879 } else if ((msg.rm_dataoffset + msg.rm_datalen +
883 msg.rm_dataoffset + msg.rm_datalen +
887 } else if (msg.rm_datalen < (uint32_t)sizeof(struct ether_header)) {
890 "%u < %u\n", msg.rm_datalen, (unsigned)sizeof(struct ether_header));
892 } else if (msg.rm_datalen > (uint32_t)(MCLBYTES - ETHER_ALIGN)) {
896 msg.rm_datalen, (unsigned)MCLBYTES);
898 } else if (msg.rm_datalen > (uint32_t)(MHLEN - ETHER_ALIGN)) {
906 m->m_len = m->m_pkthdr.len = msg.rm_datalen + ETHER_ALIGN;
909 usbd_copy_out(pc, offset + msg.rm_dataoffset +
911 rm_dataoffset), m->m_data, msg.rm_datalen);
914 uether_rxmbuf(&sc->sc_ue, m, msg.rm_datalen);
918 offset += msg.rm_len;
919 actlen -= msg.rm_len;
946 struct rndis_packet_msg msg;
967 memset(&msg, 0, sizeof(msg));
980 if ((m->m_pkthdr.len + sizeof(msg)) > RNDIS_TX_MAXLEN) {
988 msg.rm_type = htole32(REMOTE_NDIS_PACKET_MSG);
989 msg.rm_len = htole32(sizeof(msg) + m->m_pkthdr.len);
991 msg.rm_dataoffset = htole32(RNDIS_DATA_OFFSET);
992 msg.rm_datalen = htole32(m->m_pkthdr.len);
995 usbd_copy_in(pc, 0, &msg, sizeof(msg));
996 usbd_m_copy_in(pc, sizeof(msg), m, 0, m->m_pkthdr.len);
997 usbd_xfer_set_frame_len(xfer, x, sizeof(msg) + m->m_pkthdr.len);