Tue Jun 2 15:30:26 CEST 2009

usb next

Simple: build better abstractions.  The first thing to do is to
abstract the buffers better.  Each buffer should be an object +

  - claim / release vs. send / receive
  - buffer chunking
  - data toggle
  - interrupt acknowledge (= transaction request queue)

Second it might be interesting to write some highlevel interface on
top of bit access.  It's important to have the low-level interface for
when speed counts, but in general initializations are not
speed-critical, but they comprise the bulk of the (tediously explicit)