|
dxd - dynax driver framework 3.0.2
cross platform open source driver development framework
|
one endpoint's ring and request pipeline More...
#include <dxd_usb_stream.h>
Public Member Functions | |
| os_result | allocate(const struct desc_t::stream::config* active) override |
| binds the pipe to the given stream configuration off its descriptors, the ring's memory kept: the endpoint, the packets and the slots over them, the sink's own feedback endpoint, the ring's size - the bus's alternate setting is the session's, its charge selects it. The binding stands complete ahead of replacing the pipe's, so a pipe a session runs, a stream off or a binding without memory keeps the one it has; the device's configuration is not asked, its server binds ahead of the commit | |
| void | free() |
| what the binding to a stream configuration holds - the ring's memory stays | |
| 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 |
| os_result | write(const ::MDL* mdl) const |
| WDK: USB synchronous isochronous write request. | |
| template<typename data_t> | |
| os_result | write(const data_t& data) const |
| os_result | write(const void* data, size_t size) const |
Protected Attributes | |
| unsigned char | address |
| unsigned short | frame_size{} |
| unsigned char | interval{1} |
| os_result | status{not_initialized} |
| WDK pipe status. | |
Friends | |
| class | dx::usb::isoc::pipeline<pipe> |
| struct | dx::usb::isoc::session<group<device_t>> |
| 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 |
|
inlineoverride |
binds the pipe to the given stream configuration off its descriptors, the ring's memory kept: the endpoint, the packets and the slots over them, the sink's own feedback endpoint, the ring's size - the bus's alternate setting is the session's, its charge selects it. The binding stands complete ahead of replacing the pipe's, so a pipe a session runs, a stream off or a binding without memory keeps the one it has; the device's configuration is not asked, its server binds ahead of the commit
|
inlineinherited |
WDK pipe stall reset, toggle.
|
inlineinherited |
|
inline |
what the binding to a stream configuration holds - the ring's memory stays
|
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 |
|
friend |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
WDK pipe status.