descriptor values. E.g. for the user, the distinction between MaxIsoPkt and MaxPktSize is irrelevant, only the calculated max packet size matters.
libusb_device, since the struct is not defined in libusb headers (only name is declared), as such the compiler doesn't know the size of the struct to allocate.
convenience wrapper. Reimplement the same trivial wrapper in Go.
Libusb wrappers
ways of calling out to cgo.
extracted from the device. Makes testing easier.
a fake libusb xfer underneath.
Change the interface a bit.
add a data() method, to avoid reaching into any xfer fields.
to sync on c.done channel before exiting.