12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- #ifndef _IPXE_CDC_H
- #define _IPXE_CDC_H
-
- /** @file
- *
- * USB Communications Device Class (CDC)
- *
- */
-
- FILE_LICENCE ( GPL2_OR_LATER );
-
- #include <ipxe/usb.h>
-
- /** Class code for communications devices */
- #define USB_CLASS_CDC 2
-
- /** Union functional descriptor */
- struct cdc_union_descriptor {
- /** Descriptor header */
- struct usb_descriptor_header header;
- /** Descriptor subtype */
- uint8_t subtype;
- /** Interfaces (variable-length) */
- uint8_t interface[1];
- } __attribute__ (( packed ));
-
- /** Union functional descriptor subtype */
- #define CDC_SUBTYPE_UNION 6
-
- /** Ethernet descriptor subtype */
- #define CDC_SUBTYPE_ETHERNET 15
-
- /** Network connection notification */
- #define CDC_NETWORK_CONNECTION \
- ( USB_DIR_IN | USB_TYPE_CLASS | USB_RECIP_INTERFACE | \
- USB_REQUEST_TYPE ( 0x00 ) )
-
- /** Connection speed change notification */
- #define CDC_CONNECTION_SPEED_CHANGE \
- ( USB_DIR_IN | USB_TYPE_CLASS | USB_RECIP_INTERFACE | \
- USB_REQUEST_TYPE ( 0x2a ) )
-
- /** Connection speed change notification */
- struct cdc_connection_speed_change {
- /** Downlink bit rate, in bits per second */
- uint32_t down;
- /** Uplink bit rate, in bits per second */
- uint32_t up;
- } __attribute__ (( packed ));
-
- extern struct cdc_union_descriptor *
- cdc_union_descriptor ( struct usb_configuration_descriptor *config,
- struct usb_interface_descriptor *interface );
-
- #endif /* _IPXE_CDC_H */
|