Commit Graph

6 Commits (feature-hal-spec-usb-device)

Author SHA1 Message Date
Russ Butler 5867e99bc9 Remove inclusion of mbed.h from USB
Remove mbed.h from USB files and fix the build errors this causes.
This is required to pass CI.
2019-01-29 15:31:24 -06:00
Russ Butler 96d9c244a3 Add the PolledQueue implementation of TaskQueue
Add the PolledQueue class which provides a TaskQueue which is run
by calling PolledQueue::process.
2019-01-29 12:27:28 -06:00
Russ Butler 572f9cb2e1 Add the TaskQueue abstract interface and friends
Add the classes Task, TaskBase and TaskQueue. TaskQueue queue is an
interface class which can be implemented by anything which can run
code. Task and TaskBase are concrete classes which allow callbacks
to be posted to a TaskQueue to be run.
2019-01-29 12:27:28 -06:00
Russ Butler 376c213c88 Add circular byte buffer using dynamic memory
Add the ByteBuffer class which is similar to the CircularBuffer class
but uses dynamic memory rather than template parameters and is
optimized for byte transfers. This is required for USBAudio which
needs a high performance circular buffer which can be resized at
runtime.
2019-01-29 12:27:28 -06:00
Russ Butler bfa9992c7d Refactor AsyncOp class
Add the OperationList class to simplify managing async operations.
Add a callback to the AsyncOp class so completion can be signaled with
another mechanism. Finally rework the lock handling so AsyncOp::wait
is passed the lock to use rather than taking it in a constructor.
2019-01-29 12:27:27 -06:00
Russ Butler a6c249b223 Add USB utility classes
Add an allocation free linked list implementation. Additionally add
the class AsyncOp which provides blocking and wakeup funcionality
to simplify making asynchronous operations block.
2019-01-29 12:27:22 -06:00