Index: uspace/lib/usbdev/src/devdrv.c
===================================================================
--- uspace/lib/usbdev/src/devdrv.c	(revision 5b401b9e8b5336b93736031665849df502c4680b)
+++ uspace/lib/usbdev/src/devdrv.c	(revision e2dfa86733b86ade5cb6b53182cd0ac27f4c5125)
@@ -68,14 +68,6 @@
 	/** Alternative interfaces. */
 	usb_alternate_interfaces_t alternate_interfaces;
-
 	/** Some useful descriptors for USB device. */
-	struct {
-		/** Standard device descriptor. */
-		usb_standard_device_descriptor_t device;
-		/** Full configuration descriptor of current configuration. */
-		const uint8_t *configuration;
-		size_t configuration_size;
-	} descriptors;
-
+	usb_device_descriptors_t descriptors;
 	/** Generic DDF device backing this one. DO NOT TOUCH! */
 	ddf_dev_t *ddf_dev;
@@ -160,5 +152,5 @@
 {
 	assert(usb_dev);
-	assert(usb_dev->descriptors.configuration == NULL);
+	assert(usb_dev->descriptors.full_config == NULL);
 
 	/* It is worth to start a long transfer. */
@@ -175,6 +167,6 @@
 	rc = usb_request_get_full_configuration_descriptor_alloc(
 	    &usb_dev->ctrl_pipe, 0,
-	    (void **) &usb_dev->descriptors.configuration,
-	    &usb_dev->descriptors.configuration_size);
+	    (void**)&usb_dev->descriptors.full_config,
+	    &usb_dev->descriptors.full_config_size);
 
 leave:
@@ -191,7 +183,7 @@
 {
 	assert(usb_dev);
-	free(usb_dev->descriptors.configuration);
-	usb_dev->descriptors.configuration = NULL;
-	usb_dev->descriptors.configuration_size = 0;
+	free(usb_dev->descriptors.full_config);
+	usb_dev->descriptors.full_config = NULL;
+	usb_dev->descriptors.full_config_size = 0;
 }
 
@@ -219,5 +211,5 @@
 {
 	assert(usb_dev);
-	assert(usb_dev->descriptors.configuration);
+	assert(usb_dev->descriptors.full_config);
 	assert(usb_dev->pipes == NULL);
 	assert(usb_dev->pipes_count == 0);
@@ -244,6 +236,6 @@
 	/* Find the mapping from configuration descriptor. */
 	int rc = usb_pipe_initialize_from_configuration(pipes, pipe_count,
-	    usb_dev->descriptors.configuration,
-	    usb_dev->descriptors.configuration_size, &usb_dev->wire);
+	    usb_dev->descriptors.full_config,
+	    usb_dev->descriptors.full_config_size, &usb_dev->wire);
 	if (rc != EOK) {
 		free(pipes);
@@ -338,18 +330,8 @@
 }
 
-const usb_standard_device_descriptor_t *
-usb_device_get_device_descriptor(usb_device_t *usb_dev)
-{
-	assert(usb_dev);
-	return &usb_dev->descriptors.device;
-}
-
-const void * usb_device_get_configuration_descriptor(
-    usb_device_t *usb_dev, size_t *size)
-{
-	assert(usb_dev);
-	if (size)
-		*size = usb_dev->descriptors.configuration_size;
-	return usb_dev->descriptors.configuration;
+const usb_device_descriptors_t *usb_device_descriptors(usb_device_t *usb_dev)
+{
+	assert(usb_dev);
+	return &usb_dev->descriptors;
 }
 
@@ -430,5 +412,6 @@
 	usb_dev->ddf_dev = ddf_dev;
 	usb_dev->driver_data = NULL;
-	usb_dev->descriptors.configuration = NULL;
+	usb_dev->descriptors.full_config = NULL;
+	usb_dev->descriptors.full_config_size = 0;
 	usb_dev->pipes_count = 0;
 	usb_dev->pipes = NULL;
@@ -500,6 +483,6 @@
 	 * controlling a device. */
 	rc = usb_alternate_interfaces_init(&usb_dev->alternate_interfaces,
-	    usb_dev->descriptors.configuration,
-	    usb_dev->descriptors.configuration_size, usb_dev->interface_no);
+	    usb_dev->descriptors.full_config,
+	    usb_dev->descriptors.full_config_size, usb_dev->interface_no);
 
 	if (endpoints) {
