Index: uspace/lib/usb/include/usb/classes/hub.h
===================================================================
--- uspace/lib/usb/include/usb/classes/hub.h	(revision 217e981067191b312f3821a33ad8bb16fe0e75aa)
+++ uspace/lib/usb/include/usb/classes/hub.h	(revision 9f685aace1dc51b76751b3d54828f261a0f0e875)
@@ -48,22 +48,58 @@
 	USB_HUB_FEATURE_HUB_OVER_CURRENT = 1,
 	USB_HUB_FEATURE_PORT_CONNECTION = 0,
-	USB_HUB_FEATURE_PORT_ENABLE = 1,
-	USB_HUB_FEATURE_PORT_SUSPEND = 2,
+	USB2_HUB_FEATURE_PORT_ENABLE = 1,
+	USB2_HUB_FEATURE_PORT_SUSPEND = 2,
 	USB_HUB_FEATURE_PORT_OVER_CURRENT = 3,
 	USB_HUB_FEATURE_PORT_RESET = 4,
+	USB3_HUB_FEATURE_PORT_LINK_STATE = 5,
 	USB_HUB_FEATURE_PORT_POWER = 8,
-	USB_HUB_FEATURE_PORT_LOW_SPEED = 9,
-	USB_HUB_FEATURE_PORT_HIGH_SPEED = 10,
+	USB2_HUB_FEATURE_PORT_LOW_SPEED = 9,
 	USB_HUB_FEATURE_C_PORT_CONNECTION = 16,
-	USB_HUB_FEATURE_C_PORT_ENABLE = 17,
-	USB_HUB_FEATURE_C_PORT_SUSPEND = 18,
+	USB2_HUB_FEATURE_C_PORT_ENABLE = 17,
+	USB2_HUB_FEATURE_C_PORT_SUSPEND = 18,
 	USB_HUB_FEATURE_C_PORT_OVER_CURRENT = 19,
 	USB_HUB_FEATURE_C_PORT_RESET = 20,
-	USB_HUB_FEATURE_C_PORT_LINK_STATE = 22,
-	USB_HUB_FEATURE_PORT_TEST = 21,
-	USB_HUB_FEATURE_PORT_INDICATOR = 22
+	USB2_HUB_FEATURE_PORT_TEST = 21,
+	USB2_HUB_FEATURE_PORT_INDICATOR = 22,
+	USB3_HUB_FEATURE_C_PORT_LINK_STATE = 25,
+	USB3_HUB_FEATURE_BH_PORT_RESET = 28,
+	USB3_HUB_FEATURE_C_BH_PORT_RESET = 29,
 	/* USB_HUB_FEATURE_ = , */
 } usb_hub_class_feature_t;
 
+/**
+ * Dword holding port status and changes flags.
+ *
+ * For more information refer to tables 11-15 and 11-16 in
+ * "Universal Serial Bus Specification Revision 1.1" pages 274 and 277
+ * (290 and 293 in pdf)
+ *
+ * Beware that definition of bits changed between USB 2 and 3,
+ * so some fields are prefixed with USB2 or USB3 instead.
+ */
+typedef uint32_t usb_port_status_t;
+
+#define USB_HUB_PORT_STATUS_BIT(bit)  (uint32_usb2host(1 << (bit)))
+#define USB_HUB_PORT_STATUS_CONNECTION		USB_HUB_PORT_STATUS_BIT(0)
+#define USB_HUB_PORT_STATUS_ENABLE		USB_HUB_PORT_STATUS_BIT(1)
+#define USB2_HUB_PORT_STATUS_SUSPEND		USB_HUB_PORT_STATUS_BIT(2)
+#define USB_HUB_PORT_STATUS_OC			USB_HUB_PORT_STATUS_BIT(3)
+#define USB_HUB_PORT_STATUS_RESET		USB_HUB_PORT_STATUS_BIT(4)
+
+#define USB2_HUB_PORT_STATUS_POWER		USB_HUB_PORT_STATUS_BIT(8)
+#define USB2_HUB_PORT_STATUS_LOW_SPEED		USB_HUB_PORT_STATUS_BIT(9)
+#define USB3_HUB_PORT_STATUS_POWER		USB_HUB_PORT_STATUS_BIT(9)
+#define USB2_HUB_PORT_STATUS_HIGH_SPEED		USB_HUB_PORT_STATUS_BIT(10)
+#define USB2_HUB_PORT_STATUS_TEST		USB_HUB_PORT_STATUS_BIT(11)
+#define USB2_HUB_PORT_STATUS_INDICATOR		USB_HUB_PORT_STATUS_BIT(12)
+
+#define USB_HUB_PORT_STATUS_C_CONNECTION	USB_HUB_PORT_STATUS_BIT(16)
+#define USB2_HUB_PORT_STATUS_C_ENABLE		USB_HUB_PORT_STATUS_BIT(17)
+#define USB2_HUB_PORT_STATUS_C_SUSPEND		USB_HUB_PORT_STATUS_BIT(18)
+#define USB_HUB_PORT_STATUS_C_OC		USB_HUB_PORT_STATUS_BIT(19)
+#define USB_HUB_PORT_STATUS_C_RESET		USB_HUB_PORT_STATUS_BIT(20)
+#define USB3_HUB_PORT_STATUS_C_BH_RESET		USB_HUB_PORT_STATUS_BIT(21)
+#define USB3_HUB_PORT_STATUS_C_LINK_STATE	USB_HUB_PORT_STATUS_BIT(22)
+#define USB3_HUB_PORT_STATUS_C_CONFIG_ERROR	USB_HUB_PORT_STATUS_BIT(23)
 
 /** Header of standard hub descriptor without the "variadic" part. */
