Data Fields
uhci_transfer Struct Reference

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_descriptordesc
 Transfer descriptors. More...
struct io_bufferiobuf
 I/O buffer. More...

Detailed Description

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.

Definition at line 209 of file uhci.h.

Field Documentation

◆ prod

unsigned int uhci_transfer::prod

◆ cons

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().

◆ len

size_t uhci_transfer::len

Completed data length.

Definition at line 215 of file uhci.h.

Referenced by uhci_endpoint_poll(), and uhci_enqueue().

◆ desc

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().

◆ iobuf

struct io_buffer* uhci_transfer::iobuf

I/O buffer.

Definition at line 221 of file uhci.h.

Referenced by uhci_dequeue(), and uhci_enqueue().

The documentation for this struct was generated from the following file: