version 1.78, 2008/02/12 19:37:51 |
version 1.78.6.1, 2008/04/03 12:42:57 |
Line 150 uhid_attach(struct device *parent, struc |
|
Line 150 uhid_attach(struct device *parent, struc |
|
int size, repid; |
int size, repid; |
void *desc; |
void *desc; |
|
|
|
selinit(&sc->sc_rsel); |
sc->sc_hdev.sc_intr = uhid_intr; |
sc->sc_hdev.sc_intr = uhid_intr; |
sc->sc_hdev.sc_parent = uha->parent; |
sc->sc_hdev.sc_parent = uha->parent; |
sc->sc_hdev.sc_report_id = uha->reportid; |
sc->sc_hdev.sc_report_id = uha->reportid; |
Line 225 uhid_detach(struct device *self, int fla |
|
Line 226 uhid_detach(struct device *self, int fla |
|
sc->sc_hdev.sc_parent->sc_udev, |
sc->sc_hdev.sc_parent->sc_udev, |
USBDEV(sc->sc_hdev.sc_dev)); |
USBDEV(sc->sc_hdev.sc_dev)); |
#endif |
#endif |
|
seldestroy(&sc->sc_rsel); |
|
|
return (0); |
return (0); |
} |
} |
Line 252 uhid_intr(struct uhidev *addr, void *dat |
|
Line 254 uhid_intr(struct uhidev *addr, void *dat |
|
DPRINTFN(5, ("uhid_intr: waking %p\n", &sc->sc_q)); |
DPRINTFN(5, ("uhid_intr: waking %p\n", &sc->sc_q)); |
wakeup(&sc->sc_q); |
wakeup(&sc->sc_q); |
} |
} |
selnotify(&sc->sc_rsel, 0); |
selnotify(&sc->sc_rsel, 0, 0); |
if (sc->sc_async != NULL) { |
if (sc->sc_async != NULL) { |
DPRINTFN(3, ("uhid_intr: sending SIGIO %p\n", sc->sc_async)); |
DPRINTFN(3, ("uhid_intr: sending SIGIO %p\n", sc->sc_async)); |
mutex_enter(&proclist_mutex); |
mutex_enter(&proclist_mutex); |