patch-2.2.7 linux/drivers/usb/hub.h

Next file: linux/drivers/usb/inits.h
Previous file: linux/drivers/usb/hub.c
Back to the patch index
Back to the overall index

diff -u --recursive --new-file v2.2.6/linux/drivers/usb/hub.h linux/drivers/usb/hub.h
@@ -0,0 +1,80 @@
+#ifndef __LINUX_HUB_H
+#define __LINUX_HUB_H
+
+#include <linux/list.h>
+
+/*
+ * Hub feature numbers
+ */
+#define C_HUB_LOCAL_POWER	0
+#define C_HUB_OVER_CURRENT	1
+
+/*
+ * Port feature numbers
+ */
+#define USB_PORT_FEAT_ENABLE		1
+#define USB_PORT_FEAT_SUSPEND		2
+#define USB_PORT_FEAT_OVER_CURRENT	3
+#define USB_PORT_FEAT_RESET		4
+#define USB_PORT_FEAT_POWER		8
+#define USB_PORT_FEAT_LOWSPEED		9
+#define USB_PORT_FEAT_C_CONNECTION	16
+#define USB_PORT_FEAT_C_ENABLE		17
+#define USB_PORT_FEAT_C_SUSPEND		18
+#define USB_PORT_FEAT_C_OVER_CURRENT	19
+#define USB_PORT_FEAT_C_RESET		20
+
+/* wPortStatus */
+#define USB_PORT_STAT_CONNECTION	0x0001
+#define USB_PORT_STAT_ENABLE		0x0002
+#define USB_PORT_STAT_SUSPEND		0x0004
+#define USB_PORT_STAT_OVERCURRENT	0x0008
+#define USB_PORT_STAT_RESET		0x0010
+#define USB_PORT_STAT_POWER		0x0100
+#define USB_PORT_STAT_LOW_SPEED		0x0200
+
+/* wPortChange */
+#define USB_PORT_STAT_C_CONNECTION	0x0001
+#define USB_PORT_STAT_C_ENABLE		0x0002
+#define USB_PORT_STAT_C_SUSPEND		0x0004
+#define USB_PORT_STAT_C_OVERCURRENT	0x0008
+#define USB_PORT_STAT_C_RESET		0x0010
+
+/* Characteristics */
+#define HUB_CHAR_LPSM		0x0003
+#define HUB_CHAR_COMPOUND	0x0004
+#define HUB_CHAR_OCPM		0x0018
+
+struct usb_device;
+
+typedef enum {
+	USB_PORT_UNPOWERED = 0,		/* Default state */
+	USB_PORT_POWERED,		/* When we've put power to it */
+	USB_PORT_ENABLED,		/* When it's been enabled */
+	USB_PORT_DISABLED,		/* If it's been disabled */
+	USB_PORT_ADMINDISABLED,		/* Forced down */
+} usb_hub_port_state;
+
+struct usb_hub_port {
+	usb_hub_port_state cstate;	/* Configuration state */
+
+	struct usb_device *child;	/* Device attached to this port */
+
+	struct usb_hub *parent;		/* Parent hub */
+};
+
+struct usb_hub {
+	/* Device structure */
+	struct usb_device *dev;
+
+	/* Temporary event list */
+	struct list_head event_list;
+
+	/* Number of ports on the hub */
+	int nports;
+
+	struct usb_hub_port ports[0];	/* Dynamically allocated */
+};
+
+#endif
+

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)