|
dxd - dynax driver framework 3.0.0d222
cross platform open source driver development framework
|
one endpoint's ring and request pipeline More...
#include <dxd_usb_stream.h>
Public Member Functions | |
| pipe (device_t &device, unsigned int idx, size_t size) | |
| ~pipe () override | |
Protected Types | |
| enum | type { control = ::UsbdPipeTypeControl , isoc = ::UsbdPipeTypeIsochronous , bulk = ::UsbdPipeTypeBulk , interrupt = ::UsbdPipeTypeInterrupt } |
Protected Member Functions | |
| os_result | clear () |
| WDK pipe stall reset, toggle. | |
| direction | direction () const |
| os_result | max_frame_size (unsigned int frame_size) |
| os_result | open (const ::USBD_INTERFACE_INFORMATION *usbd_interface) |
| binds the pipe to the endpoint's pipe of the given interface setting: a re-selected alternate setting renews the handles | |
| operator::USBD_PIPE_HANDLE () const | |
| os_result | receive (::MDL *mdl) |
| WDK: USB asynchronous irq/bulk receive request. | |
| os_result | receive (::MDL *mdl, uint64_t &sequence, isoc_frame *frame, unsigned int frames) |
| os_result | transmit (const ::MDL *mdl) |
| WDK: USB asynchronous irq/bulk transmit request. | |
| os_result | transmit (const ::MDL *mdl, uint64_t &sequence, isoc_frame *frame, unsigned int frames) |
| type | type () const |
| template<typename data_t> | |
| os_result | write (const data_t &data) const |
| os_result | write (const void *data, size_t size) const |
| os_result | write (const::MDL *mdl) const |
| WDK: USB synchronous isochronous write request. | |
Protected Attributes | |
| unsigned char | address |
| unsigned short | frame_size = 0 |
| unsigned char | interval = 1 |
| os_result | status = not_initialized |
| WDK pipe status. | |
Friends | |
| class | dx::usb::isoc::pipeline< pipe > |
| class | group< device_t > |
one endpoint's ring and request pipeline
The group's tick at bus frame frame submits this pipe's free slot a round ahead, resubmits every polled completion a round on and moves the data: an out slot due lead frames ahead is filled from the ring into its pending request, the in slot due lead frames behind is taken ahead of its completion - completions only count. A bulk pipe keeps one receive pending and sends what the ring holds.
|
inherited |
|
inline |
|
inlineoverridevirtual |
|
inlineinherited |
WDK pipe stall reset, toggle.
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
binds the pipe to the endpoint's pipe of the given interface setting: a re-selected alternate setting renews the handles
|
inlineinherited |
|
inlineinherited |
WDK: USB asynchronous irq/bulk receive request.
|
inlineinherited |
| mdl | memory descriptor of the data to be read |
|
inlineinherited |
WDK: USB asynchronous irq/bulk transmit request.
|
inlineinherited |
| mdl | memory descriptor of the data to be written |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
friend |
|
inherited |
| dx::circular* dxd::usb::stream::pipe< device_t >::feedback |
the sink's own line counts per frame, in place of the device's ring
|
inherited |
|
inherited |
| usb::pipe* dxd::usb::stream::pipe< device_t >::pipe |
explicit feedback: the isoc endpoint an asynchronous sink states its rate on, the pipeline's sync slots its requests
|
inherited |
WDK pipe status.
| (c) copyright 2009 dynamic acoustics e.U. | generated on |