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.