Validate configuration through its owning schemas and keep board declarations separate from shared F722 resource ownership. Bound USB transitions, isolate transport failures and retain restart-only activation. Migrate navigation and flight consumers with the sensor and schema contracts. Require explicit installation data and synchronous output authority; board motor outputs remain inhibited. Validation: assembled-prefix host tests, strict Clippy, platform/USB tests and both ARM release builds. Final-source coverage and scoped Miri/Kani evidence are retained separately from hardware qualification.
42 lines
1.4 KiB
Rust
42 lines
1.4 KiB
Rust
use usb_device::endpoint::{EndpointAddress, EndpointType};
|
|
|
|
/// USB endpoint descriptor information.
|
|
pub struct EndpointDescriptor {
|
|
/// Endpoint address.
|
|
pub address: EndpointAddress,
|
|
|
|
/// Endpoint transfer type.
|
|
pub ep_type: EndpointType,
|
|
|
|
/// Maximum packet size.
|
|
pub max_packet_size: u16,
|
|
|
|
/// Poll interval for interrupt endpoints.
|
|
pub interval: u8,
|
|
}
|
|
|
|
/// Configuration for an endpoint allocation.
|
|
pub struct EndpointConfig {
|
|
/// The transfer type of the endpoint to be allocated.
|
|
pub ep_type: EndpointType,
|
|
|
|
/// Maximum packet size for the endpoint to be allocated.
|
|
pub max_packet_size: u16,
|
|
|
|
/// Poll interval for interrupt endpoints.
|
|
pub interval: u8,
|
|
|
|
/// Requests a specific endpoint number. Allocation shall fail if the number is not available.
|
|
pub number: Option<u8>,
|
|
|
|
/// Specifies that the endpoint is the "pair" of another endpoint.
|
|
///
|
|
/// If `ep` is an endpoint in the opposite direction, this means that the endpoint to be
|
|
/// allocated uses the same transfer type as `ep` but in the opposite direction in all alternate
|
|
/// settings for the interface.
|
|
///
|
|
/// If `ep` is an endpoint in the same direction, this means that the two endpoints belong to
|
|
/// different alternate settings for the interface and may never be enabled at the same time.
|
|
pub pair_of: Option<EndpointAddress>,
|
|
}
|