Index: uspace/app/vuhid/main.c
===================================================================
--- uspace/app/vuhid/main.c	(revision c9399c0cc88b72bd8ee0f28b1d6c211f0ed4a6d5)
+++ uspace/app/vuhid/main.c	(revision 2a6e2358c6c111bca4fb6572d20c204df89cac65)
@@ -57,18 +57,15 @@
 static usbvirt_control_request_handler_t endpoint_zero_handlers[] = {
 	{
-		.request_type = SETUP_REQUEST_TO_HOST(USB_REQUEST_TYPE_STANDARD,  USB_REQUEST_RECIPIENT_INTERFACE),
-		.request = USB_DEVREQ_GET_DESCRIPTOR,
+		STD_REQ_IN(USB_REQUEST_RECIPIENT_INTERFACE, USB_DEVREQ_GET_DESCRIPTOR),
 		.name = "Get_Descriptor",
 		.callback = req_get_descriptor
 	},
 	{
-		.request_type = SETUP_REQUEST_TO_DEVICE(USB_REQUEST_TYPE_CLASS, USB_REQUEST_RECIPIENT_INTERFACE),
-		.request = USB_HIDREQ_SET_PROTOCOL,
+		CLASS_REQ_OUT(USB_REQUEST_RECIPIENT_INTERFACE, USB_HIDREQ_SET_PROTOCOL),
 		.name = "Set_Protocol",
 		.callback = req_set_protocol
 	},
 	{
-		.request_type = SETUP_REQUEST_TO_DEVICE(USB_REQUEST_TYPE_CLASS, USB_REQUEST_RECIPIENT_INTERFACE),
-		.request = USB_HIDREQ_SET_REPORT,
+		CLASS_REQ_OUT(USB_REQUEST_RECIPIENT_INTERFACE, USB_HIDREQ_SET_REPORT),
 		.name = "Set_Report",
 		.callback = req_set_report
Index: uspace/drv/bus/usb/vhc/hub/virthubops.c
===================================================================
--- uspace/drv/bus/usb/vhc/hub/virthubops.c	(revision c9399c0cc88b72bd8ee0f28b1d6c211f0ed4a6d5)
+++ uspace/drv/bus/usb/vhc/hub/virthubops.c	(revision 2a6e2358c6c111bca4fb6572d20c204df89cac65)
@@ -347,27 +347,8 @@
 
 
-/** Create a class request to get data from device
- *
- * @param rec Request recipient.
- * @param req Request code.
- */
-#define CLASS_REQ_IN(rec, req) \
-	.request_type = SETUP_REQUEST_TO_HOST(USB_REQUEST_TYPE_CLASS, rec), \
-	.request = req
-
-/** Create a class request to send data to device
- *
- * @param rec Request recipient.
- * @param req Request code.
- */
-#define CLASS_REQ_OUT(rec, req) \
-	.request_type = SETUP_REQUEST_TO_DEVICE(USB_REQUEST_TYPE_CLASS, rec), \
-	.request = req
-
 /** Hub operations on control endpoint zero. */
 static usbvirt_control_request_handler_t endpoint_zero_handlers[] = {
 	{
-		.request_type = SETUP_REQUEST_TO_HOST(USB_REQUEST_TYPE_STANDARD, USB_REQUEST_RECIPIENT_DEVICE),
-		.request = USB_DEVREQ_GET_DESCRIPTOR,
+		STD_REQ_IN(USB_REQUEST_RECIPIENT_DEVICE, USB_DEVREQ_GET_DESCRIPTOR),
 		.name = "GetDescriptor",
 		.callback = req_get_descriptor
Index: uspace/lib/usbvirt/include/usbvirt/device.h
===================================================================
--- uspace/lib/usbvirt/include/usbvirt/device.h	(revision c9399c0cc88b72bd8ee0f28b1d6c211f0ed4a6d5)
+++ uspace/lib/usbvirt/include/usbvirt/device.h	(revision 2a6e2358c6c111bca4fb6572d20c204df89cac65)
@@ -41,4 +41,5 @@
 #include <async.h>
 
+
 /** Maximum number of endpoints supported by virtual USB. */
 #define USBVIRT_ENDPOINT_MAX 16
@@ -87,4 +88,40 @@
     const usb_device_request_setup_packet_t *setup_packet,
     uint8_t *data, size_t *act_data_size);
+
+/** Create a class request to get data from device
+ *
+ * @param rec Request recipient.
+ * @param req Request code.
+ */
+#define CLASS_REQ_IN(rec, req) \
+	.request_type = SETUP_REQUEST_TO_HOST(USB_REQUEST_TYPE_CLASS, rec), \
+	.request = req
+
+/** Create a class request to send data to device
+ *
+ * @param rec Request recipient.
+ * @param req Request code.
+ */
+#define CLASS_REQ_OUT(rec, req) \
+	.request_type = SETUP_REQUEST_TO_DEVICE(USB_REQUEST_TYPE_CLASS, rec), \
+	.request = req
+
+/** Create a standard request to get data from device
+ *
+ * @param rec Request recipient.
+ * @param req Request code.
+ */
+#define STD_REQ_IN(rec, req) \
+	.request_type = SETUP_REQUEST_TO_HOST(USB_REQUEST_TYPE_STANDARD, rec), \
+	.request = req
+
+/** Create a standard request to send data to device
+ *
+ * @param rec Request recipient.
+ * @param req Request code.
+ */
+#define STD_REQ_OUT(rec, req) \
+	.request_type = SETUP_REQUEST_TO_DEVICE(USB_REQUEST_TYPE_STANDARD, rec), \
+	.request = req
 
 /** Callback for control request on a virtual USB device.
Index: uspace/lib/usbvirt/src/stdreq.c
===================================================================
--- uspace/lib/usbvirt/src/stdreq.c	(revision c9399c0cc88b72bd8ee0f28b1d6c211f0ed4a6d5)
+++ uspace/lib/usbvirt/src/stdreq.c	(revision 2a6e2358c6c111bca4fb6572d20c204df89cac65)
@@ -192,18 +192,15 @@
 usbvirt_control_request_handler_t library_handlers[] = {
 	{
-		.request_type = SETUP_REQUEST_TO_DEVICE(USB_REQUEST_TYPE_STANDARD, USB_REQUEST_RECIPIENT_DEVICE),
-		.request = USB_DEVREQ_SET_ADDRESS,
+		STD_REQ_OUT(USB_REQUEST_RECIPIENT_DEVICE, USB_DEVREQ_SET_ADDRESS),
 		.name = "SetAddress",
 		.callback = req_set_address
 	},
 	{
-		.request_type = SETUP_REQUEST_TO_HOST(USB_REQUEST_TYPE_STANDARD, USB_REQUEST_RECIPIENT_DEVICE),
-		.request = USB_DEVREQ_GET_DESCRIPTOR,
+		STD_REQ_IN(USB_REQUEST_RECIPIENT_DEVICE, USB_DEVREQ_GET_DESCRIPTOR),
 		.name = "GetDescriptor",
 		.callback = req_get_descriptor
 	},
 	{
-		.request_type = SETUP_REQUEST_TO_DEVICE(USB_REQUEST_TYPE_STANDARD, USB_REQUEST_RECIPIENT_DEVICE),
-		.request = USB_DEVREQ_SET_CONFIGURATION,
+		STD_REQ_OUT(USB_REQUEST_RECIPIENT_DEVICE, USB_DEVREQ_SET_CONFIGURATION),
 		.name = "SetConfiguration",
 		.callback = req_set_configuration
