void vdsp_read(void *arg1, void *arg2) { struct vdsp_softc *sc = arg1; while (sc->sc_desc_tail != sc->sc_desc_head) { vdsp_read_desc(sc, sc->sc_desc_msg[sc->sc_desc_tail++]); sc->sc_desc_tail &= (VDSK_RX_ENTRIES - 1); } }
void vdsp_read(void *arg1) { struct vdsp_softc *sc = arg1; mtx_enter(&sc->sc_desc_mtx); while (sc->sc_desc_tail != sc->sc_desc_head) { mtx_leave(&sc->sc_desc_mtx); vdsp_read_desc(sc, sc->sc_desc_msg[sc->sc_desc_tail]); mtx_enter(&sc->sc_desc_mtx); sc->sc_desc_tail++; sc->sc_desc_tail &= (VDSK_RX_ENTRIES - 1); } mtx_leave(&sc->sc_desc_mtx); }