iPXE
|
A single UHCI transfer. More...
#include <uhci.h>
Data Fields | |
unsigned int | prod |
Producer counter. More... | |
unsigned int | cons |
Consumer counter. More... | |
size_t | len |
Completed data length. More... | |
struct uhci_transfer_descriptor * | desc |
Transfer descriptors. More... | |
struct io_buffer * | iobuf |
I/O buffer. More... | |
A single UHCI transfer.
UHCI hardware is extremely simple, and requires software to build the entire packet schedule (including manually handling all of the data toggles). The hardware requires at least 16 bytes of transfer descriptors per 64 bytes of transmitted/received data. We allocate the transfer descriptors at the time that the transfer is enqueued, to avoid the need to allocate unreasonably large blocks when the endpoint is opened.
unsigned int uhci_transfer::prod |
Producer counter.
Definition at line 211 of file uhci.h.
Referenced by uhci_dequeue(), uhci_describe(), uhci_endpoint_message(), uhci_endpoint_poll(), uhci_endpoint_stream(), uhci_enqueue(), and uhci_restart().
unsigned int uhci_transfer::cons |
Consumer counter.
Definition at line 213 of file uhci.h.
Referenced by uhci_endpoint_poll(), uhci_enqueue(), and uhci_restart().
size_t uhci_transfer::len |
Completed data length.
Definition at line 215 of file uhci.h.
Referenced by uhci_endpoint_poll(), and uhci_enqueue().
struct uhci_transfer_descriptor* uhci_transfer::desc |
Transfer descriptors.
Definition at line 218 of file uhci.h.
Referenced by uhci_dequeue(), uhci_describe(), uhci_endpoint_poll(), uhci_enqueue(), uhci_is_message(), and uhci_restart().
struct io_buffer* uhci_transfer::iobuf |
I/O buffer.
Definition at line 221 of file uhci.h.
Referenced by uhci_dequeue(), and uhci_enqueue().