struct usb_device(9)

NAME

struct_usb_device - kernel's representation of a USB device

SYNOPSIS

struct usb_device {
  int devnum;
  char devpath[16];
  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_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 discon_suspended:1;
  unsigned persist_enabled:1;
  unsigned have_langid:1;
  unsigned authorized:1;
  unsigned authenticated:1;
  unsigned wusb:1;
  int string_langid;
  char * product;
  char * manufacturer;
  char * serial;
  struct list_head filelist;
#ifdef CONFIG_USB_DEVICE_CLASS
  struct device * usb_classdev;
#endif
#ifdef CONFIG_USB_DEVICEFS
  struct dentry * usbfs_dentry;
#endif
  int maxchild;
  struct usb_device * children[USB_MAXCHILDREN];
  int pm_usage_cnt;
  u32 quirks;
  atomic_t urbnum;
  unsigned long active_duration;
#ifdef CONFIG_PM
  struct delayed_work autosuspend;
  struct mutex pm_mutex;
  unsigned long last_busy;
  int autosuspend_delay;
  unsigned long connect_time;
  unsigned auto_pm:1;
  unsigned do_remote_wakeup:1;
  unsigned reset_resume:1;
  unsigned autosuspend_disabled:1;
  unsigned autoresume_disabled:1;
  unsigned skip_sys_resume:1;
#endif
};

MEMBERS

devnum
device number; address on a USB bus
devpath[16]
device ID string for use in messages (e.g., /port/...)
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 we´re the root
bus
bus we´re part of
ep0
endpoint 0 data (default control pipe)
dev
generic device interface
descriptor
USB device descriptor
config
all of the device´s 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
discon_suspended
disconnected while suspended
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
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
usb_classdev
USB class device that was created for usbfs device access from
userspace
usbfs_dentry
usbfs dentry entry for the device
maxchild
number of ports if hub
children[USB_MAXCHILDREN]
child devices - USB devices that are attached to this hub
pm_usage_cnt
usage counter for autosuspend
quirks
quirks of the whole device
urbnum
number of URBs submitted for the whole device
active_duration
total time device is not suspended
autosuspend
for delayed autosuspends
pm_mutex
protects PM operations
last_busy
time of last use
autosuspend_delay
in jiffies
connect_time
time device was first connected
auto_pm
autosuspend/resume in progress
do_remote_wakeup
remote wakeup should be enabled
reset_resume
needs reset instead of resume
autosuspend_disabled
autosuspend disabled by the user
autoresume_disabled
autoresume disabled by the user
skip_sys_resume
skip the next system resume

NOTES

Usbcore drivers should not set usbdev->state directly. Instead use
usb_set_device_state.

COPYRIGHT

Copyright © 2010-2025 Platon Technologies, s.r.o.           Home | Man pages | tLDP | Documents | Utilities | About
Design by styleshout