vd_desc
struct vd_desc *vd_desc;
if (sc->sc_vd->vd_desc[desc].hdr.dstate == VIO_DESC_DONE)
if (sc->sc_vd->vd_desc[desc].hdr.dstate == VIO_DESC_DONE) {
sc->sc_vd->vd_desc[desc].cookie[ncookies].addr =
sc->sc_vd->vd_desc[desc].cookie[ncookies].size = nbytes;
sc->sc_vd->vd_desc[desc].hdr.ack = 1;
sc->sc_vd->vd_desc[desc].hdr.ack = 0;
sc->sc_vd->vd_desc[desc].operation = operation;
sc->sc_vd->vd_desc[desc].slice = VD_SLICE_NONE;
sc->sc_vd->vd_desc[desc].status = 0xffffffff;
sc->sc_vd->vd_desc[desc].offset = lba;
sc->sc_vd->vd_desc[desc].size = xs->datalen;
sc->sc_vd->vd_desc[desc].ncookies = ncookies;
sc->sc_vd->vd_desc[desc].hdr.dstate = VIO_DESC_READY;
if (sc->sc_vd->vd_desc[desc].status != 0)
sc->sc_vd->vd_desc[desc].size;
sc->sc_vd->vd_desc[desc].hdr.dstate = VIO_DESC_FREE;
va = (vaddr_t)sc->sc_vd->vd_desc;
while (sc->sc_vd->vd_desc[cons].hdr.dstate == VIO_DESC_DONE) {
dr.descriptor_size = sizeof(struct vd_desc);
size = roundup(nentries * sizeof(struct vd_desc), PAGE_SIZE);
vd->vd_desc = (struct vd_desc *)va;
bzero(vd->vd_desc, nentries * sizeof(struct vd_desc));
vd->vd_desc[i].hdr.dstate = VIO_DESC_FREE;
size = vd->vd_nentries * sizeof(struct vd_desc);
bus_dmamem_unmap(t, (caddr_t)vd->vd_desc, size);
kmem_free(vd->vd_desc, size);
struct vnet_desc *vd_desc;
while (sc->sc_vd->vd_desc[prod].hdr.dstate == VIO_DESC_FREE) {
sc->sc_vd->vd_desc[prod].nbytes = MAX(m->m_pkthdr.len, 60);
sc->sc_vd->vd_desc[prod].ncookies = 1;
sc->sc_vd->vd_desc[prod].cookie[0].addr =
sc->sc_vd->vd_desc[prod].cookie[0].size = 2048;
sc->sc_vd->vd_desc[prod].hdr.dstate = VIO_DESC_READY;
va = (vaddr_t)sc->sc_vd->vd_desc;
vd->vd_desc = (struct vnet_desc *)va;
bzero(vd->vd_desc, nentries * sizeof(struct vnet_desc));
vd->vd_desc[i].hdr.dstate = VIO_DESC_FREE;
kmem_free(vd->vd_desc, size);
while (sc->sc_vd->vd_desc[cons].hdr.dstate == VIO_DESC_DONE) {
sc->sc_vd->vd_desc[cons].hdr.dstate = VIO_DESC_FREE;
sc->sc_vd->vd_desc[i].hdr.dstate = VIO_DESC_FREE;