#[non_exhaustive]pub struct EndpointConfig {
pub addr: Option<EndpointAddress>,
pub ep_type: EndpointType,
pub max_packet_size: u16,
pub interval_ms: u8,
pub buffers: u8,
pub max_burst: u8,
pub max_streams: u8,
pub mult: u8,
pub bytes_per_interval: u32,
}Expand description
Configuration to allocate an endpoint with.
The driver must allocate an endpoint with exactly the given addr (if any), ep_type,
max_packet_size and interval_ms, or fail. The docs of the other fields say whether the
driver may deviate from them.
The SuperSpeed fields are those of the endpoint’s SuperSpeed Endpoint Companion descriptor, and 0 for an endpoint that has none.
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.addr: Option<EndpointAddress>Endpoint’s address, or None for the driver to pick one.
ep_type: EndpointTypeEndpoint’s type.
max_packet_size: u16Max packet size, in bytes.
interval_ms: u8Polling interval, in milliseconds.
buffers: u8Number of packets the hardware may buffer for the endpoint.
More buffers let the hardware move the next packet while software is still busy with the previous one, at the cost of more packet memory.
This is just a best-effort hint for the driver. Drivers may use a lower value if there is not enough packet memory, or completely ignore it.
max_burst: u8SuperSpeed bMaxBurst: the endpoint bursts up to max_burst + 1 packets.
Drivers may use a lower value, and report it in EndpointInfo::max_burst.
max_streams: u8SuperSpeed bulk MaxStreams: the endpoint has 2^max_streams streams, or none when 0.
mult: u8SuperSpeed isochronous Mult: the endpoint moves up to mult + 1 bursts per service
interval.
bytes_per_interval: u32SuperSpeed periodic wBytesPerInterval, or the dwBytesPerInterval of a SuperSpeedPlus
isochronous endpoint: the bytes the endpoint moves per service interval.
Implementations§
Source§impl EndpointConfig
impl EndpointConfig
Sourcepub const fn new(
addr: Option<EndpointAddress>,
ep_type: EndpointType,
max_packet_size: u16,
interval_ms: u8,
) -> Self
pub const fn new( addr: Option<EndpointAddress>, ep_type: EndpointType, max_packet_size: u16, interval_ms: u8, ) -> Self
An endpoint with one buffer and all SuperSpeed fields 0.
Trait Implementations§
Source§impl Clone for EndpointConfig
impl Clone for EndpointConfig
Source§fn clone(&self) -> EndpointConfig
fn clone(&self) -> EndpointConfig
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more