FreeBSD kernel usb device Code
usb.h File Reference
#include "opt_usb.h"
#include <sys/malloc.h>
#include <dev/usb/usb_endian.h>
#include <dev/usb/usb_freebsd.h>
Include dependency graph for usb.h:

Go to the source code of this file.

Data Structures

struct  usb_device_request
 
struct  usb_descriptor
 
struct  usb_device_descriptor
 
struct  usb_bos_descriptor
 
struct  usb_bos_cap_descriptor
 
struct  usb_devcap_usb2ext_descriptor
 
struct  usb_devcap_ss_descriptor
 
struct  usb_devcap_container_id_descriptor
 
struct  usb_config_descriptor
 
struct  usb_interface_descriptor
 
struct  usb_interface_assoc_descriptor
 
struct  usb_endpoint_descriptor
 
struct  usb_endpoint_ss_comp_descriptor
 
struct  usb_string_descriptor
 
struct  usb_string_lang
 
struct  usb_hub_descriptor
 
struct  usb_hub_ss_descriptor
 
struct  usb_hub_descriptor_min
 
struct  usb_device_qualifier
 
struct  usb_otg_descriptor
 
struct  usb_status
 
struct  usb_hub_status
 
struct  usb_port_status
 

Macros

#define USB_STACK_VERSION   2000 /* 2.0 */
 
#define USB_MAX_IPACKET   8 /* initial USB packet size */
 
#define USB_EP_MAX   (2*16) /* hardcoded */
 
#define USB_ROOT_HUB_ADDR   1 /* index */
 
#define USB_MIN_DEVICES   2 /* unused + root HUB */
 
#define USB_UNCONFIG_INDEX   0xFF /* internal use only */
 
#define USB_IFACE_INDEX_ANY   0xFF /* internal use only */
 
#define USB_START_ADDR
 
#define USB_CONTROL_ENDPOINT   0 /* default control endpoint */
 
#define USB_FRAMES_PER_SECOND_FS   1000 /* full speed */
 
#define USB_FRAMES_PER_SECOND_HS   8000 /* high speed */
 
#define USB_FS_BYTES_PER_HS_UFRAME   188 /* bytes */
 
#define USB_HS_MICRO_FRAMES_MAX   8 /* units */
 
#define USB_ISOC_TIME_MAX   128 /* ms */
 
#define USB_POWER_DOWN_TIME   200 /* ms */
 
#define USB_PORT_POWER_DOWN_TIME   100 /* ms */
 
#define USB_POWER_MODE_OFF   0 /* turn off device */
 
#define USB_POWER_MODE_ON   1 /* always on */
 
#define USB_POWER_MODE_SAVE   2 /* automatic suspend and resume */
 
#define USB_POWER_MODE_SUSPEND   3 /* force suspend */
 
#define USB_POWER_MODE_RESUME   4 /* force resume */
 
#define USB_PORT_RESET_DELAY_SPEC   10 /* ms */
 
#define USB_PORT_ROOT_RESET_DELAY_SPEC   50 /* ms */
 
#define USB_PORT_RESET_RECOVERY_SPEC   10 /* ms */
 
#define USB_PORT_POWERUP_DELAY_SPEC   100 /* ms */
 
#define USB_PORT_RESUME_DELAY_SPEC   20 /* ms */
 
#define USB_SET_ADDRESS_SETTLE_SPEC   2 /* ms */
 
#define USB_RESUME_DELAY_SPEC   (20*5) /* ms */
 
#define USB_RESUME_WAIT_SPEC   10 /* ms */
 
#define USB_RESUME_RECOVERY_SPEC   10 /* ms */
 
#define USB_EXTRA_POWER_UP_TIME_SPEC   0 /* ms */
 
#define USB_PORT_RESET_DELAY   50 /* ms */
 
#define USB_PORT_ROOT_RESET_DELAY   200 /* ms */
 
#define USB_PORT_RESET_RECOVERY   10 /* ms */
 
#define USB_PORT_POWERUP_DELAY   300 /* ms */
 
#define USB_PORT_RESUME_DELAY   (20*2) /* ms */
 
#define USB_SET_ADDRESS_SETTLE   10 /* ms */
 
#define USB_RESUME_DELAY   (50*5) /* ms */
 
#define USB_RESUME_WAIT   50 /* ms */
 
#define USB_RESUME_RECOVERY   50 /* ms */
 
#define USB_EXTRA_POWER_UP_TIME   20 /* ms */
 
#define USB_MIN_POWER   100 /* mA */
 
#define USB_MAX_POWER   500 /* mA */
 
#define USB_BUS_RESET_DELAY   100 /* ms */
 
#define UT_WRITE   0x00
 
#define UT_READ   0x80
 
#define UT_STANDARD   0x00
 
#define UT_CLASS   0x20
 
#define UT_VENDOR   0x40
 
#define UT_DEVICE   0x00
 
#define UT_INTERFACE   0x01
 
#define UT_ENDPOINT   0x02
 
#define UT_OTHER   0x03
 
#define UT_READ_DEVICE   (UT_READ | UT_STANDARD | UT_DEVICE)
 
#define UT_READ_INTERFACE   (UT_READ | UT_STANDARD | UT_INTERFACE)
 
#define UT_READ_ENDPOINT   (UT_READ | UT_STANDARD | UT_ENDPOINT)
 
#define UT_WRITE_DEVICE   (UT_WRITE | UT_STANDARD | UT_DEVICE)
 
#define UT_WRITE_INTERFACE   (UT_WRITE | UT_STANDARD | UT_INTERFACE)
 
#define UT_WRITE_ENDPOINT   (UT_WRITE | UT_STANDARD | UT_ENDPOINT)
 
#define UT_READ_CLASS_DEVICE   (UT_READ | UT_CLASS | UT_DEVICE)
 
#define UT_READ_CLASS_INTERFACE   (UT_READ | UT_CLASS | UT_INTERFACE)
 
#define UT_READ_CLASS_OTHER   (UT_READ | UT_CLASS | UT_OTHER)
 
#define UT_READ_CLASS_ENDPOINT   (UT_READ | UT_CLASS | UT_ENDPOINT)
 
#define UT_WRITE_CLASS_DEVICE   (UT_WRITE | UT_CLASS | UT_DEVICE)
 
#define UT_WRITE_CLASS_INTERFACE   (UT_WRITE | UT_CLASS | UT_INTERFACE)
 
#define UT_WRITE_CLASS_OTHER   (UT_WRITE | UT_CLASS | UT_OTHER)
 
#define UT_WRITE_CLASS_ENDPOINT   (UT_WRITE | UT_CLASS | UT_ENDPOINT)
 
#define UT_READ_VENDOR_DEVICE   (UT_READ | UT_VENDOR | UT_DEVICE)
 
#define UT_READ_VENDOR_INTERFACE   (UT_READ | UT_VENDOR | UT_INTERFACE)
 
#define UT_READ_VENDOR_OTHER   (UT_READ | UT_VENDOR | UT_OTHER)
 
#define UT_READ_VENDOR_ENDPOINT   (UT_READ | UT_VENDOR | UT_ENDPOINT)
 
#define UT_WRITE_VENDOR_DEVICE   (UT_WRITE | UT_VENDOR | UT_DEVICE)
 
#define UT_WRITE_VENDOR_INTERFACE   (UT_WRITE | UT_VENDOR | UT_INTERFACE)
 
#define UT_WRITE_VENDOR_OTHER   (UT_WRITE | UT_VENDOR | UT_OTHER)
 
#define UT_WRITE_VENDOR_ENDPOINT   (UT_WRITE | UT_VENDOR | UT_ENDPOINT)
 
#define UR_GET_STATUS   0x00
 
#define UR_CLEAR_FEATURE   0x01
 
#define UR_SET_FEATURE   0x03
 
#define UR_SET_ADDRESS   0x05
 
#define UR_GET_DESCRIPTOR   0x06
 
#define UDESC_DEVICE   0x01
 
#define UDESC_CONFIG   0x02
 
#define UDESC_STRING   0x03
 
#define USB_LANGUAGE_TABLE   0x00 /* language ID string index */
 
#define UDESC_INTERFACE   0x04
 
#define UDESC_ENDPOINT   0x05
 
#define UDESC_DEVICE_QUALIFIER   0x06
 
#define UDESC_OTHER_SPEED_CONFIGURATION   0x07
 
#define UDESC_INTERFACE_POWER   0x08
 
#define UDESC_OTG   0x09
 
#define UDESC_DEBUG   0x0A
 
#define UDESC_IFACE_ASSOC   0x0B /* interface association */
 
#define UDESC_BOS   0x0F /* binary object store */
 
#define UDESC_DEVICE_CAPABILITY   0x10
 
#define UDESC_CS_DEVICE   0x21 /* class specific */
 
#define UDESC_CS_CONFIG   0x22
 
#define UDESC_CS_STRING   0x23
 
#define UDESC_CS_INTERFACE   0x24
 
#define UDESC_CS_ENDPOINT   0x25
 
#define UDESC_HUB   0x29
 
#define UDESC_SS_HUB   0x2A /* super speed */
 
#define UDESC_ENDPOINT_SS_COMP   0x30 /* super speed */
 
#define UR_SET_DESCRIPTOR   0x07
 
#define UR_GET_CONFIG   0x08
 
#define UR_SET_CONFIG   0x09
 
#define UR_GET_INTERFACE   0x0a
 
#define UR_SET_INTERFACE   0x0b
 
#define UR_SYNCH_FRAME   0x0c
 
#define UR_SET_SEL   0x30
 
#define UR_ISOCH_DELAY   0x31
 
#define UR_GET_BUS_STATE   0x02
 
#define UR_CLEAR_TT_BUFFER   0x08
 
#define UR_RESET_TT   0x09
 
#define UR_GET_TT_STATE   0x0a
 
#define UR_STOP_TT   0x0b
 
#define UR_SET_AND_TEST   0x0c /* USB 2.0 only */
 
#define UR_SET_HUB_DEPTH   0x0c /* USB 3.0 only */
 
#define USB_SS_HUB_DEPTH_MAX   5
 
#define UR_GET_PORT_ERR_COUNT   0x0d
 
#define UF_ENDPOINT_HALT   0
 
#define UF_DEVICE_REMOTE_WAKEUP   1
 
#define UF_TEST_MODE   2
 
#define UF_U1_ENABLE   0x30
 
#define UF_U2_ENABLE   0x31
 
#define UF_LTM_ENABLE   0x32
 
#define UHF_C_HUB_LOCAL_POWER   0
 
#define UHF_C_HUB_OVER_CURRENT   1
 
#define UHF_PORT_CONNECTION   0
 
#define UHF_PORT_ENABLE   1
 
#define UHF_PORT_SUSPEND   2
 
#define UHF_PORT_OVER_CURRENT   3
 
#define UHF_PORT_RESET   4
 
#define UHF_PORT_LINK_STATE   5
 
#define UHF_PORT_POWER   8
 
#define UHF_PORT_LOW_SPEED   9
 
#define UHF_PORT_L1   10
 
#define UHF_C_PORT_CONNECTION   16
 
#define UHF_C_PORT_ENABLE   17
 
#define UHF_C_PORT_SUSPEND   18
 
#define UHF_C_PORT_OVER_CURRENT   19
 
#define UHF_C_PORT_RESET   20
 
#define UHF_PORT_TEST   21
 
#define UHF_PORT_INDICATOR   22
 
#define UHF_C_PORT_L1   23
 
#define UHF_PORT_U1_TIMEOUT   23
 
#define UHF_PORT_U2_TIMEOUT   24
 
#define UHF_C_PORT_LINK_STATE   25
 
#define UHF_C_PORT_CONFIG_ERROR   26
 
#define UHF_PORT_REMOTE_WAKE_MASK   27
 
#define UHF_BH_PORT_RESET   28
 
#define UHF_C_BH_PORT_RESET   29
 
#define UHF_FORCE_LINKPM_ACCEPT   30
 
#define USB_INTERFACE_FUNC_SUSPEND   0
 
#define USB_INTERFACE_FUNC_SUSPEND_LP   (1 << 8)
 
#define USB_INTERFACE_FUNC_SUSPEND_RW   (1 << 9)
 
#define UD_USB_2_0   0x0200
 
#define UD_USB_3_0   0x0300
 
#define UD_IS_USB2(d)   ((d)->bcdUSB[1] == 0x02)
 
#define UD_IS_USB3(d)   ((d)->bcdUSB[1] == 0x03)
 
#define USB_DEVCAP_RESERVED   0x00
 
#define USB_DEVCAP_WUSB   0x01
 
#define USB_DEVCAP_USB2EXT   0x02
 
#define USB_DEVCAP_SUPER_SPEED   0x03
 
#define USB_DEVCAP_CONTAINER_ID   0x04
 
#define USB_V2EXT_LPM   (1U << 1)
 
#define USB_V2EXT_BESL_SUPPORTED   (1U << 2)
 
#define USB_V2EXT_BESL_BASELINE_VALID   (1U << 3)
 
#define USB_V2EXT_BESL_DEEP_VALID   (1U << 4)
 
#define USB_V2EXT_BESL_BASELINE_GET(x)   (((x) >> 8) & 0xF)
 
#define USB_V2EXT_BESL_DEEP_GET(x)   (((x) >> 12) & 0xF)
 
#define UDCLASS_IN_INTERFACE   0x00
 
#define UDCLASS_COMM   0x02
 
#define UDCLASS_HUB   0x09
 
#define UDSUBCLASS_HUB   0x00
 
#define UDPROTO_FSHUB   0x00
 
#define UDPROTO_HSHUBSTT   0x01
 
#define UDPROTO_HSHUBMTT   0x02
 
#define UDPROTO_SSHUB   0x03
 
#define UDCLASS_DIAGNOSTIC   0xdc
 
#define UDCLASS_WIRELESS   0xe0
 
#define UDSUBCLASS_RF   0x01
 
#define UDPROTO_BLUETOOTH   0x01
 
#define UDCLASS_VENDOR   0xff
 
#define USB_UNCONFIG_NO   0
 
#define UC_BUS_POWERED   0x80
 
#define UC_SELF_POWERED   0x40
 
#define UC_REMOTE_WAKEUP   0x20
 
#define UC_POWER_FACTOR   2
 
#define UICLASS_UNSPEC   0x00
 
#define UICLASS_AUDIO   0x01 /* audio */
 
#define UISUBCLASS_AUDIOCONTROL   1
 
#define UISUBCLASS_AUDIOSTREAM   2
 
#define UISUBCLASS_MIDISTREAM   3
 
#define UICLASS_CDC   0x02 /* communication */
 
#define UISUBCLASS_DIRECT_LINE_CONTROL_MODEL   1
 
#define UISUBCLASS_ABSTRACT_CONTROL_MODEL   2
 
#define UISUBCLASS_TELEPHONE_CONTROL_MODEL   3
 
#define UISUBCLASS_MULTICHANNEL_CONTROL_MODEL   4
 
#define UISUBCLASS_CAPI_CONTROLMODEL   5
 
#define UISUBCLASS_ETHERNET_NETWORKING_CONTROL_MODEL   6
 
#define UISUBCLASS_ATM_NETWORKING_CONTROL_MODEL   7
 
#define UISUBCLASS_WIRELESS_HANDSET_CM   8
 
#define UISUBCLASS_DEVICE_MGMT   9
 
#define UISUBCLASS_MOBILE_DIRECT_LINE_MODEL   10
 
#define UISUBCLASS_OBEX   11
 
#define UISUBCLASS_ETHERNET_EMULATION_MODEL   12
 
#define UISUBCLASS_NETWORK_CONTROL_MODEL   13
 
#define UIPROTO_CDC_NONE   0
 
#define UIPROTO_CDC_AT   1
 
#define UIPROTO_CDC_EEM   7
 
#define UICLASS_HID   0x03
 
#define UISUBCLASS_BOOT   1
 
#define UIPROTO_BOOT_KEYBOARD   1
 
#define UIPROTO_MOUSE   2
 
#define UICLASS_PHYSICAL   0x05
 
#define UICLASS_IMAGE   0x06
 
#define UISUBCLASS_SIC   1 /* still image class */
 
#define UICLASS_PRINTER   0x07
 
#define UISUBCLASS_PRINTER   1
 
#define UIPROTO_PRINTER_UNI   1
 
#define UIPROTO_PRINTER_BI   2
 
#define UIPROTO_PRINTER_1284   3
 
#define UICLASS_MASS   0x08
 
#define UISUBCLASS_RBC   1
 
#define UISUBCLASS_SFF8020I   2
 
#define UISUBCLASS_QIC157   3
 
#define UISUBCLASS_UFI   4
 
#define UISUBCLASS_SFF8070I   5
 
#define UISUBCLASS_SCSI   6
 
#define UIPROTO_MASS_CBI_I   0
 
#define UIPROTO_MASS_CBI   1
 
#define UIPROTO_MASS_BBB_OLD   2 /* Not in the spec anymore */
 
#define UIPROTO_MASS_BBB   80 /* 'P' for the Iomega Zip drive */
 
#define UICLASS_HUB   0x09
 
#define UISUBCLASS_HUB   0
 
#define UIPROTO_FSHUB   0
 
#define UIPROTO_HSHUBSTT   0 /* Yes, same as previous */
 
#define UIPROTO_HSHUBMTT   1
 
#define UICLASS_CDC_DATA   0x0a
 
#define UISUBCLASS_DATA   0x00
 
#define UIPROTO_DATA_ISDNBRI   0x30 /* Physical iface */
 
#define UIPROTO_DATA_HDLC   0x31 /* HDLC */
 
#define UIPROTO_DATA_TRANSPARENT   0x32 /* Transparent */
 
#define UIPROTO_DATA_Q921M   0x50 /* Management for Q921 */
 
#define UIPROTO_DATA_Q921   0x51 /* Data for Q921 */
 
#define UIPROTO_DATA_Q921TM   0x52 /* TEI multiplexer for Q921 */
 
#define UIPROTO_DATA_V42BIS   0x90 /* Data compression */
 
#define UIPROTO_DATA_Q931   0x91 /* Euro-ISDN */
 
#define UIPROTO_DATA_V120   0x92 /* V.24 rate adaption */
 
#define UIPROTO_DATA_CAPI   0x93 /* CAPI 2.0 commands */
 
#define UIPROTO_DATA_HOST_BASED   0xfd /* Host based driver */
 
#define UIPROTO_DATA_PUF   0xfe /* see Prot. Unit Func. Desc. */
 
#define UIPROTO_DATA_VENDOR   0xff /* Vendor specific */
 
#define UIPROTO_DATA_NCM   0x01 /* Network Control Model */
 
#define UICLASS_SMARTCARD   0x0b
 
#define UICLASS_FIRM_UPD   0x0c
 
#define UICLASS_SECURITY   0x0d
 
#define UICLASS_DIAGNOSTIC   0xdc
 
#define UICLASS_WIRELESS   0xe0
 
#define UISUBCLASS_RF   0x01
 
#define UIPROTO_BLUETOOTH   0x01
 
#define UIPROTO_RNDIS   0x03
 
#define UICLASS_IAD   0xEF /* Interface Association Descriptor */
 
#define UISUBCLASS_SYNC   0x01
 
#define UIPROTO_ACTIVESYNC   0x01
 
#define UICLASS_APPL_SPEC   0xfe
 
#define UISUBCLASS_FIRMWARE_DOWNLOAD   1
 
#define UISUBCLASS_IRDA   2
 
#define UIPROTO_IRDA   0
 
#define UICLASS_VENDOR   0xff
 
#define UISUBCLASS_XBOX360_CONTROLLER   0x5d
 
#define UISUBCLASS_VENDOR   0xff
 
#define UIPROTO_XBOX360_GAMEPAD   0x01
 
#define UE_GET_DIR(a)   ((a) & 0x80)
 
#define UE_SET_DIR(a, d)   ((a) | (((d)&1) << 7))
 
#define UE_DIR_IN   0x80 /* IN-token endpoint, fixed */
 
#define UE_DIR_OUT   0x00 /* OUT-token endpoint, fixed */
 
#define UE_DIR_RX   0xfd /* for internal use only! */
 
#define UE_DIR_TX   0xfe /* for internal use only! */
 
#define UE_DIR_ANY   0xff /* for internal use only! */
 
#define UE_ADDR   0x0f
 
#define UE_ADDR_ANY   0xff /* for internal use only! */
 
#define UE_GET_ADDR(a)   ((a) & UE_ADDR)
 
#define UE_XFERTYPE   0x03
 
#define UE_CONTROL   0x00
 
#define UE_ISOCHRONOUS   0x01
 
#define UE_BULK   0x02
 
#define UE_INTERRUPT   0x03
 
#define UE_BULK_INTR   0xfe /* for internal use only! */
 
#define UE_TYPE_ANY   0xff /* for internal use only! */
 
#define UE_GET_XFERTYPE(a)   ((a) & UE_XFERTYPE)
 
#define UE_ISO_TYPE   0x0c
 
#define UE_ISO_ASYNC   0x04
 
#define UE_ISO_ADAPT   0x08
 
#define UE_ISO_SYNC   0x0c
 
#define UE_GET_ISO_TYPE(a)   ((a) & UE_ISO_TYPE)
 
#define UE_ISO_USAGE   0x30
 
#define UE_ISO_USAGE_DATA   0x00
 
#define UE_ISO_USAGE_FEEDBACK   0x10
 
#define UE_ISO_USAGE_IMPLICT_FB   0x20
 
#define UE_GET_ISO_USAGE(a)   ((a) & UE_ISO_USAGE)
 
#define UE_ZERO_MPS   0xFFFF /* for internal use only */
 
#define UE_GET_BULK_STREAMS(x)   ((x) & 0x0F)
 
#define UE_GET_SS_ISO_MULT(x)   ((x) & 0x03)
 
#define USB_MAKE_STRING_DESC(m, name)
 
#define UHD_PWR   0x0003
 
#define UHD_PWR_GANGED   0x0000
 
#define UHD_PWR_INDIVIDUAL   0x0001
 
#define UHD_PWR_NO_SWITCH   0x0002
 
#define UHD_COMPOUND   0x0004
 
#define UHD_OC   0x0018
 
#define UHD_OC_GLOBAL   0x0000
 
#define UHD_OC_INDIVIDUAL   0x0008
 
#define UHD_OC_NONE   0x0010
 
#define UHD_TT_THINK   0x0060
 
#define UHD_TT_THINK_8   0x0000
 
#define UHD_TT_THINK_16   0x0020
 
#define UHD_TT_THINK_24   0x0040
 
#define UHD_TT_THINK_32   0x0060
 
#define UHD_PORT_IND   0x0080
 
#define UHD_PWRON_FACTOR   2
 
#define UHD_NOT_REMOV(desc, i)    (((desc)->DeviceRemovable[(i)/8] >> ((i) % 8)) & 1)
 
#define UOTG_SRP   0x01
 
#define UOTG_HNP   0x02
 
#define UOTG_B_HNP_ENABLE   3
 
#define UOTG_A_HNP_SUPPORT   4
 
#define UOTG_A_ALT_HNP_SUPPORT   5
 
#define UDS_SELF_POWERED   0x0001
 
#define UDS_REMOTE_WAKEUP   0x0002
 
#define UES_HALT   0x0001
 
#define UHS_LOCAL_POWER   0x0001
 
#define UHS_OVER_CURRENT   0x0002
 
#define UPS_CURRENT_CONNECT_STATUS   0x0001
 
#define UPS_PORT_ENABLED   0x0002
 
#define UPS_SUSPEND   0x0004
 
#define UPS_OVERCURRENT_INDICATOR   0x0008
 
#define UPS_RESET   0x0010
 
#define UPS_PORT_L1   0x0020 /* USB 2.0 only */
 
#define UPS_PORT_LINK_STATE_GET(x)   (((x) >> 5) & 0xF)
 
#define UPS_PORT_LINK_STATE_SET(x)   (((x) & 0xF) << 5)
 
#define UPS_PORT_LS_U0   0x00
 
#define UPS_PORT_LS_U1   0x01
 
#define UPS_PORT_LS_U2   0x02
 
#define UPS_PORT_LS_U3   0x03
 
#define UPS_PORT_LS_SS_DIS   0x04
 
#define UPS_PORT_LS_RX_DET   0x05
 
#define UPS_PORT_LS_SS_INA   0x06
 
#define UPS_PORT_LS_POLL   0x07
 
#define UPS_PORT_LS_RECOVER   0x08
 
#define UPS_PORT_LS_HOT_RST   0x09
 
#define UPS_PORT_LS_COMP_MODE   0x0A
 
#define UPS_PORT_LS_LOOPBACK   0x0B
 
#define UPS_PORT_LS_RESUME   0x0F
 
#define UPS_PORT_POWER   0x0100
 
#define UPS_PORT_POWER_SS   0x0200 /* super-speed only */
 
#define UPS_LOW_SPEED   0x0200
 
#define UPS_HIGH_SPEED   0x0400
 
#define UPS_OTHER_SPEED   0x0600 /* currently FreeBSD specific */
 
#define UPS_PORT_TEST   0x0800
 
#define UPS_PORT_INDICATOR   0x1000
 
#define UPS_PORT_MODE_DEVICE   0x8000 /* currently FreeBSD specific */
 
#define UPS_C_CONNECT_STATUS   0x0001
 
#define UPS_C_PORT_ENABLED   0x0002
 
#define UPS_C_SUSPEND   0x0004
 
#define UPS_C_OVERCURRENT_INDICATOR   0x0008
 
#define UPS_C_PORT_RESET   0x0010
 
#define UPS_C_PORT_L1   0x0020 /* USB 2.0 only */
 
#define UPS_C_BH_PORT_RESET   0x0020 /* USB 3.0 only */
 
#define UPS_C_PORT_LINK_STATE   0x0040
 
#define UPS_C_PORT_CONFIG_ERROR   0x0080
 
#define USB_SPEED_MAX   (USB_SPEED_SUPER+1)
 
#define USB_REV_MAX   (USB_REV_3_0+1)
 
#define USB_MODE_MAX   (USB_MODE_DUAL+1)
 
#define USB_STATE_MAX   (USB_STATE_CONFIGURED+1)
 

Typedefs

typedef struct usb_device_request usb_device_request_t
 
typedef struct usb_descriptor usb_descriptor_t
 
typedef struct usb_device_descriptor usb_device_descriptor_t
 
typedef struct usb_bos_descriptor usb_bos_descriptor_t
 
typedef struct usb_bos_cap_descriptor usb_bos_cap_descriptor_t
 
typedef struct usb_devcap_usb2ext_descriptor usb_devcap_usb2ext_descriptor_t
 
typedef struct usb_devcap_ss_descriptor usb_devcap_ss_descriptor_t
 
typedef struct usb_devcap_container_id_descriptor usb_devcap_container_id_descriptor_t
 
typedef struct usb_config_descriptor usb_config_descriptor_t
 
typedef struct usb_interface_descriptor usb_interface_descriptor_t
 
typedef struct usb_interface_assoc_descriptor usb_interface_assoc_descriptor_t
 
typedef struct usb_endpoint_descriptor usb_endpoint_descriptor_t
 
typedef struct usb_endpoint_ss_comp_descriptor usb_endpoint_ss_comp_descriptor_t
 
typedef struct usb_string_descriptor usb_string_descriptor_t
 
typedef struct usb_string_lang usb_string_lang_t
 
typedef struct usb_hub_descriptor usb_hub_descriptor_t
 
typedef struct usb_hub_ss_descriptor usb_hub_ss_descriptor_t
 
typedef struct usb_hub_descriptor_min usb_hub_descriptor_min_t
 
typedef struct usb_device_qualifier usb_device_qualifier_t
 
typedef struct usb_otg_descriptor usb_otg_descriptor_t
 
typedef struct usb_status usb_status_t
 
typedef struct usb_hub_status usb_hub_status_t
 
typedef struct usb_port_status usb_port_status_t
 

Enumerations

enum  usb_dev_speed {
  USB_SPEED_VARIABLE , USB_SPEED_LOW , USB_SPEED_FULL , USB_SPEED_HIGH ,
  USB_SPEED_SUPER
}
 
enum  usb_revision {
  USB_REV_UNKNOWN , USB_REV_PRE_1_0 , USB_REV_1_0 , USB_REV_1_1 ,
  USB_REV_2_0 , USB_REV_2_5 , USB_REV_3_0
}
 
enum  usb_hc_mode { USB_MODE_HOST , USB_MODE_DEVICE , USB_MODE_DUAL }
 
enum  usb_dev_state {
  USB_STATE_DETACHED , USB_STATE_ATTACHED , USB_STATE_POWERED , USB_STATE_ADDRESSED ,
  USB_STATE_CONFIGURED
}
 
enum  usb_ep_mode {
  USB_EP_MODE_DEFAULT , USB_EP_MODE_STREAMS , USB_EP_MODE_HW_MASS_STORAGE , USB_EP_MODE_HW_SERIAL ,
  USB_EP_MODE_HW_ETHERNET_CDC , USB_EP_MODE_HW_ETHERNET_NCM , USB_EP_MODE_MAX
}
 

Functions

 MALLOC_DECLARE (M_USB)
 
 MALLOC_DECLARE (M_USBDEV)
 

Variables

struct usb_device_request __packed
 

Macro Definition Documentation

◆ UC_BUS_POWERED

#define UC_BUS_POWERED   0x80

Definition at line 394 of file usb.h.

◆ UC_POWER_FACTOR

#define UC_POWER_FACTOR   2

Definition at line 398 of file usb.h.

◆ UC_REMOTE_WAKEUP

#define UC_REMOTE_WAKEUP   0x20

Definition at line 396 of file usb.h.

◆ UC_SELF_POWERED

#define UC_SELF_POWERED   0x40

Definition at line 395 of file usb.h.

◆ UD_IS_USB2

#define UD_IS_USB2 (   d)    ((d)->bcdUSB[1] == 0x02)

Definition at line 294 of file usb.h.

◆ UD_IS_USB3

#define UD_IS_USB3 (   d)    ((d)->bcdUSB[1] == 0x03)

Definition at line 295 of file usb.h.

◆ UD_USB_2_0

#define UD_USB_2_0   0x0200

Definition at line 292 of file usb.h.

◆ UD_USB_3_0

#define UD_USB_3_0   0x0300

Definition at line 293 of file usb.h.

◆ UDCLASS_COMM

#define UDCLASS_COMM   0x02

Definition at line 372 of file usb.h.

◆ UDCLASS_DIAGNOSTIC

#define UDCLASS_DIAGNOSTIC   0xdc

Definition at line 379 of file usb.h.

◆ UDCLASS_HUB

#define UDCLASS_HUB   0x09

Definition at line 373 of file usb.h.

◆ UDCLASS_IN_INTERFACE

#define UDCLASS_IN_INTERFACE   0x00

Definition at line 371 of file usb.h.

◆ UDCLASS_VENDOR

#define UDCLASS_VENDOR   0xff

Definition at line 383 of file usb.h.

◆ UDCLASS_WIRELESS

#define UDCLASS_WIRELESS   0xe0

Definition at line 380 of file usb.h.

◆ UDESC_BOS

#define UDESC_BOS   0x0F /* binary object store */

Definition at line 207 of file usb.h.

◆ UDESC_CONFIG

#define UDESC_CONFIG   0x02

Definition at line 196 of file usb.h.

◆ UDESC_CS_CONFIG

#define UDESC_CS_CONFIG   0x22

Definition at line 210 of file usb.h.

◆ UDESC_CS_DEVICE

#define UDESC_CS_DEVICE   0x21 /* class specific */

Definition at line 209 of file usb.h.

◆ UDESC_CS_ENDPOINT

#define UDESC_CS_ENDPOINT   0x25

Definition at line 213 of file usb.h.

◆ UDESC_CS_INTERFACE

#define UDESC_CS_INTERFACE   0x24

Definition at line 212 of file usb.h.

◆ UDESC_CS_STRING

#define UDESC_CS_STRING   0x23

Definition at line 211 of file usb.h.

◆ UDESC_DEBUG

#define UDESC_DEBUG   0x0A

Definition at line 205 of file usb.h.

◆ UDESC_DEVICE

#define UDESC_DEVICE   0x01

Definition at line 195 of file usb.h.

◆ UDESC_DEVICE_CAPABILITY

#define UDESC_DEVICE_CAPABILITY   0x10

Definition at line 208 of file usb.h.

◆ UDESC_DEVICE_QUALIFIER

#define UDESC_DEVICE_QUALIFIER   0x06

Definition at line 201 of file usb.h.

◆ UDESC_ENDPOINT

#define UDESC_ENDPOINT   0x05

Definition at line 200 of file usb.h.

◆ UDESC_ENDPOINT_SS_COMP

#define UDESC_ENDPOINT_SS_COMP   0x30 /* super speed */

Definition at line 216 of file usb.h.

◆ UDESC_HUB

#define UDESC_HUB   0x29

Definition at line 214 of file usb.h.

◆ UDESC_IFACE_ASSOC

#define UDESC_IFACE_ASSOC   0x0B /* interface association */

Definition at line 206 of file usb.h.

◆ UDESC_INTERFACE

#define UDESC_INTERFACE   0x04

Definition at line 199 of file usb.h.

◆ UDESC_INTERFACE_POWER

#define UDESC_INTERFACE_POWER   0x08

Definition at line 203 of file usb.h.

◆ UDESC_OTG

#define UDESC_OTG   0x09

Definition at line 204 of file usb.h.

◆ UDESC_OTHER_SPEED_CONFIGURATION

#define UDESC_OTHER_SPEED_CONFIGURATION   0x07

Definition at line 202 of file usb.h.

◆ UDESC_SS_HUB

#define UDESC_SS_HUB   0x2A /* super speed */

Definition at line 215 of file usb.h.

◆ UDESC_STRING

#define UDESC_STRING   0x03

Definition at line 197 of file usb.h.

◆ UDPROTO_BLUETOOTH

#define UDPROTO_BLUETOOTH   0x01

Definition at line 382 of file usb.h.

◆ UDPROTO_FSHUB

#define UDPROTO_FSHUB   0x00

Definition at line 375 of file usb.h.

◆ UDPROTO_HSHUBMTT

#define UDPROTO_HSHUBMTT   0x02

Definition at line 377 of file usb.h.

◆ UDPROTO_HSHUBSTT

#define UDPROTO_HSHUBSTT   0x01

Definition at line 376 of file usb.h.

◆ UDPROTO_SSHUB

#define UDPROTO_SSHUB   0x03

Definition at line 378 of file usb.h.

◆ UDS_REMOTE_WAKEUP

#define UDS_REMOTE_WAKEUP   0x0002

Definition at line 689 of file usb.h.

◆ UDS_SELF_POWERED

#define UDS_SELF_POWERED   0x0001

Definition at line 688 of file usb.h.

◆ UDSUBCLASS_HUB

#define UDSUBCLASS_HUB   0x00

Definition at line 374 of file usb.h.

◆ UDSUBCLASS_RF

#define UDSUBCLASS_RF   0x01

Definition at line 381 of file usb.h.

◆ UE_ADDR

#define UE_ADDR   0x0f

Definition at line 536 of file usb.h.

◆ UE_ADDR_ANY

#define UE_ADDR_ANY   0xff /* for internal use only! */

Definition at line 537 of file usb.h.

◆ UE_BULK

#define UE_BULK   0x02

Definition at line 543 of file usb.h.

◆ UE_BULK_INTR

#define UE_BULK_INTR   0xfe /* for internal use only! */

Definition at line 545 of file usb.h.

◆ UE_CONTROL

#define UE_CONTROL   0x00

Definition at line 541 of file usb.h.

◆ UE_DIR_ANY

#define UE_DIR_ANY   0xff /* for internal use only! */

Definition at line 535 of file usb.h.

◆ UE_DIR_IN

#define UE_DIR_IN   0x80 /* IN-token endpoint, fixed */

Definition at line 531 of file usb.h.

◆ UE_DIR_OUT

#define UE_DIR_OUT   0x00 /* OUT-token endpoint, fixed */

Definition at line 532 of file usb.h.

◆ UE_DIR_RX

#define UE_DIR_RX   0xfd /* for internal use only! */

Definition at line 533 of file usb.h.

◆ UE_DIR_TX

#define UE_DIR_TX   0xfe /* for internal use only! */

Definition at line 534 of file usb.h.

◆ UE_GET_ADDR

#define UE_GET_ADDR (   a)    ((a) & UE_ADDR)

Definition at line 538 of file usb.h.

◆ UE_GET_BULK_STREAMS

#define UE_GET_BULK_STREAMS (   x)    ((x) & 0x0F)

Definition at line 569 of file usb.h.

◆ UE_GET_DIR

#define UE_GET_DIR (   a)    ((a) & 0x80)

Definition at line 529 of file usb.h.

◆ UE_GET_ISO_TYPE

#define UE_GET_ISO_TYPE (   a)    ((a) & UE_ISO_TYPE)

Definition at line 552 of file usb.h.

◆ UE_GET_ISO_USAGE

#define UE_GET_ISO_USAGE (   a)    ((a) & UE_ISO_USAGE)

Definition at line 557 of file usb.h.

◆ UE_GET_SS_ISO_MULT

#define UE_GET_SS_ISO_MULT (   x)    ((x) & 0x03)

Definition at line 570 of file usb.h.

◆ UE_GET_XFERTYPE

#define UE_GET_XFERTYPE (   a)    ((a) & UE_XFERTYPE)

Definition at line 547 of file usb.h.

◆ UE_INTERRUPT

#define UE_INTERRUPT   0x03

Definition at line 544 of file usb.h.

◆ UE_ISO_ADAPT

#define UE_ISO_ADAPT   0x08

Definition at line 550 of file usb.h.

◆ UE_ISO_ASYNC

#define UE_ISO_ASYNC   0x04

Definition at line 549 of file usb.h.

◆ UE_ISO_SYNC

#define UE_ISO_SYNC   0x0c

Definition at line 551 of file usb.h.

◆ UE_ISO_TYPE

#define UE_ISO_TYPE   0x0c

Definition at line 548 of file usb.h.

◆ UE_ISO_USAGE

#define UE_ISO_USAGE   0x30

Definition at line 553 of file usb.h.

◆ UE_ISO_USAGE_DATA

#define UE_ISO_USAGE_DATA   0x00

Definition at line 554 of file usb.h.

◆ UE_ISO_USAGE_FEEDBACK

#define UE_ISO_USAGE_FEEDBACK   0x10

Definition at line 555 of file usb.h.

◆ UE_ISO_USAGE_IMPLICT_FB

#define UE_ISO_USAGE_IMPLICT_FB   0x20

Definition at line 556 of file usb.h.

◆ UE_ISOCHRONOUS

#define UE_ISOCHRONOUS   0x01

Definition at line 542 of file usb.h.

◆ UE_SET_DIR

#define UE_SET_DIR (   a,
 
)    ((a) | (((d)&1) << 7))

Definition at line 530 of file usb.h.

◆ UE_TYPE_ANY

#define UE_TYPE_ANY   0xff /* for internal use only! */

Definition at line 546 of file usb.h.

◆ UE_XFERTYPE

#define UE_XFERTYPE   0x03

Definition at line 540 of file usb.h.

◆ UE_ZERO_MPS

#define UE_ZERO_MPS   0xFFFF /* for internal use only */

Definition at line 559 of file usb.h.

◆ UES_HALT

#define UES_HALT   0x0001

Definition at line 691 of file usb.h.

◆ UF_DEVICE_REMOTE_WAKEUP

#define UF_DEVICE_REMOTE_WAKEUP   1

Definition at line 239 of file usb.h.

◆ UF_ENDPOINT_HALT

#define UF_ENDPOINT_HALT   0

Definition at line 238 of file usb.h.

◆ UF_LTM_ENABLE

#define UF_LTM_ENABLE   0x32

Definition at line 243 of file usb.h.

◆ UF_TEST_MODE

#define UF_TEST_MODE   2

Definition at line 240 of file usb.h.

◆ UF_U1_ENABLE

#define UF_U1_ENABLE   0x30

Definition at line 241 of file usb.h.

◆ UF_U2_ENABLE

#define UF_U2_ENABLE   0x31

Definition at line 242 of file usb.h.

◆ UHD_COMPOUND

#define UHD_COMPOUND   0x0004

Definition at line 611 of file usb.h.

◆ UHD_NOT_REMOV

#define UHD_NOT_REMOV (   desc,
 
)     (((desc)->DeviceRemovable[(i)/8] >> ((i) % 8)) & 1)

Definition at line 626 of file usb.h.

◆ UHD_OC

#define UHD_OC   0x0018

Definition at line 612 of file usb.h.

◆ UHD_OC_GLOBAL

#define UHD_OC_GLOBAL   0x0000

Definition at line 613 of file usb.h.

◆ UHD_OC_INDIVIDUAL

#define UHD_OC_INDIVIDUAL   0x0008

Definition at line 614 of file usb.h.

◆ UHD_OC_NONE

#define UHD_OC_NONE   0x0010

Definition at line 615 of file usb.h.

◆ UHD_PORT_IND

#define UHD_PORT_IND   0x0080

Definition at line 621 of file usb.h.

◆ UHD_PWR

#define UHD_PWR   0x0003

Definition at line 607 of file usb.h.

◆ UHD_PWR_GANGED

#define UHD_PWR_GANGED   0x0000

Definition at line 608 of file usb.h.

◆ UHD_PWR_INDIVIDUAL

#define UHD_PWR_INDIVIDUAL   0x0001

Definition at line 609 of file usb.h.

◆ UHD_PWR_NO_SWITCH

#define UHD_PWR_NO_SWITCH   0x0002

Definition at line 610 of file usb.h.

◆ UHD_PWRON_FACTOR

#define UHD_PWRON_FACTOR   2

Definition at line 623 of file usb.h.

◆ UHD_TT_THINK

#define UHD_TT_THINK   0x0060

Definition at line 616 of file usb.h.

◆ UHD_TT_THINK_16

#define UHD_TT_THINK_16   0x0020

Definition at line 618 of file usb.h.

◆ UHD_TT_THINK_24

#define UHD_TT_THINK_24   0x0040

Definition at line 619 of file usb.h.

◆ UHD_TT_THINK_32

#define UHD_TT_THINK_32   0x0060

Definition at line 620 of file usb.h.

◆ UHD_TT_THINK_8

#define UHD_TT_THINK_8   0x0000

Definition at line 617 of file usb.h.

◆ UHF_BH_PORT_RESET

#define UHF_BH_PORT_RESET   28

Definition at line 272 of file usb.h.

◆ UHF_C_BH_PORT_RESET

#define UHF_C_BH_PORT_RESET   29

Definition at line 273 of file usb.h.

◆ UHF_C_HUB_LOCAL_POWER

#define UHF_C_HUB_LOCAL_POWER   0

Definition at line 246 of file usb.h.

◆ UHF_C_HUB_OVER_CURRENT

#define UHF_C_HUB_OVER_CURRENT   1

Definition at line 247 of file usb.h.

◆ UHF_C_PORT_CONFIG_ERROR

#define UHF_C_PORT_CONFIG_ERROR   26

Definition at line 270 of file usb.h.

◆ UHF_C_PORT_CONNECTION

#define UHF_C_PORT_CONNECTION   16

Definition at line 257 of file usb.h.

◆ UHF_C_PORT_ENABLE

#define UHF_C_PORT_ENABLE   17

Definition at line 258 of file usb.h.

◆ UHF_C_PORT_L1

#define UHF_C_PORT_L1   23

Definition at line 264 of file usb.h.

◆ UHF_C_PORT_LINK_STATE

#define UHF_C_PORT_LINK_STATE   25

Definition at line 269 of file usb.h.

◆ UHF_C_PORT_OVER_CURRENT

#define UHF_C_PORT_OVER_CURRENT   19

Definition at line 260 of file usb.h.

◆ UHF_C_PORT_RESET

#define UHF_C_PORT_RESET   20

Definition at line 261 of file usb.h.

◆ UHF_C_PORT_SUSPEND

#define UHF_C_PORT_SUSPEND   18

Definition at line 259 of file usb.h.

◆ UHF_FORCE_LINKPM_ACCEPT

#define UHF_FORCE_LINKPM_ACCEPT   30

Definition at line 274 of file usb.h.

◆ UHF_PORT_CONNECTION

#define UHF_PORT_CONNECTION   0

Definition at line 248 of file usb.h.

◆ UHF_PORT_ENABLE

#define UHF_PORT_ENABLE   1

Definition at line 249 of file usb.h.

◆ UHF_PORT_INDICATOR

#define UHF_PORT_INDICATOR   22

Definition at line 263 of file usb.h.

◆ UHF_PORT_L1

#define UHF_PORT_L1   10

Definition at line 256 of file usb.h.

◆ UHF_PORT_LINK_STATE

#define UHF_PORT_LINK_STATE   5

Definition at line 253 of file usb.h.

◆ UHF_PORT_LOW_SPEED

#define UHF_PORT_LOW_SPEED   9

Definition at line 255 of file usb.h.

◆ UHF_PORT_OVER_CURRENT

#define UHF_PORT_OVER_CURRENT   3

Definition at line 251 of file usb.h.

◆ UHF_PORT_POWER

#define UHF_PORT_POWER   8

Definition at line 254 of file usb.h.

◆ UHF_PORT_REMOTE_WAKE_MASK

#define UHF_PORT_REMOTE_WAKE_MASK   27

Definition at line 271 of file usb.h.

◆ UHF_PORT_RESET

#define UHF_PORT_RESET   4

Definition at line 252 of file usb.h.

◆ UHF_PORT_SUSPEND

#define UHF_PORT_SUSPEND   2

Definition at line 250 of file usb.h.

◆ UHF_PORT_TEST

#define UHF_PORT_TEST   21

Definition at line 262 of file usb.h.

◆ UHF_PORT_U1_TIMEOUT

#define UHF_PORT_U1_TIMEOUT   23

Definition at line 267 of file usb.h.

◆ UHF_PORT_U2_TIMEOUT

#define UHF_PORT_U2_TIMEOUT   24

Definition at line 268 of file usb.h.

◆ UHS_LOCAL_POWER

#define UHS_LOCAL_POWER   0x0001

Definition at line 697 of file usb.h.

◆ UHS_OVER_CURRENT

#define UHS_OVER_CURRENT   0x0002

Definition at line 698 of file usb.h.

◆ UICLASS_APPL_SPEC

#define UICLASS_APPL_SPEC   0xfe

Definition at line 515 of file usb.h.

◆ UICLASS_AUDIO

#define UICLASS_AUDIO   0x01 /* audio */

Definition at line 429 of file usb.h.

◆ UICLASS_CDC

#define UICLASS_CDC   0x02 /* communication */

Definition at line 434 of file usb.h.

◆ UICLASS_CDC_DATA

#define UICLASS_CDC_DATA   0x0a

Definition at line 485 of file usb.h.

◆ UICLASS_DIAGNOSTIC

#define UICLASS_DIAGNOSTIC   0xdc

Definition at line 505 of file usb.h.

◆ UICLASS_FIRM_UPD

#define UICLASS_FIRM_UPD   0x0c

Definition at line 503 of file usb.h.

◆ UICLASS_HID

#define UICLASS_HID   0x03

Definition at line 453 of file usb.h.

◆ UICLASS_HUB

#define UICLASS_HUB   0x09

Definition at line 479 of file usb.h.

◆ UICLASS_IAD

#define UICLASS_IAD   0xEF /* Interface Association Descriptor */

Definition at line 511 of file usb.h.

◆ UICLASS_IMAGE

#define UICLASS_IMAGE   0x06

Definition at line 459 of file usb.h.

◆ UICLASS_MASS

#define UICLASS_MASS   0x08

Definition at line 467 of file usb.h.

◆ UICLASS_PHYSICAL

#define UICLASS_PHYSICAL   0x05

Definition at line 458 of file usb.h.

◆ UICLASS_PRINTER

#define UICLASS_PRINTER   0x07

Definition at line 461 of file usb.h.

◆ UICLASS_SECURITY

#define UICLASS_SECURITY   0x0d

Definition at line 504 of file usb.h.

◆ UICLASS_SMARTCARD

#define UICLASS_SMARTCARD   0x0b

Definition at line 502 of file usb.h.

◆ UICLASS_UNSPEC

#define UICLASS_UNSPEC   0x00

Definition at line 428 of file usb.h.

◆ UICLASS_VENDOR

#define UICLASS_VENDOR   0xff

Definition at line 520 of file usb.h.

◆ UICLASS_WIRELESS

#define UICLASS_WIRELESS   0xe0

Definition at line 506 of file usb.h.

◆ UIPROTO_ACTIVESYNC

#define UIPROTO_ACTIVESYNC   0x01

Definition at line 513 of file usb.h.

◆ UIPROTO_BLUETOOTH

#define UIPROTO_BLUETOOTH   0x01

Definition at line 508 of file usb.h.

◆ UIPROTO_BOOT_KEYBOARD

#define UIPROTO_BOOT_KEYBOARD   1

Definition at line 455 of file usb.h.

◆ UIPROTO_CDC_AT

#define UIPROTO_CDC_AT   1

Definition at line 450 of file usb.h.

◆ UIPROTO_CDC_EEM

#define UIPROTO_CDC_EEM   7

Definition at line 451 of file usb.h.

◆ UIPROTO_CDC_NONE

#define UIPROTO_CDC_NONE   0

Definition at line 449 of file usb.h.

◆ UIPROTO_DATA_CAPI

#define UIPROTO_DATA_CAPI   0x93 /* CAPI 2.0 commands */

Definition at line 496 of file usb.h.

◆ UIPROTO_DATA_HDLC

#define UIPROTO_DATA_HDLC   0x31 /* HDLC */

Definition at line 488 of file usb.h.

◆ UIPROTO_DATA_HOST_BASED

#define UIPROTO_DATA_HOST_BASED   0xfd /* Host based driver */

Definition at line 497 of file usb.h.

◆ UIPROTO_DATA_ISDNBRI

#define UIPROTO_DATA_ISDNBRI   0x30 /* Physical iface */

Definition at line 487 of file usb.h.

◆ UIPROTO_DATA_NCM

#define UIPROTO_DATA_NCM   0x01 /* Network Control Model */

Definition at line 500 of file usb.h.

◆ UIPROTO_DATA_PUF

#define UIPROTO_DATA_PUF   0xfe /* see Prot. Unit Func. Desc. */

Definition at line 498 of file usb.h.

◆ UIPROTO_DATA_Q921

#define UIPROTO_DATA_Q921   0x51 /* Data for Q921 */

Definition at line 491 of file usb.h.

◆ UIPROTO_DATA_Q921M

#define UIPROTO_DATA_Q921M   0x50 /* Management for Q921 */

Definition at line 490 of file usb.h.

◆ UIPROTO_DATA_Q921TM

#define UIPROTO_DATA_Q921TM   0x52 /* TEI multiplexer for Q921 */

Definition at line 492 of file usb.h.

◆ UIPROTO_DATA_Q931

#define UIPROTO_DATA_Q931   0x91 /* Euro-ISDN */

Definition at line 494 of file usb.h.

◆ UIPROTO_DATA_TRANSPARENT

#define UIPROTO_DATA_TRANSPARENT   0x32 /* Transparent */

Definition at line 489 of file usb.h.

◆ UIPROTO_DATA_V120

#define UIPROTO_DATA_V120   0x92 /* V.24 rate adaption */

Definition at line 495 of file usb.h.

◆ UIPROTO_DATA_V42BIS

#define UIPROTO_DATA_V42BIS   0x90 /* Data compression */

Definition at line 493 of file usb.h.

◆ UIPROTO_DATA_VENDOR

#define UIPROTO_DATA_VENDOR   0xff /* Vendor specific */

Definition at line 499 of file usb.h.

◆ UIPROTO_FSHUB

#define UIPROTO_FSHUB   0

Definition at line 481 of file usb.h.

◆ UIPROTO_HSHUBMTT

#define UIPROTO_HSHUBMTT   1

Definition at line 483 of file usb.h.

◆ UIPROTO_HSHUBSTT

#define UIPROTO_HSHUBSTT   0 /* Yes, same as previous */

Definition at line 482 of file usb.h.

◆ UIPROTO_IRDA

#define UIPROTO_IRDA   0

Definition at line 518 of file usb.h.

◆ UIPROTO_MASS_BBB

#define UIPROTO_MASS_BBB   80 /* 'P' for the Iomega Zip drive */

Definition at line 477 of file usb.h.

◆ UIPROTO_MASS_BBB_OLD

#define UIPROTO_MASS_BBB_OLD   2 /* Not in the spec anymore */

Definition at line 476 of file usb.h.

◆ UIPROTO_MASS_CBI

#define UIPROTO_MASS_CBI   1

Definition at line 475 of file usb.h.

◆ UIPROTO_MASS_CBI_I

#define UIPROTO_MASS_CBI_I   0

Definition at line 474 of file usb.h.

◆ UIPROTO_MOUSE

#define UIPROTO_MOUSE   2

Definition at line 456 of file usb.h.

◆ UIPROTO_PRINTER_1284

#define UIPROTO_PRINTER_1284   3

Definition at line 465 of file usb.h.

◆ UIPROTO_PRINTER_BI

#define UIPROTO_PRINTER_BI   2

Definition at line 464 of file usb.h.

◆ UIPROTO_PRINTER_UNI

#define UIPROTO_PRINTER_UNI   1

Definition at line 463 of file usb.h.

◆ UIPROTO_RNDIS

#define UIPROTO_RNDIS   0x03

Definition at line 509 of file usb.h.

◆ UIPROTO_XBOX360_GAMEPAD

#define UIPROTO_XBOX360_GAMEPAD   0x01

Definition at line 523 of file usb.h.

◆ UISUBCLASS_ABSTRACT_CONTROL_MODEL

#define UISUBCLASS_ABSTRACT_CONTROL_MODEL   2

Definition at line 436 of file usb.h.

◆ UISUBCLASS_ATM_NETWORKING_CONTROL_MODEL

#define UISUBCLASS_ATM_NETWORKING_CONTROL_MODEL   7

Definition at line 441 of file usb.h.

◆ UISUBCLASS_AUDIOCONTROL

#define UISUBCLASS_AUDIOCONTROL   1

Definition at line 430 of file usb.h.

◆ UISUBCLASS_AUDIOSTREAM

#define UISUBCLASS_AUDIOSTREAM   2

Definition at line 431 of file usb.h.

◆ UISUBCLASS_BOOT

#define UISUBCLASS_BOOT   1

Definition at line 454 of file usb.h.

◆ UISUBCLASS_CAPI_CONTROLMODEL

#define UISUBCLASS_CAPI_CONTROLMODEL   5

Definition at line 439 of file usb.h.

◆ UISUBCLASS_DATA

#define UISUBCLASS_DATA   0x00

Definition at line 486 of file usb.h.

◆ UISUBCLASS_DEVICE_MGMT

#define UISUBCLASS_DEVICE_MGMT   9

Definition at line 443 of file usb.h.

◆ UISUBCLASS_DIRECT_LINE_CONTROL_MODEL

#define UISUBCLASS_DIRECT_LINE_CONTROL_MODEL   1

Definition at line 435 of file usb.h.

◆ UISUBCLASS_ETHERNET_EMULATION_MODEL

#define UISUBCLASS_ETHERNET_EMULATION_MODEL   12

Definition at line 446 of file usb.h.

◆ UISUBCLASS_ETHERNET_NETWORKING_CONTROL_MODEL

#define UISUBCLASS_ETHERNET_NETWORKING_CONTROL_MODEL   6

Definition at line 440 of file usb.h.

◆ UISUBCLASS_FIRMWARE_DOWNLOAD

#define UISUBCLASS_FIRMWARE_DOWNLOAD   1

Definition at line 516 of file usb.h.

◆ UISUBCLASS_HUB

#define UISUBCLASS_HUB   0

Definition at line 480 of file usb.h.

◆ UISUBCLASS_IRDA

#define UISUBCLASS_IRDA   2

Definition at line 517 of file usb.h.

◆ UISUBCLASS_MIDISTREAM

#define UISUBCLASS_MIDISTREAM   3

Definition at line 432 of file usb.h.

◆ UISUBCLASS_MOBILE_DIRECT_LINE_MODEL

#define UISUBCLASS_MOBILE_DIRECT_LINE_MODEL   10

Definition at line 444 of file usb.h.

◆ UISUBCLASS_MULTICHANNEL_CONTROL_MODEL

#define UISUBCLASS_MULTICHANNEL_CONTROL_MODEL   4

Definition at line 438 of file usb.h.

◆ UISUBCLASS_NETWORK_CONTROL_MODEL

#define UISUBCLASS_NETWORK_CONTROL_MODEL   13

Definition at line 447 of file usb.h.

◆ UISUBCLASS_OBEX

#define UISUBCLASS_OBEX   11

Definition at line 445 of file usb.h.

◆ UISUBCLASS_PRINTER

#define UISUBCLASS_PRINTER   1

Definition at line 462 of file usb.h.

◆ UISUBCLASS_QIC157

#define UISUBCLASS_QIC157   3

Definition at line 470 of file usb.h.

◆ UISUBCLASS_RBC

#define UISUBCLASS_RBC   1

Definition at line 468 of file usb.h.

◆ UISUBCLASS_RF

#define UISUBCLASS_RF   0x01

Definition at line 507 of file usb.h.

◆ UISUBCLASS_SCSI

#define UISUBCLASS_SCSI   6

Definition at line 473 of file usb.h.

◆ UISUBCLASS_SFF8020I

#define UISUBCLASS_SFF8020I   2

Definition at line 469 of file usb.h.

◆ UISUBCLASS_SFF8070I

#define UISUBCLASS_SFF8070I   5

Definition at line 472 of file usb.h.

◆ UISUBCLASS_SIC

#define UISUBCLASS_SIC   1 /* still image class */

Definition at line 460 of file usb.h.

◆ UISUBCLASS_SYNC

#define UISUBCLASS_SYNC   0x01

Definition at line 512 of file usb.h.

◆ UISUBCLASS_TELEPHONE_CONTROL_MODEL

#define UISUBCLASS_TELEPHONE_CONTROL_MODEL   3

Definition at line 437 of file usb.h.

◆ UISUBCLASS_UFI

#define UISUBCLASS_UFI   4

Definition at line 471 of file usb.h.

◆ UISUBCLASS_VENDOR

#define UISUBCLASS_VENDOR   0xff

Definition at line 522 of file usb.h.

◆ UISUBCLASS_WIRELESS_HANDSET_CM

#define UISUBCLASS_WIRELESS_HANDSET_CM   8

Definition at line 442 of file usb.h.

◆ UISUBCLASS_XBOX360_CONTROLLER

#define UISUBCLASS_XBOX360_CONTROLLER   0x5d

Definition at line 521 of file usb.h.

◆ UOTG_A_ALT_HNP_SUPPORT

#define UOTG_A_ALT_HNP_SUPPORT   5

Definition at line 683 of file usb.h.

◆ UOTG_A_HNP_SUPPORT

#define UOTG_A_HNP_SUPPORT   4

Definition at line 682 of file usb.h.

◆ UOTG_B_HNP_ENABLE

#define UOTG_B_HNP_ENABLE   3

Definition at line 681 of file usb.h.

◆ UOTG_HNP

#define UOTG_HNP   0x02

Definition at line 676 of file usb.h.

◆ UOTG_SRP

#define UOTG_SRP   0x01

Definition at line 675 of file usb.h.

◆ UPS_C_BH_PORT_RESET

#define UPS_C_BH_PORT_RESET   0x0020 /* USB 3.0 only */

Definition at line 742 of file usb.h.

◆ UPS_C_CONNECT_STATUS

#define UPS_C_CONNECT_STATUS   0x0001

Definition at line 736 of file usb.h.

◆ UPS_C_OVERCURRENT_INDICATOR

#define UPS_C_OVERCURRENT_INDICATOR   0x0008

Definition at line 739 of file usb.h.

◆ UPS_C_PORT_CONFIG_ERROR

#define UPS_C_PORT_CONFIG_ERROR   0x0080

Definition at line 744 of file usb.h.

◆ UPS_C_PORT_ENABLED

#define UPS_C_PORT_ENABLED   0x0002

Definition at line 737 of file usb.h.

◆ UPS_C_PORT_L1

#define UPS_C_PORT_L1   0x0020 /* USB 2.0 only */

Definition at line 741 of file usb.h.

◆ UPS_C_PORT_LINK_STATE

#define UPS_C_PORT_LINK_STATE   0x0040

Definition at line 743 of file usb.h.

◆ UPS_C_PORT_RESET

#define UPS_C_PORT_RESET   0x0010

Definition at line 740 of file usb.h.

◆ UPS_C_SUSPEND

#define UPS_C_SUSPEND   0x0004

Definition at line 738 of file usb.h.

◆ UPS_CURRENT_CONNECT_STATUS

#define UPS_CURRENT_CONNECT_STATUS   0x0001

Definition at line 705 of file usb.h.

◆ UPS_HIGH_SPEED

#define UPS_HIGH_SPEED   0x0400

Definition at line 730 of file usb.h.

◆ UPS_LOW_SPEED

#define UPS_LOW_SPEED   0x0200

Definition at line 729 of file usb.h.

◆ UPS_OTHER_SPEED

#define UPS_OTHER_SPEED   0x0600 /* currently FreeBSD specific */

Definition at line 731 of file usb.h.

◆ UPS_OVERCURRENT_INDICATOR

#define UPS_OVERCURRENT_INDICATOR   0x0008

Definition at line 708 of file usb.h.

◆ UPS_PORT_ENABLED

#define UPS_PORT_ENABLED   0x0002

Definition at line 706 of file usb.h.

◆ UPS_PORT_INDICATOR

#define UPS_PORT_INDICATOR   0x1000

Definition at line 733 of file usb.h.

◆ UPS_PORT_L1

#define UPS_PORT_L1   0x0020 /* USB 2.0 only */

Definition at line 710 of file usb.h.

◆ UPS_PORT_LINK_STATE_GET

#define UPS_PORT_LINK_STATE_GET (   x)    (((x) >> 5) & 0xF)

Definition at line 712 of file usb.h.

◆ UPS_PORT_LINK_STATE_SET

#define UPS_PORT_LINK_STATE_SET (   x)    (((x) & 0xF) << 5)

Definition at line 713 of file usb.h.

◆ UPS_PORT_LS_COMP_MODE

#define UPS_PORT_LS_COMP_MODE   0x0A

Definition at line 724 of file usb.h.

◆ UPS_PORT_LS_HOT_RST

#define UPS_PORT_LS_HOT_RST   0x09

Definition at line 723 of file usb.h.

◆ UPS_PORT_LS_LOOPBACK

#define UPS_PORT_LS_LOOPBACK   0x0B

Definition at line 725 of file usb.h.

◆ UPS_PORT_LS_POLL

#define UPS_PORT_LS_POLL   0x07

Definition at line 721 of file usb.h.

◆ UPS_PORT_LS_RECOVER

#define UPS_PORT_LS_RECOVER   0x08

Definition at line 722 of file usb.h.

◆ UPS_PORT_LS_RESUME

#define UPS_PORT_LS_RESUME   0x0F

Definition at line 726 of file usb.h.

◆ UPS_PORT_LS_RX_DET

#define UPS_PORT_LS_RX_DET   0x05

Definition at line 719 of file usb.h.

◆ UPS_PORT_LS_SS_DIS

#define UPS_PORT_LS_SS_DIS   0x04

Definition at line 718 of file usb.h.

◆ UPS_PORT_LS_SS_INA

#define UPS_PORT_LS_SS_INA   0x06

Definition at line 720 of file usb.h.

◆ UPS_PORT_LS_U0

#define UPS_PORT_LS_U0   0x00

Definition at line 714 of file usb.h.

◆ UPS_PORT_LS_U1

#define UPS_PORT_LS_U1   0x01

Definition at line 715 of file usb.h.

◆ UPS_PORT_LS_U2

#define UPS_PORT_LS_U2   0x02

Definition at line 716 of file usb.h.

◆ UPS_PORT_LS_U3

#define UPS_PORT_LS_U3   0x03

Definition at line 717 of file usb.h.

◆ UPS_PORT_MODE_DEVICE

#define UPS_PORT_MODE_DEVICE   0x8000 /* currently FreeBSD specific */

Definition at line 734 of file usb.h.

◆ UPS_PORT_POWER

#define UPS_PORT_POWER   0x0100

Definition at line 727 of file usb.h.

◆ UPS_PORT_POWER_SS

#define UPS_PORT_POWER_SS   0x0200 /* super-speed only */

Definition at line 728 of file usb.h.

◆ UPS_PORT_TEST

#define UPS_PORT_TEST   0x0800

Definition at line 732 of file usb.h.

◆ UPS_RESET

#define UPS_RESET   0x0010

Definition at line 709 of file usb.h.

◆ UPS_SUSPEND

#define UPS_SUSPEND   0x0004

Definition at line 707 of file usb.h.

◆ UR_CLEAR_FEATURE

#define UR_CLEAR_FEATURE   0x01

Definition at line 191 of file usb.h.

◆ UR_CLEAR_TT_BUFFER

#define UR_CLEAR_TT_BUFFER   0x08

Definition at line 228 of file usb.h.

◆ UR_GET_BUS_STATE

#define UR_GET_BUS_STATE   0x02

Definition at line 227 of file usb.h.

◆ UR_GET_CONFIG

#define UR_GET_CONFIG   0x08

Definition at line 218 of file usb.h.

◆ UR_GET_DESCRIPTOR

#define UR_GET_DESCRIPTOR   0x06

Definition at line 194 of file usb.h.

◆ UR_GET_INTERFACE

#define UR_GET_INTERFACE   0x0a

Definition at line 220 of file usb.h.

◆ UR_GET_PORT_ERR_COUNT

#define UR_GET_PORT_ERR_COUNT   0x0d

Definition at line 235 of file usb.h.

◆ UR_GET_STATUS

#define UR_GET_STATUS   0x00

Definition at line 190 of file usb.h.

◆ UR_GET_TT_STATE

#define UR_GET_TT_STATE   0x0a

Definition at line 230 of file usb.h.

◆ UR_ISOCH_DELAY

#define UR_ISOCH_DELAY   0x31

Definition at line 224 of file usb.h.

◆ UR_RESET_TT

#define UR_RESET_TT   0x09

Definition at line 229 of file usb.h.

◆ UR_SET_ADDRESS

#define UR_SET_ADDRESS   0x05

Definition at line 193 of file usb.h.

◆ UR_SET_AND_TEST

#define UR_SET_AND_TEST   0x0c /* USB 2.0 only */

Definition at line 232 of file usb.h.

◆ UR_SET_CONFIG

#define UR_SET_CONFIG   0x09

Definition at line 219 of file usb.h.

◆ UR_SET_DESCRIPTOR

#define UR_SET_DESCRIPTOR   0x07

Definition at line 217 of file usb.h.

◆ UR_SET_FEATURE

#define UR_SET_FEATURE   0x03

Definition at line 192 of file usb.h.

◆ UR_SET_HUB_DEPTH

#define UR_SET_HUB_DEPTH   0x0c /* USB 3.0 only */

Definition at line 233 of file usb.h.

◆ UR_SET_INTERFACE

#define UR_SET_INTERFACE   0x0b

Definition at line 221 of file usb.h.

◆ UR_SET_SEL

#define UR_SET_SEL   0x30

Definition at line 223 of file usb.h.

◆ UR_STOP_TT

#define UR_STOP_TT   0x0b

Definition at line 231 of file usb.h.

◆ UR_SYNCH_FRAME

#define UR_SYNCH_FRAME   0x0c

Definition at line 222 of file usb.h.

◆ USB_BUS_RESET_DELAY

#define USB_BUS_RESET_DELAY   100 /* ms */

Definition at line 129 of file usb.h.

◆ USB_CONTROL_ENDPOINT

#define USB_CONTROL_ENDPOINT   0 /* default control endpoint */

Definition at line 78 of file usb.h.

◆ USB_DEVCAP_CONTAINER_ID

#define USB_DEVCAP_CONTAINER_ID   0x04

Definition at line 329 of file usb.h.

◆ USB_DEVCAP_RESERVED

#define USB_DEVCAP_RESERVED   0x00

Definition at line 325 of file usb.h.

◆ USB_DEVCAP_SUPER_SPEED

#define USB_DEVCAP_SUPER_SPEED   0x03

Definition at line 328 of file usb.h.

◆ USB_DEVCAP_USB2EXT

#define USB_DEVCAP_USB2EXT   0x02

Definition at line 327 of file usb.h.

◆ USB_DEVCAP_WUSB

#define USB_DEVCAP_WUSB   0x01

Definition at line 326 of file usb.h.

◆ USB_EP_MAX

#define USB_EP_MAX   (2*16) /* hardcoded */

Definition at line 72 of file usb.h.

◆ USB_EXTRA_POWER_UP_TIME

#define USB_EXTRA_POWER_UP_TIME   20 /* ms */

Definition at line 124 of file usb.h.

◆ USB_EXTRA_POWER_UP_TIME_SPEC

#define USB_EXTRA_POWER_UP_TIME_SPEC   0 /* ms */

Definition at line 112 of file usb.h.

◆ USB_FRAMES_PER_SECOND_FS

#define USB_FRAMES_PER_SECOND_FS   1000 /* full speed */

Definition at line 80 of file usb.h.

◆ USB_FRAMES_PER_SECOND_HS

#define USB_FRAMES_PER_SECOND_HS   8000 /* high speed */

Definition at line 81 of file usb.h.

◆ USB_FS_BYTES_PER_HS_UFRAME

#define USB_FS_BYTES_PER_HS_UFRAME   188 /* bytes */

Definition at line 83 of file usb.h.

◆ USB_HS_MICRO_FRAMES_MAX

#define USB_HS_MICRO_FRAMES_MAX   8 /* units */

Definition at line 84 of file usb.h.

◆ USB_IFACE_INDEX_ANY

#define USB_IFACE_INDEX_ANY   0xFF /* internal use only */

Definition at line 76 of file usb.h.

◆ USB_INTERFACE_FUNC_SUSPEND

#define USB_INTERFACE_FUNC_SUSPEND   0

Definition at line 277 of file usb.h.

◆ USB_INTERFACE_FUNC_SUSPEND_LP

#define USB_INTERFACE_FUNC_SUSPEND_LP   (1 << 8)

Definition at line 278 of file usb.h.

◆ USB_INTERFACE_FUNC_SUSPEND_RW

#define USB_INTERFACE_FUNC_SUSPEND_RW   (1 << 9)

Definition at line 279 of file usb.h.

◆ USB_ISOC_TIME_MAX

#define USB_ISOC_TIME_MAX   128 /* ms */

Definition at line 86 of file usb.h.

◆ USB_LANGUAGE_TABLE

#define USB_LANGUAGE_TABLE   0x00 /* language ID string index */

Definition at line 198 of file usb.h.

◆ USB_MAKE_STRING_DESC

#define USB_MAKE_STRING_DESC (   m,
  name 
)
Value:
static const struct { \
uByte bLength; \
uByte bDescriptorType; \
uByte bData[sizeof((uint8_t []){m})]; \
} __packed name = { \
.bLength = sizeof(name), \
.bDescriptorType = UDESC_STRING, \
.bData = { m }, \
}
const char * name
#define UDESC_STRING
Definition: usb.h:197

Definition at line 584 of file usb.h.

◆ USB_MAX_IPACKET

#define USB_MAX_IPACKET   8 /* initial USB packet size */

Definition at line 71 of file usb.h.

◆ USB_MAX_POWER

#define USB_MAX_POWER   500 /* mA */

Definition at line 127 of file usb.h.

◆ USB_MIN_DEVICES

#define USB_MIN_DEVICES   2 /* unused + root HUB */

Definition at line 74 of file usb.h.

◆ USB_MIN_POWER

#define USB_MIN_POWER   100 /* mA */

Definition at line 126 of file usb.h.

◆ USB_MODE_MAX

#define USB_MODE_MAX   (USB_MODE_DUAL+1)

Definition at line 782 of file usb.h.

◆ USB_PORT_POWER_DOWN_TIME

#define USB_PORT_POWER_DOWN_TIME   100 /* ms */

Definition at line 93 of file usb.h.

◆ USB_PORT_POWERUP_DELAY

#define USB_PORT_POWERUP_DELAY   300 /* ms */

Definition at line 118 of file usb.h.

◆ USB_PORT_POWERUP_DELAY_SPEC

#define USB_PORT_POWERUP_DELAY_SPEC   100 /* ms */

Definition at line 106 of file usb.h.

◆ USB_PORT_RESET_DELAY

#define USB_PORT_RESET_DELAY   50 /* ms */

Definition at line 115 of file usb.h.

◆ USB_PORT_RESET_DELAY_SPEC

#define USB_PORT_RESET_DELAY_SPEC   10 /* ms */

Definition at line 103 of file usb.h.

◆ USB_PORT_RESET_RECOVERY

#define USB_PORT_RESET_RECOVERY   10 /* ms */

Definition at line 117 of file usb.h.

◆ USB_PORT_RESET_RECOVERY_SPEC

#define USB_PORT_RESET_RECOVERY_SPEC   10 /* ms */

Definition at line 105 of file usb.h.

◆ USB_PORT_RESUME_DELAY

#define USB_PORT_RESUME_DELAY   (20*2) /* ms */

Definition at line 119 of file usb.h.

◆ USB_PORT_RESUME_DELAY_SPEC

#define USB_PORT_RESUME_DELAY_SPEC   20 /* ms */

Definition at line 107 of file usb.h.

◆ USB_PORT_ROOT_RESET_DELAY

#define USB_PORT_ROOT_RESET_DELAY   200 /* ms */

Definition at line 116 of file usb.h.

◆ USB_PORT_ROOT_RESET_DELAY_SPEC

#define USB_PORT_ROOT_RESET_DELAY_SPEC   50 /* ms */

Definition at line 104 of file usb.h.

◆ USB_POWER_DOWN_TIME

#define USB_POWER_DOWN_TIME   200 /* ms */

Definition at line 92 of file usb.h.

◆ USB_POWER_MODE_OFF

#define USB_POWER_MODE_OFF   0 /* turn off device */

Definition at line 96 of file usb.h.

◆ USB_POWER_MODE_ON

#define USB_POWER_MODE_ON   1 /* always on */

Definition at line 97 of file usb.h.

◆ USB_POWER_MODE_RESUME

#define USB_POWER_MODE_RESUME   4 /* force resume */

Definition at line 100 of file usb.h.

◆ USB_POWER_MODE_SAVE

#define USB_POWER_MODE_SAVE   2 /* automatic suspend and resume */

Definition at line 98 of file usb.h.

◆ USB_POWER_MODE_SUSPEND

#define USB_POWER_MODE_SUSPEND   3 /* force suspend */

Definition at line 99 of file usb.h.

◆ USB_RESUME_DELAY

#define USB_RESUME_DELAY   (50*5) /* ms */

Definition at line 121 of file usb.h.

◆ USB_RESUME_DELAY_SPEC

#define USB_RESUME_DELAY_SPEC   (20*5) /* ms */

Definition at line 109 of file usb.h.

◆ USB_RESUME_RECOVERY

#define USB_RESUME_RECOVERY   50 /* ms */

Definition at line 123 of file usb.h.

◆ USB_RESUME_RECOVERY_SPEC

#define USB_RESUME_RECOVERY_SPEC   10 /* ms */

Definition at line 111 of file usb.h.

◆ USB_RESUME_WAIT

#define USB_RESUME_WAIT   50 /* ms */

Definition at line 122 of file usb.h.

◆ USB_RESUME_WAIT_SPEC

#define USB_RESUME_WAIT_SPEC   10 /* ms */

Definition at line 110 of file usb.h.

◆ USB_REV_MAX

#define USB_REV_MAX   (USB_REV_3_0+1)

Definition at line 772 of file usb.h.

◆ USB_ROOT_HUB_ADDR

#define USB_ROOT_HUB_ADDR   1 /* index */

Definition at line 73 of file usb.h.

◆ USB_SET_ADDRESS_SETTLE

#define USB_SET_ADDRESS_SETTLE   10 /* ms */

Definition at line 120 of file usb.h.

◆ USB_SET_ADDRESS_SETTLE_SPEC

#define USB_SET_ADDRESS_SETTLE_SPEC   2 /* ms */

Definition at line 108 of file usb.h.

◆ USB_SPEED_MAX

#define USB_SPEED_MAX   (USB_SPEED_SUPER+1)

Definition at line 758 of file usb.h.

◆ USB_SS_HUB_DEPTH_MAX

#define USB_SS_HUB_DEPTH_MAX   5

Definition at line 234 of file usb.h.

◆ USB_STACK_VERSION

#define USB_STACK_VERSION   2000 /* 2.0 */

Definition at line 67 of file usb.h.

◆ USB_START_ADDR

#define USB_START_ADDR
Value:
0 /* default USB device BUS address
* after USB bus reset */

Definition at line 77 of file usb.h.

◆ USB_STATE_MAX

#define USB_STATE_MAX   (USB_STATE_CONFIGURED+1)

Definition at line 794 of file usb.h.

◆ USB_UNCONFIG_INDEX

#define USB_UNCONFIG_INDEX   0xFF /* internal use only */

Definition at line 75 of file usb.h.

◆ USB_UNCONFIG_NO

#define USB_UNCONFIG_NO   0

Definition at line 391 of file usb.h.

◆ USB_V2EXT_BESL_BASELINE_GET

#define USB_V2EXT_BESL_BASELINE_GET (   x)    (((x) >> 8) & 0xF)

Definition at line 343 of file usb.h.

◆ USB_V2EXT_BESL_BASELINE_VALID

#define USB_V2EXT_BESL_BASELINE_VALID   (1U << 3)

Definition at line 341 of file usb.h.

◆ USB_V2EXT_BESL_DEEP_GET

#define USB_V2EXT_BESL_DEEP_GET (   x)    (((x) >> 12) & 0xF)

Definition at line 344 of file usb.h.

◆ USB_V2EXT_BESL_DEEP_VALID

#define USB_V2EXT_BESL_DEEP_VALID   (1U << 4)

Definition at line 342 of file usb.h.

◆ USB_V2EXT_BESL_SUPPORTED

#define USB_V2EXT_BESL_SUPPORTED   (1U << 2)

Definition at line 340 of file usb.h.

◆ USB_V2EXT_LPM

#define USB_V2EXT_LPM   (1U << 1)

Definition at line 339 of file usb.h.

◆ UT_CLASS

#define UT_CLASS   0x20

Definition at line 159 of file usb.h.

◆ UT_DEVICE

#define UT_DEVICE   0x00

Definition at line 161 of file usb.h.

◆ UT_ENDPOINT

#define UT_ENDPOINT   0x02

Definition at line 163 of file usb.h.

◆ UT_INTERFACE

#define UT_INTERFACE   0x01

Definition at line 162 of file usb.h.

◆ UT_OTHER

#define UT_OTHER   0x03

Definition at line 164 of file usb.h.

◆ UT_READ

#define UT_READ   0x80

Definition at line 157 of file usb.h.

◆ UT_READ_CLASS_DEVICE

#define UT_READ_CLASS_DEVICE   (UT_READ | UT_CLASS | UT_DEVICE)

Definition at line 172 of file usb.h.

◆ UT_READ_CLASS_ENDPOINT

#define UT_READ_CLASS_ENDPOINT   (UT_READ | UT_CLASS | UT_ENDPOINT)

Definition at line 175 of file usb.h.

◆ UT_READ_CLASS_INTERFACE

#define UT_READ_CLASS_INTERFACE   (UT_READ | UT_CLASS | UT_INTERFACE)

Definition at line 173 of file usb.h.

◆ UT_READ_CLASS_OTHER

#define UT_READ_CLASS_OTHER   (UT_READ | UT_CLASS | UT_OTHER)

Definition at line 174 of file usb.h.

◆ UT_READ_DEVICE

#define UT_READ_DEVICE   (UT_READ | UT_STANDARD | UT_DEVICE)

Definition at line 166 of file usb.h.

◆ UT_READ_ENDPOINT

#define UT_READ_ENDPOINT   (UT_READ | UT_STANDARD | UT_ENDPOINT)

Definition at line 168 of file usb.h.

◆ UT_READ_INTERFACE

#define UT_READ_INTERFACE   (UT_READ | UT_STANDARD | UT_INTERFACE)

Definition at line 167 of file usb.h.

◆ UT_READ_VENDOR_DEVICE

#define UT_READ_VENDOR_DEVICE   (UT_READ | UT_VENDOR | UT_DEVICE)

Definition at line 180 of file usb.h.

◆ UT_READ_VENDOR_ENDPOINT

#define UT_READ_VENDOR_ENDPOINT   (UT_READ | UT_VENDOR | UT_ENDPOINT)

Definition at line 183 of file usb.h.

◆ UT_READ_VENDOR_INTERFACE

#define UT_READ_VENDOR_INTERFACE   (UT_READ | UT_VENDOR | UT_INTERFACE)

Definition at line 181 of file usb.h.

◆ UT_READ_VENDOR_OTHER

#define UT_READ_VENDOR_OTHER   (UT_READ | UT_VENDOR | UT_OTHER)

Definition at line 182 of file usb.h.

◆ UT_STANDARD

#define UT_STANDARD   0x00

Definition at line 158 of file usb.h.

◆ UT_VENDOR

#define UT_VENDOR   0x40

Definition at line 160 of file usb.h.

◆ UT_WRITE

#define UT_WRITE   0x00

Definition at line 156 of file usb.h.

◆ UT_WRITE_CLASS_DEVICE

#define UT_WRITE_CLASS_DEVICE   (UT_WRITE | UT_CLASS | UT_DEVICE)

Definition at line 176 of file usb.h.

◆ UT_WRITE_CLASS_ENDPOINT

#define UT_WRITE_CLASS_ENDPOINT   (UT_WRITE | UT_CLASS | UT_ENDPOINT)

Definition at line 179 of file usb.h.

◆ UT_WRITE_CLASS_INTERFACE

#define UT_WRITE_CLASS_INTERFACE   (UT_WRITE | UT_CLASS | UT_INTERFACE)

Definition at line 177 of file usb.h.

◆ UT_WRITE_CLASS_OTHER

#define UT_WRITE_CLASS_OTHER   (UT_WRITE | UT_CLASS | UT_OTHER)

Definition at line 178 of file usb.h.

◆ UT_WRITE_DEVICE

#define UT_WRITE_DEVICE   (UT_WRITE | UT_STANDARD | UT_DEVICE)

Definition at line 169 of file usb.h.

◆ UT_WRITE_ENDPOINT

#define UT_WRITE_ENDPOINT   (UT_WRITE | UT_STANDARD | UT_ENDPOINT)

Definition at line 171 of file usb.h.

◆ UT_WRITE_INTERFACE

#define UT_WRITE_INTERFACE   (UT_WRITE | UT_STANDARD | UT_INTERFACE)

Definition at line 170 of file usb.h.

◆ UT_WRITE_VENDOR_DEVICE

#define UT_WRITE_VENDOR_DEVICE   (UT_WRITE | UT_VENDOR | UT_DEVICE)

Definition at line 184 of file usb.h.

◆ UT_WRITE_VENDOR_ENDPOINT

#define UT_WRITE_VENDOR_ENDPOINT   (UT_WRITE | UT_VENDOR | UT_ENDPOINT)

Definition at line 187 of file usb.h.

◆ UT_WRITE_VENDOR_INTERFACE

#define UT_WRITE_VENDOR_INTERFACE   (UT_WRITE | UT_VENDOR | UT_INTERFACE)

Definition at line 185 of file usb.h.

◆ UT_WRITE_VENDOR_OTHER

#define UT_WRITE_VENDOR_OTHER   (UT_WRITE | UT_VENDOR | UT_OTHER)

Definition at line 186 of file usb.h.

Typedef Documentation

◆ usb_bos_cap_descriptor_t

Definition at line 332 of file usb.h.

◆ usb_bos_descriptor_t

Definition at line 318 of file usb.h.

◆ usb_config_descriptor_t

Definition at line 400 of file usb.h.

◆ usb_descriptor_t

Definition at line 286 of file usb.h.

◆ usb_devcap_container_id_descriptor_t

◆ usb_devcap_ss_descriptor_t

Definition at line 358 of file usb.h.

◆ usb_devcap_usb2ext_descriptor_t

Definition at line 346 of file usb.h.

◆ usb_device_descriptor_t

Definition at line 309 of file usb.h.

◆ usb_device_qualifier_t

Definition at line 669 of file usb.h.

◆ usb_device_request_t

Definition at line 154 of file usb.h.

◆ usb_endpoint_descriptor_t

Definition at line 562 of file usb.h.

◆ usb_endpoint_ss_comp_descriptor_t

Definition at line 574 of file usb.h.

◆ usb_hub_descriptor_min_t

Definition at line 656 of file usb.h.

◆ usb_hub_descriptor_t

Definition at line 630 of file usb.h.

◆ usb_hub_ss_descriptor_t

Definition at line 643 of file usb.h.

◆ usb_hub_status_t

Definition at line 701 of file usb.h.

◆ usb_interface_assoc_descriptor_t

Definition at line 425 of file usb.h.

◆ usb_interface_descriptor_t

Definition at line 413 of file usb.h.

◆ usb_otg_descriptor_t

Definition at line 678 of file usb.h.

◆ usb_port_status_t

Definition at line 746 of file usb.h.

◆ usb_status_t

typedef struct usb_status usb_status_t

Definition at line 693 of file usb.h.

◆ usb_string_descriptor_t

Definition at line 582 of file usb.h.

◆ usb_string_lang_t

Definition at line 600 of file usb.h.

Enumeration Type Documentation

◆ usb_dev_speed

Enumerator
USB_SPEED_VARIABLE 
USB_SPEED_LOW 
USB_SPEED_FULL 
USB_SPEED_HIGH 
USB_SPEED_SUPER 

Definition at line 751 of file usb.h.

◆ usb_dev_state

Enumerator
USB_STATE_DETACHED 
USB_STATE_ATTACHED 
USB_STATE_POWERED 
USB_STATE_ADDRESSED 
USB_STATE_CONFIGURED 

Definition at line 787 of file usb.h.

◆ usb_ep_mode

Enumerator
USB_EP_MODE_DEFAULT 
USB_EP_MODE_STREAMS 
USB_EP_MODE_HW_MASS_STORAGE 
USB_EP_MODE_HW_SERIAL 
USB_EP_MODE_HW_ETHERNET_CDC 
USB_EP_MODE_HW_ETHERNET_NCM 
USB_EP_MODE_MAX 

Definition at line 800 of file usb.h.

◆ usb_hc_mode

Enumerator
USB_MODE_HOST 
USB_MODE_DEVICE 
USB_MODE_DUAL 

Definition at line 777 of file usb.h.

◆ usb_revision

Enumerator
USB_REV_UNKNOWN 
USB_REV_PRE_1_0 
USB_REV_1_0 
USB_REV_1_1 
USB_REV_2_0 
USB_REV_2_5 
USB_REV_3_0 

Definition at line 763 of file usb.h.

Function Documentation

◆ MALLOC_DECLARE() [1/2]

MALLOC_DECLARE ( M_USB  )

◆ MALLOC_DECLARE() [2/2]

MALLOC_DECLARE ( M_USBDEV  )

Variable Documentation

◆ __packed