This commit moves the mock classes used for HCD unit tests into
a common header so that other layers of the USB Host stack can
also utilzie them for their own unit tests.
This commit changes the IRP (I/O Request Packet) structure to
the URB (USB Request Block) in order to represent USB transfers
in the host stack. The new URB strcuture:
- Add extra safety with const fields
- Allows each layer of the stack to add their own overhead variables
The HCD layer API and tests have been updated to use this new URB structure
This commit adds support for interrupt and isochronous pipes to the HCD:
- HCD now internally uses double buffering
- Added test cases for interrupt and isochronous transfers
- Reorganized test cases for each transfer type
- Updated API comments and maintainer's notes
Some minor bugs were also fixed
This commit updates the HCD so that transfer requests are no longer used.
The USB IRP object is updated so that the it can be directly passed to the HCD
to start a transfer. HCD API, tests, and documentation updated accordingly.