int uscannerread(dev_t dev, struct uio *uio, int flag) { struct uscanner_softc *sc; int error; sc = device_lookup_private(&uscanner_cd, USCANNERUNIT(dev)); sc->sc_refcnt++; error = uscanner_do_read(sc, uio, flag); if (--sc->sc_refcnt < 0) usb_detach_wakeupold(sc->sc_dev); return (error); }
int uscannerread(dev_t dev, struct uio *uio, int flag) { struct uscanner_softc *sc; int error; USB_GET_SC(uscanner, USCANNERUNIT(dev), sc); sc->sc_refcnt++; error = uscanner_do_read(sc, uio, flag); if (--sc->sc_refcnt < 0) usb_detach_wakeup(USBDEV(sc->sc_dev)); return (error); }