Index: .bzrignore
===================================================================
--- .bzrignore	(revision fe2333da175feb0b278049830a4be0cfc3e3baeb)
+++ .bzrignore	(revision 0a5a9509a7d4cad54e1a7838593a26fb5891ed93)
@@ -68,46 +68,14 @@
 ./uspace/dist/cfg/net/lo
 ./uspace/dist/cfg/net/ne2k
-./uspace/dist/drv/isa/
-./uspace/dist/drv/ns8250/
-./uspace/dist/drv/pciintel/
-./uspace/dist/drv/root/
-./uspace/dist/drv/rootia32/
-./uspace/dist/drv/uhci/
-./uspace/dist/drv/usbhub/
-./uspace/dist/drv/usbkbd/
-./uspace/dist/drv/vhc/
-./uspace/dist/srv/arp
-./uspace/dist/srv/ata_bd
-./uspace/dist/srv/char_ms
-./uspace/dist/srv/clip
-./uspace/dist/srv/console
-./uspace/dist/srv/devfs
-./uspace/dist/srv/devman
-./uspace/dist/srv/dp8390
-./uspace/dist/srv/eth
-./uspace/dist/srv/fat
-./uspace/dist/srv/fb
-./uspace/dist/srv/file_bd
-./uspace/dist/srv/g_part
-./uspace/dist/srv/i8042
-./uspace/dist/srv/icmp
-./uspace/dist/srv/ip
-./uspace/dist/srv/kbd
-./uspace/dist/srv/lo
-./uspace/dist/srv/mbr_part
-./uspace/dist/srv/net
-./uspace/dist/srv/netstart
-./uspace/dist/srv/nildummy
-./uspace/dist/srv/pci
-./uspace/dist/srv/taskmon
-./uspace/dist/srv/tcp
-./uspace/dist/srv/tmpfs
-./uspace/dist/srv/udp
-./uspace/dist/srv/vhcd
+./uspace/dist/drv/*
+./uspace/dist/srv/*
 ./uspace/drv/root/root
 ./uspace/drv/isa/isa
 ./uspace/drv/ns8250/ns8250
 ./uspace/drv/pciintel/pciintel
-./uspace/drv/rootia32/rootia32
+./uspace/drv/rootpc/rootpc
+./uspace/drv/rootvirt/rootvirt
+./uspace/drv/test1/test1
+./uspace/drv/test2/test2
 ./uspace/drv/uhci/uhci
 ./uspace/drv/usbhub/usbhub
Index: uspace/drv/root/root.c
===================================================================
--- uspace/drv/root/root.c	(revision fe2333da175feb0b278049830a4be0cfc3e3baeb)
+++ uspace/drv/root/root.c	(revision 0a5a9509a7d4cad54e1a7838593a26fb5891ed93)
@@ -109,58 +109,4 @@
 }
 
-/** Create virtual USB host controller device.
- * Note that the virtual HC is actually device and driver in one
- * task.
- *
- * @param parent Parent device.
- * @return Error code.
- */
-static int add_virtual_usb_host_controller(device_t *parent)
-{
-	printf(NAME ": adding virtual host contoller.\n");
-
-	int rc;
-	device_t *vhc = NULL;
-	match_id_t *match_id = NULL;
-
-	vhc = create_device();
-	if (vhc == NULL) {
-		rc = ENOMEM;
-		goto failure;
-	}
-
-	vhc->name = "vhc";
-	printf(NAME ": the new device's name is %s.\n", vhc->name);
-
-	/* Initialize match id list. */
-	match_id = create_match_id();
-	if (match_id == NULL) {
-		rc = ENOMEM;
-		goto failure;
-	}
-
-	match_id->id = "usb&hc=vhc";
-	match_id->score = 100;
-	add_match_id(&vhc->match_ids, match_id);
-
-	/* Register child device. */
-	rc = child_device_register(vhc, parent);
-	if (rc != EOK)
-		goto failure;
-
-	return EOK;
-
-failure:
-	if (match_id != NULL)
-		match_id->id = NULL;
-
-	if (vhc != NULL) {
-		vhc->name = NULL;
-		delete_device(vhc);
-	}
-
-	return rc;
-}
-
 /** Get the root device.
  *
@@ -185,10 +131,4 @@
 		printf(NAME ": failed to add child device for platform.\n");
 	
-	/* Register virtual USB host controller. */
-	int rc = add_virtual_usb_host_controller(dev);
-	if (EOK != rc) {
-		printf(NAME ": failed to add child device - virtual USB HC.\n");
-	}
-
 	return res;
 }
Index: uspace/drv/rootvirt/devices.def
===================================================================
--- uspace/drv/rootvirt/devices.def	(revision fe2333da175feb0b278049830a4be0cfc3e3baeb)
+++ uspace/drv/rootvirt/devices.def	(revision 0a5a9509a7d4cad54e1a7838593a26fb5891ed93)
@@ -18,2 +18,7 @@
 },
 #endif
+/* Virtual USB host controller. */
+{
+	.name = "usbhc",
+	.match_id = "usb&hc=vhc"
+},
Index: uspace/lib/usb/src/usbdrv.c
===================================================================
--- uspace/lib/usb/src/usbdrv.c	(revision fe2333da175feb0b278049830a4be0cfc3e3baeb)
+++ uspace/lib/usb/src/usbdrv.c	(revision 0a5a9509a7d4cad54e1a7838593a26fb5891ed93)
@@ -71,5 +71,5 @@
 	devman_handle_t handle;
 
-	rc = devman_device_get_handle("/vhc", &handle, 0);
+	rc = devman_device_get_handle("/virt/usbhc", &handle, 0);
 	if (rc != EOK) {
 		return rc;
Index: uspace/lib/usbvirt/main.c
===================================================================
--- uspace/lib/usbvirt/main.c	(revision fe2333da175feb0b278049830a4be0cfc3e3baeb)
+++ uspace/lib/usbvirt/main.c	(revision 0a5a9509a7d4cad54e1a7838593a26fb5891ed93)
@@ -183,7 +183,7 @@
 }
 
-/** Create necessary phones for comunication with virtual HCD.
+/** Create necessary phones for communication with virtual HCD.
  * This function wraps following calls:
- * -# open <code>/dev/devices/\\vhc for reading
+ * -# open <code>/dev/devices/\\virt\\usbhc for reading
  * -# access phone of file opened in previous step
  * -# create callback through just opened phone
@@ -193,8 +193,6 @@
  * @warning This function is wrapper for several actions and therefore
  * it is not possible - in case of error - to determine at which point
- * error occured.
- *
- * @param hcd_path HCD identification under devfs
- *     (without <code>/dev/usb/</code>).
+ * error occurred.
+ *
  * @param dev Device to connect.
  * @return EOK on success or error code from errno.h.
@@ -207,5 +205,5 @@
 	}
 	
-	const char *vhc_path = "/vhc";
+	const char *vhc_path = "/virt/usbhc";
 	int rc;
 	devman_handle_t handle;
