Struct capsules::usb::DeviceDescriptor
[−]
[src]
pub struct DeviceDescriptor { pub usb_release: u16, pub class: u8, pub subclass: u8, pub protocol: u8, pub max_packet_size_ep0: u8, pub vendor_id: u16, pub product_id: u16, pub device_release: u16, pub manufacturer_string: u8, pub product_string: u8, pub serial_number_string: u8, pub num_configurations: u8, }
Fields
usb_release: u16
Valid values include 0x0100 (USB1.0), 0x0110 (USB1.1) and 0x0200 (USB2.0)
class: u8
0x00 means each interface defines its own class. 0xFF means the class behavior is defined by the vendor. All other values have meaning assigned by USB-IF
subclass: u8
Assigned by USB-IF if class
is
protocol: u8
Assigned by USB-IF if class
is
max_packet_size_ep0: u8
Max packet size for endpoint 0. Must be 8, 16, 32 or 64
vendor_id: u16
Obtained from USB-IF
product_id: u16
Together with vendor_id
, this must be unique to the product
device_release: u16
Device release number in binary coded decimal (BCD)
manufacturer_string: u8
Index of the string descriptor describing manufacturer, or 0 if none
product_string: u8
Index of the string descriptor describing product, or 0 if none
serial_number_string: u8
Index of the string descriptor giving device serial number, or 0 if none
num_configurations: u8
Number of configurations the device supports. Must be at least one
Trait Implementations
impl Default for DeviceDescriptor
[src]
impl Descriptor for DeviceDescriptor
[src]
fn size(&self) -> usize
[src]
Serialized size of Descriptor
fn write_to_unchecked(&self, buf: &[Cell<u8>]) -> usize
[src]
Same as write_to()
, but doesn't check that buf
is long enough before indexing into it. This should be used only if the result of size()
is first consulted. Read more
fn write_to(&self, buf: &[Cell<u8>]) -> usize
[src]
Serialize the descriptor to a buffer for transmission on the bus