Index: uspace/lib/usb/src/host/device_keeper.c
===================================================================
--- uspace/lib/usb/src/host/device_keeper.c	(revision 5876d36dd0e9c757ce7fe9ac68bc8c368d9d6e68)
+++ uspace/lib/usb/src/host/device_keeper.c	(revision fb8927d7e12bfafe2cd8b4ef6d343bffe2f5bf54)
@@ -58,6 +58,10 @@
 		instance->devices[i].toggle_status[0] = 0;
 		instance->devices[i].toggle_status[1] = 0;
-	}
-}
+		list_initialize(&instance->devices[i].endpoints);
+	}
+}
+/*----------------------------------------------------------------------------*/
+void usb_device_keeper_add_ep(
+    usb_device_keeper_t *instance, usb_address_t address, link_t *ep);
 /*----------------------------------------------------------------------------*/
 /** Attempt to obtain address 0, blocks.
@@ -66,6 +70,6 @@
  * @param[in] speed Speed of the device requesting default address.
  */
-void usb_device_keeper_reserve_default_address(usb_device_keeper_t *instance,
-    usb_speed_t speed)
+void usb_device_keeper_reserve_default_address(
+    usb_device_keeper_t *instance, usb_speed_t speed)
 {
 	assert(instance);
@@ -101,6 +105,6 @@
  * Really ugly one.
  */
-void usb_device_keeper_reset_if_need(usb_device_keeper_t *instance,
-    usb_target_t target, const uint8_t *data)
+void usb_device_keeper_reset_if_need(
+    usb_device_keeper_t *instance, usb_target_t target, const uint8_t *data)
 {
 	assert(instance);
@@ -208,6 +212,6 @@
  * @return Free address, or error code.
  */
-usb_address_t device_keeper_get_free_address(usb_device_keeper_t *instance,
-    usb_speed_t speed)
+usb_address_t device_keeper_get_free_address(
+    usb_device_keeper_t *instance, usb_speed_t speed)
 {
 	assert(instance);
@@ -259,6 +263,6 @@
  * @param[in] address Device address
  */
-void usb_device_keeper_release(usb_device_keeper_t *instance,
-    usb_address_t address)
+void usb_device_keeper_release(
+    usb_device_keeper_t *instance, usb_address_t address)
 {
 	assert(instance);
@@ -278,6 +282,6 @@
  * @return USB Address, or error code.
  */
-usb_address_t usb_device_keeper_find(usb_device_keeper_t *instance,
-    devman_handle_t handle)
+usb_address_t usb_device_keeper_find(
+    usb_device_keeper_t *instance, devman_handle_t handle)
 {
 	assert(instance);
@@ -301,6 +305,6 @@
  * @return USB speed.
  */
-usb_speed_t usb_device_keeper_get_speed(usb_device_keeper_t *instance,
-    usb_address_t address)
+usb_speed_t usb_device_keeper_get_speed(
+    usb_device_keeper_t *instance, usb_address_t address)
 {
 	assert(instance);
@@ -310,6 +314,6 @@
 }
 /*----------------------------------------------------------------------------*/
-void usb_device_keeper_use_control(usb_device_keeper_t *instance,
-    usb_target_t target)
+void usb_device_keeper_use_control(
+    usb_device_keeper_t *instance, usb_target_t target)
 {
 	assert(instance);
@@ -323,6 +327,6 @@
 }
 /*----------------------------------------------------------------------------*/
-void usb_device_keeper_release_control(usb_device_keeper_t *instance,
-    usb_target_t target)
+void usb_device_keeper_release_control(
+    usb_device_keeper_t *instance, usb_target_t target)
 {
 	assert(instance);
