da22dd8a36
- move the contents of umidi{reg,var}.h into umidi.c directly as they are not referenced by any other file. - remove the useless include of umidi{reg,var}.h from umidi_quirks.c. - add reference counting and wait/broadcast support to the IO paths. - fix the error handling in midi_attach() and midi_open(). - sprinkle KASSERT() in several places. - drop the local interrupt lock before calling into various parts of the USB code. fixes lockdebug issues, and likely hangs. - rename "binded" member as "bound". with these most of the panics and problems i've seen are gone. there is still one lockdebug panic to deal with that happens when unplugging umidi while midiplay(1) is running.
85 lines
3.1 KiB
Plaintext
85 lines
3.1 KiB
Plaintext
A small roadmap of the USB files:
|
|
|
|
FILES this file
|
|
Makefile to install .h files
|
|
Makefile.usbdevs to run devlist2h.awk
|
|
TODO just a list of things to do
|
|
devlist2h.awk script to generate usbdevs*.h
|
|
ehci.c Host controller driver for EHCI (just a stub now)
|
|
ehcireg.h Hardware definitions for EHCI (just a stub now)
|
|
ehcivar.h API for ehci.c
|
|
ezload.c EZ-USB firmware download subroutines
|
|
ezload.h API for ezload.c
|
|
files.usb config include file
|
|
hid.c subroutines to parse and access HID data
|
|
hid.h API for hid.c
|
|
if_aue.c USB Pegasus Ethernet driver
|
|
if_auereg.h and definitions for it
|
|
if_cue.c USB CATC Ethernet driver
|
|
if_cuereg.h and definitions for it
|
|
if_kue.c USB Kawasaki Ethernet driver
|
|
if_kuereg.h and definitions for it
|
|
if_upl.c USB Prolific host-to-host driver
|
|
kue_fw.h Kawasaki Ethernet firmware
|
|
ohci.c Host controller driver for OHCI
|
|
ohcireg.h Hardware definitions for OHCI
|
|
ohcivar.h API for ohci.c
|
|
uaudio.c USB audio class driver
|
|
uaudioreg.h and definitions for it
|
|
ubt.c USB Bluetooth driver
|
|
ucom.c TTY emulation for two bulk pipes
|
|
ucomvar.h TTY emulation interface
|
|
uftdi.c USB FTDI serial driver
|
|
uftdireg.h and definitions for it
|
|
ugen.c generic driver that can handle access to any USB device
|
|
uhci.c Host controller driver for UHCI
|
|
uhcireg.h Hardware definitions for UHCI
|
|
uhcivar.h API for uhci.c
|
|
uhid.c USB generic HID driver
|
|
uhidev.c USB HID class driver
|
|
uhidev.h and definitions for it
|
|
uhub.c USB hub driver
|
|
uipaq.c HP ipaq22xx driver
|
|
ukbd.c USB keyboard driver
|
|
ukbdmap.c wscons key mapping for ukbd
|
|
ukbdvar.h API for ukbd.c
|
|
ulpt.c USB printer class driver
|
|
umass.c USB mass storage wire protocol driver
|
|
umass_isdata.c In-System Design ATA over bulk-only driver
|
|
umass_isdata.h and definitions for it
|
|
umass_quirks.c Table of strange umass devices
|
|
umass_quirks.h and definitions for it
|
|
umass_scsipi.c umass command protocol driver
|
|
umass_scsipi.h and definitions for it
|
|
umassvar.h definitions for umass.c
|
|
umidi.c USB MIDI driver
|
|
umidi_quirks.c Strange MIDI devices
|
|
umidi_quirks.h and definitions for it
|
|
umodem.c USB modem (CDC ACM) driver
|
|
ums.c USB mouse driver
|
|
urio.c USB Diamond Rio500 driver
|
|
urio.h USB Diamond Rio500 defines
|
|
usb.c usb (bus) device driver
|
|
usb.h general USB defines
|
|
usb_mem.c memory allocation for DMAable memory
|
|
usb_mem.h API for usb_mem.c
|
|
usb_quirks.c table of non-conforming USB devices and their problems
|
|
usb_quirks.h API for usb_quirks.c
|
|
usb_subr.c various subroutines used by USB code
|
|
usbcdc.h USB CDC class definitions
|
|
usbdevs data base of known device
|
|
usbdevs.h generated from usbdevs
|
|
usbdevs_data.h generated from usbdevs
|
|
usbdi.c implementation of the USBDI API, which all drivers use
|
|
usbdi.h API for usbdi.c
|
|
usbdi_util.c utilities built on top of usbdi.h
|
|
usbdi_util.h API for usbdi_util.c
|
|
usbdivar.h internal defines and structures for usbdi.c
|
|
uscanner.c minimal USB scanner driver
|
|
usscanner.c driver for some SCSI-over-USB scanners
|
|
usbhid.h USB HID class definitions
|
|
uts.c USB touchscreen driver
|
|
uvisor.c USB Handsping Visor driver
|
|
uyap.c Initial firmware downloader for Y@P phones
|
|
uyap_firmware.h Firmware for the Y@P phone
|