Index: uspace/app/devctl/devctl.c
===================================================================
--- uspace/app/devctl/devctl.c	(revision 1db5669ba6b4304571c0fad33329fc19b51b9f26)
+++ uspace/app/devctl/devctl.c	(revision adb252c05c31f972191e419e5f45bbb4c5e6fa17)
@@ -35,4 +35,5 @@
 #include <devman.h>
 #include <errno.h>
+#include <stdbool.h>
 #include <stdio.h>
 #include <stdlib.h>
@@ -44,6 +45,7 @@
 #define MAX_NAME_LENGTH 1024
 
-char name[MAX_NAME_LENGTH];
-char drv_name[MAX_NAME_LENGTH];
+static char name[MAX_NAME_LENGTH];
+static char drv_name[MAX_NAME_LENGTH];
+static bool verbose = false;
 
 static const char *drv_state_str(driver_state_t state)
@@ -73,4 +75,5 @@
 	devman_handle_t *cfuns;
 	size_t count, i;
+	unsigned int score;
 	int rc;
 	int j;
@@ -94,4 +97,18 @@
 	else
 		printf("%s : %s\n", name, drv_name);
+
+	if (verbose) {
+		for (i = 0; true; i++) {
+			rc = devman_fun_get_match_id(funh, i, name, MAX_NAME_LENGTH,
+			    &score);
+			if (rc != EOK)
+				break;
+
+			for (j = 0; j < lvl; j++)
+				printf("    ");
+
+			printf("    %u %s\n", score, name);
+		}
+	}
 
 	rc = devman_fun_get_child(funh, &devh);
@@ -226,4 +243,5 @@
 	driver_state_t state;
 	const char *sstate;
+	unsigned int score;
 	size_t ndevs;
 	size_t i;
@@ -252,4 +270,5 @@
 	printf("Driver: %s\n", drv_name);
 	printf("State: %s\n", sstate);
+
 	printf("Attached devices:\n");
 
@@ -263,4 +282,15 @@
 			goto error;
 		printf("\t%s\n", name);
+	}
+
+	printf("Match IDs:\n");
+
+	for (i = 0; true; i++) {
+		rc = devman_driver_get_match_id(drvh, i, name, MAX_NAME_LENGTH,
+		    &score);
+		if (rc != EOK)
+			break;
+
+		printf("\t%u %s\n", score, name);
 	}
 
@@ -306,5 +336,14 @@
 	int rc;
 
-	if (argc == 1) {
+	if (argc == 1 || argv[1][0] == '-') {
+		if (argc > 1) {
+			if (str_cmp(argv[1], "-v") == 0) {
+				verbose = true;
+			} else {
+				printf(NAME ": Invalid argument '%s'\n", argv[1]);
+				print_syntax();
+				return 1;
+			}
+		}
 		rc = fun_tree_print();
 		if (rc != EOK)
