Lines Matching defs:dcmd
1712 struct bwfm_proto_bcdc_dcmd *dcmd;
1713 size_t size = sizeof(dcmd->hdr) + *len;
1719 dcmd = kmem_zalloc(sizeof(*dcmd), KM_SLEEP);
1720 if (*len > sizeof(dcmd->buf))
1723 dcmd->hdr.cmd = htole32(cmd);
1724 dcmd->hdr.len = htole32(*len);
1725 dcmd->hdr.flags |= BWFM_BCDC_DCMD_GET;
1726 dcmd->hdr.flags |= BWFM_BCDC_DCMD_ID_SET(reqid);
1727 dcmd->hdr.flags |= BWFM_BCDC_DCMD_IF_SET(ifidx);
1728 dcmd->hdr.flags = htole32(dcmd->hdr.flags);
1729 memcpy(&dcmd->buf, buf, *len);
1731 if (sc->sc_bus_ops->bs_txctl(sc, (void *)dcmd,
1732 sizeof(dcmd->hdr) + *len)) {
1738 if (sc->sc_bus_ops->bs_rxctl(sc, (void *)dcmd, &size)) {
1742 dcmd->hdr.cmd = le32toh(dcmd->hdr.cmd);
1743 dcmd->hdr.len = le32toh(dcmd->hdr.len);
1744 dcmd->hdr.flags = le32toh(dcmd->hdr.flags);
1745 dcmd->hdr.status = le32toh(dcmd->hdr.status);
1746 } while (BWFM_BCDC_DCMD_ID_GET(dcmd->hdr.flags) != reqid);
1748 if (BWFM_BCDC_DCMD_ID_GET(dcmd->hdr.flags) != reqid) {
1756 memcpy(buf, dcmd->buf, *len);
1759 if (dcmd->hdr.flags & BWFM_BCDC_DCMD_ERROR)
1760 ret = dcmd->hdr.status;
1764 kmem_free(dcmd, sizeof(*dcmd));
1772 struct bwfm_proto_bcdc_dcmd *dcmd;
1773 size_t size = sizeof(dcmd->hdr) + len;
1778 dcmd = kmem_zalloc(sizeof(*dcmd), KM_SLEEP);
1779 if (len > sizeof(dcmd->buf))
1782 dcmd->hdr.cmd = htole32(cmd);
1783 dcmd->hdr.len = htole32(len);
1784 dcmd->hdr.flags |= BWFM_BCDC_DCMD_SET;
1785 dcmd->hdr.flags |= BWFM_BCDC_DCMD_ID_SET(reqid);
1786 dcmd->hdr.flags |= BWFM_BCDC_DCMD_IF_SET(ifidx);
1787 dcmd->hdr.flags = htole32(dcmd->hdr.flags);
1788 memcpy(&dcmd->buf, buf, len);
1790 if (sc->sc_bus_ops->bs_txctl(sc, (void *)dcmd, size)) {
1796 if (sc->sc_bus_ops->bs_rxctl(sc, (void *)dcmd, &size)) {
1800 dcmd->hdr.cmd = le32toh(dcmd->hdr.cmd);
1801 dcmd->hdr.len = le32toh(dcmd->hdr.len);
1802 dcmd->hdr.flags = le32toh(dcmd->hdr.flags);
1803 dcmd->hdr.status = le32toh(dcmd->hdr.status);
1804 } while (BWFM_BCDC_DCMD_ID_GET(dcmd->hdr.flags) != reqid);
1806 if (BWFM_BCDC_DCMD_ID_GET(dcmd->hdr.flags) != reqid) {
1811 if (dcmd->hdr.flags & BWFM_BCDC_DCMD_ERROR)
1812 return dcmd->hdr.status;
1816 kmem_free(dcmd, sizeof(*dcmd));