1. NAME▲
struct_usb_device - kernelAqs representation of a USB device
2. SYNOPSIS ▲
 
struct usb_device {
  int devnum;
  char devpath[16];
  u32 route;
  enum usb_device_state state;
  enum usb_device_speed speed;
  struct usb_tt * tt;
  int ttport;
  unsigned int toggle[2];
  struct usb_device * parent;
  struct usb_bus * bus;
  struct usb_host_endpoint ep0;
  struct device dev;
  struct usb_device_descriptor descriptor;
  struct usb_host_bos * bos;
  struct usb_host_config * config;
  struct usb_host_config * actconfig;
  struct usb_host_endpoint * ep_in[16];
  struct usb_host_endpoint * ep_out[16];
  char ** rawdescriptors;
  unsigned short bus_mA;
  u8 portnum;
  u8 level;
  unsigned can_submit:1;
  unsigned persist_enabled:1;
  unsigned have_langid:1;
  unsigned authorized:1;
  unsigned authenticated:1;
  unsigned wusb:1;
  unsigned lpm_capable:1;
  unsigned usb2_hw_lpm_capable:1;
  unsigned usb2_hw_lpm_enabled:1;
  unsigned usb3_lpm_enabled:1;
  int string_langid;
  char * product;
  char * manufacturer;
  char * serial;
  struct list_head filelist;
  int maxchild;
  u32 quirks;
  atomic_t urbnum;
  unsigned long active_duration;
#ifdef CONFIG_PM
  unsigned long connect_time;
  unsigned do_remote_wakeup:1;
  unsigned reset_resume:1;
  unsigned port_is_suspended:1;
#endif
  struct wusb_dev * wusb_dev;
  int slot_id;
  enum usb_device_removable removable;
  struct usb3_lpm_parameters u1_params;
  struct usb3_lpm_parameters u2_params;
  unsigned lpm_disable_count;
};3. MEMBERS ▲
devnum 
    device number; address on a USB bus 
devpath[16] 
    device ID string for use in messages (e.g., /port/...) 
route 
    tree topology hex string for use with xHCI 
state 
    device state: configured, not attached, etc. 
speed 
    device speed: high/full/low (or error) 
tt 
    Transaction Translator info; used with low/full speed dev, highspeed hub 
ttport 
    device port on that tt hub 
toggle[2] 
    one bit for each endpoint, with ([0] = IN, [1] = OUT) endpoints 
parent 
    our hub, unless weAqre the root 
bus 
    bus weAqre part of 
ep0 
    endpoint 0 data (default control pipe) 
dev 
    generic device interface 
descriptor 
    USB device descriptor 
bos 
    USB device BOS descriptor set 
config 
    all of the deviceAqs configs 
actconfig 
    the active configuration 
ep_in[16] 
    array of IN endpoints 
ep_out[16] 
    array of OUT endpoints 
rawdescriptors 
    raw descriptors for each config 
bus_mA 
    Current available from the bus 
portnum 
    parent port number (origin 1) 
level 
    number of USB hub ancestors 
can_submit 
    URBs may be submitted 
persist_enabled 
    USB_PERSIST enabled for this device 
have_langid 
    whether string_langid is valid 
authorized 
    policy has said we can use it; (user space) policy determines if we authorize this device to be used or not. By default, wired USB devices are authorized. WUSB devices are not, until we authorize them from user space. FIXME -- complete doc 
authenticated 
    Crypto authentication passed 
wusb 
    device is Wireless USB 
lpm_capable 
    device supports LPM 
usb2_hw_lpm_capable 
    device can perform USB2 hardware LPM 
usb2_hw_lpm_enabled 
    USB2 hardware LPM enabled 
usb3_lpm_enabled 
    USB3 hardware LPM enabled 
string_langid 
    language ID for strings 
product 
    iProduct string, if present (static) 
manufacturer 
    iManufacturer string, if present (static) 
serial 
    iSerialNumber string, if present (static) 
filelist 
    usbfs files that are open to this device 
maxchild 
    number of ports if hub 
quirks 
    quirks of the whole device 
urbnum 
    number of URBs submitted for the whole device 
active_duration 
    total time device is not suspended 
connect_time 
    time device was first connected 
do_remote_wakeup 
    remote wakeup should be enabled 
reset_resume 
    needs reset instead of resume 
port_is_suspended 
    the upstream port is suspended (L2 or U3) 
wusb_dev 
    if this is a Wireless USB device, link to the WUSB specific data for the device. 
slot_id 
    Slot ID assigned by xHCI 
removable 
    Device can be physically removed from this port 
u1_params 
    exit latencies for USB3 U1 LPM state, and hub-initiated timeout. 
u2_params 
    exit latencies for USB3 U2 LPM state, and hub-initiated timeout. 
lpm_disable_count 
    Ref count used by usb_disable_lpm and usb_enable_lpm to keep track of the number of functions that require USB 3.0 Link Power Management to be disabled for this usb_device. This count should only be manipulated by those functions, with the bandwidth_mutex is held. 
4. NOTES ▲
Usbcore drivers should not set usbdev->state directly. Instead use usb_set_device_state.
5. COPYRIGHT ▲