descriptor.h File Reference

Definitions for USB protocol messages. More...

Detailed Description

Definitions for USB protocol messages.

Author
Koen Zandberg koen@.nosp@m.berg.nosp@m.zand..nosp@m.net

Definition in file descriptor.h.

#include <stdint.h>
#include <stdbool.h>
+ Include dependency graph for descriptor.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  usb_descriptor_device_t
 USB device descriptor (USB 2.0 spec table 9-8) More...
 
struct  usb_descriptor_configuration_t
 USB configuration descriptor (USB 2.0 spec table 9-10) More...
 
struct  usb_descriptor_interface_t
 USB interface descriptor (USB 2.0 spec table 9-12) More...
 
struct  usb_descriptor_endpoint_t
 USB endpoint descriptor (USB 2.0 spec table 9-13) More...
 
struct  usb_descriptor_string_t
 USB string descriptor (USB 2.0 spec table 9-16) More...
 
struct  usb_descriptor_interface_association_t
 USB interface association descriptor (Interface Association Descriptors table 9-Z) More...
 
struct  usb_setup_t
 USB setup packet (USB 2.0 spec table 9-2) More...
 

Macros

#define USB_ENDPOINT_DESCRIPTOR_INTERVAL_ISOCHRONOUS   1
 USB isochronous endpoint interval.
 

Functions

static bool usb_setup_is_read (usb_setup_t *pkt)
 getter for setup packet direction More...
 

USB standard device request codes (USB 2.0 spec table 9-4)

#define USB_SETUP_REQ_GET_STATUS   0x00
 Status request.
 
#define USB_SETUP_REQ_CLEAR_FEATURE   0x01
 Clear feature.
 
#define USB_SETUP_REQ_SET_FEATURE   0x03
 Set feature.
 
#define USB_SETUP_REQ_SET_ADDRESS   0x05
 Set address.
 
#define USB_SETUP_REQ_GET_DESCRIPTOR   0x06
 Get descriptor.
 
#define USB_SETUP_REQ_SET_DESCRIPTOR   0x07
 Set descriptor.
 
#define USB_SETUP_REQ_GET_CONFIGURATION   0x08
 Get configuration.
 
#define USB_SETUP_REQ_SET_CONFIGURATION   0x09
 Set configuration.
 
#define USB_SETUP_REQ_GET_INTERFACE   0x0a
 Get interface.
 
#define USB_SETUP_REQ_SET_INTERFACE   0x0b
 Set interface.
 
#define USB_SETUP_REQ_SYNCH_FRAME   0x0c
 Synch frame.
 

USB descriptor types (USB 2.0 spec table 9-5)

#define USB_TYPE_DESCRIPTOR_DEVICE   0x01
 Device descriptor.
 
#define USB_TYPE_DESCRIPTOR_CONFIGURATION   0x02
 Configuration Descriptor.
 
#define USB_TYPE_DESCRIPTOR_STRING   0x03
 String descriptor.
 
#define USB_TYPE_DESCRIPTOR_INTERFACE   0x04
 Interface descriptor.
 
#define USB_TYPE_DESCRIPTOR_ENDPOINT   0x05
 Endpoint descriptor.
 
#define USB_TYPE_DESCRIPTOR_DEV_QUALIFIER   0x06
 Device qualifier.
 
#define USB_TYPE_DESCRIPTOR_SPEED_CONFIG   0x07
 Other speed configuration.
 
#define USB_TYPE_DESCRIPTOR_IFACE_POWER   0x08
 Interface power.
 
#define USB_TYPE_DESCRIPTOR_INTERFACE_ASSOC   0x0b
 Interface association.
 

USB configuration attributes

#define USB_CONF_ATTR_RESERVED   0x80
 Reserved bit (always 1)
 
#define USB_CONF_ATTR_SELF_POWERED   0x40
 Self powered device flag.
 
#define USB_CONF_ATTR_REM_WAKEUP   0x20
 Remote wake-up flag.
 

USB setup packet requests types

#define USB_SETUP_REQUEST_DEVICE2HOST   0x80
 Request direction From device to host if the bit is set.
 
#define USB_SETUP_REQUEST_RECIPIENT_MASK   0x1f
 Recipient mask.
 
#define USB_SETUP_REQUEST_RECIPIENT_DEVICE   0x00
 Device request.
 
#define USB_SETUP_REQUEST_RECIPIENT_INTERFACE   0x01
 Interface request.
 
#define USB_SETUP_REQUEST_RECIPIENT_ENDPOINT   0x02
 Endpoint request.
 
#define USB_SETUP_REQUEST_RECIPIENT_OTHER   0x03
 Other type request.
 
#define USB_SETUP_REQUEST_TYPE_MASK   0x60
 Mask to select the type.
 
#define USB_SETUP_REQUEST_TYPE_STANDARD   0x00
 Standard request.
 
#define USB_SETUP_REQUEST_TYPE_CLASS   0x20
 Class request.
 
#define USB_SETUP_REQUEST_TYPE_VENDOR   0x40
 Vendor specific request.
 

USB device class numbers

#define USB_CLASS_AUDIO   0x01
 Audio device.
 
#define USB_CLASS_CDC_CONTROL   0x02
 CDC control interface.
 
#define USB_CLASS_HID   0x03
 Human Interface device.
 
#define USB_CLASS_PHYSICAL   0x05
 Physical device class.
 
#define USB_CLASS_IMAGE   0x06
 Image device class.
 
#define USB_CLASS_PRINTER   0x07
 Printer device class.
 
#define USB_CLASS_MASS_STORAGE   0x08
 Mass storage device class.
 
#define USB_CLASS_CDC_DATA   0x0a
 CDC data specification.
 
#define USB_CLASS_VENDOR   0xff
 Vendor specific class.