/* buffer for urb ... with extra space in case of babble */
u8 (*buffer)[8]; union { struct usb_hub_status hub; struct usb_port_status port;
} *status; /* buffer for status reports */ struct mutex status_mutex; /* for the status buffer */
int error; /* last reported error */ int nerrors; /* track consecutive errors */
unsignedlong event_bits[1]; /* status change bitmask */ unsignedlong change_bits[1]; /* ports with logical connect
status change */ unsignedlong removed_bits[1]; /* ports with a "removed"
device present */ unsignedlong wakeup_bits[1]; /* ports that have signaled
remote wakeup */ unsignedlong power_bits[1]; /* ports that are powered */ unsignedlong child_usage_bits[1]; /* ports powered on for
children */ unsignedlong warm_reset_bits[1]; /* ports requesting warm
reset recovery */ #if USB_MAXCHILDREN > 31 /* 8*sizeof(unsigned long) - 1 */ #error event_bits[] is too short! #endif
/** * struct usb port - kernel's representation of a usb port * @child: usb device attached to the port * @dev: generic device interface * @port_owner: port's owner * @peer: related usb2 and usb3 ports (share the same connector) * @connector: USB Type-C connector * @req: default pm qos request for hubs without port power control * @connect_type: port's connect type * @state: device state of the usb device attached to the port * @state_kn: kernfs_node of the sysfs attribute that accesses @state * @location: opaque representation of platform connector location * @status_lock: synchronize port_event() vs usb_port_{suspend|resume} * @portnum: port index num based one * @is_superspeed cache super-speed status * @usb3_lpm_u1_permit: whether USB3 U1 LPM is permitted. * @usb3_lpm_u2_permit: whether USB3 U2 LPM is permitted. * @early_stop: whether port initialization will be stopped earlier. * @ignore_event: whether events of the port are ignored.
*/ struct usb_port { struct usb_device *child; struct device dev; struct usb_dev_state *port_owner; struct usb_port *peer; struct typec_connector *connector; struct dev_pm_qos_request *req; enum usb_port_connect_type connect_type; enum usb_device_state state; struct kernfs_node *state_kn;
usb_port_location_t location; struct mutex status_lock;
u32 over_current_count;
u8 portnum;
u32 quirks; unsignedint early_stop:1; unsignedint ignore_event:1; unsignedint is_superspeed:1; unsignedint usb3_lpm_u1_permit:1; unsignedint usb3_lpm_u2_permit:1;
};
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.