Index: uspace/lib/usbhost/src/hcd.c
===================================================================
--- uspace/lib/usbhost/src/hcd.c	(revision f527f5844b885cc12373c416ede48539086c2748)
+++ uspace/lib/usbhost/src/hcd.c	(revision facacc712e3d87d7301754b109c9582ef1ef29e4)
@@ -102,13 +102,8 @@
 }
 
-usb_address_t hcd_request_address(hcd_t *hcd, usb_speed_t speed)
-{
-	assert(hcd);
-	usb_address_t address = 0;
-	const int ret = usb_bus_request_address(
-	    &hcd->bus, &address, false, speed);
-	if (ret != EOK)
-		return ret;
-	return address;
+int hcd_request_address(hcd_t *hcd, usb_speed_t speed, usb_address_t *address)
+{
+	assert(hcd);
+	return usb_bus_request_address(&hcd->bus, address, false, speed);
 }
 
@@ -271,7 +266,7 @@
 
 /** this is really ugly version of sync usb communication */
-ssize_t hcd_send_batch_sync(
+int hcd_send_batch_sync(
     hcd_t *hcd, usb_target_t target, usb_direction_t dir,
-    void *data, size_t size, uint64_t setup_data, const char* name)
+    void *data, size_t size, uint64_t setup_data, const char* name, size_t *out_size)
 {
 	assert(hcd);
@@ -289,5 +284,5 @@
 
 	if (sd.ret == EOK)
-		return sd.size;
+		*out_size = sd.size;
 	return sd.ret;
 }
