Index: uspace/lib/c/generic/devman.c
===================================================================
--- uspace/lib/c/generic/devman.c	(revision c47e1a8fb8e2a2556518fd57f186595422ca4484)
+++ uspace/lib/c/generic/devman.c	(revision a32defadb7bdc01eed96b5df1ab80f7b95365eb1)
@@ -180,4 +180,28 @@
 }
 
+int devman_add_device_to_class(device_handle_t dev_handle, const char *class_name)
+{
+	int phone = devman_get_phone(DEVMAN_DRIVER, IPC_FLAG_BLOCKING);
+	
+	if (phone < 0)
+		return phone;
+	
+	async_serialize_start();
+	ipc_call_t answer;
+	aid_t req = async_send_1(phone, DEVMAN_ADD_DEVICE_TO_CLASS, dev_handle, &answer);
+	
+	ipcarg_t retval = async_data_write_start(phone, class_name, str_size(class_name));
+	if (retval != EOK) {
+		async_wait_for(req, NULL);
+		async_serialize_end();
+		return retval;
+	}
+	
+	async_wait_for(req, &retval);
+	async_serialize_end();
+	
+	return retval;	
+}
+
 void devman_hangup_phone(devman_interface_t iface)
 {
Index: uspace/lib/c/include/devman.h
===================================================================
--- uspace/lib/c/include/devman.h	(revision c47e1a8fb8e2a2556518fd57f186595422ca4484)
+++ uspace/lib/c/include/devman.h	(revision a32defadb7bdc01eed96b5df1ab80f7b95365eb1)
@@ -53,4 +53,5 @@
 int devman_device_get_handle(const char *pathname, device_handle_t *handle, unsigned int flags);
 
+int devman_add_device_to_class(device_handle_t dev_handle, const char *class_name);
 
 #endif
Index: uspace/lib/c/include/ipc/devman.h
===================================================================
--- uspace/lib/c/include/ipc/devman.h	(revision c47e1a8fb8e2a2556518fd57f186595422ca4484)
+++ uspace/lib/c/include/ipc/devman.h	(revision a32defadb7bdc01eed96b5df1ab80f7b95365eb1)
@@ -129,5 +129,6 @@
 	DEVMAN_DRIVER_REGISTER = IPC_FIRST_USER_METHOD,
 	DEVMAN_ADD_CHILD_DEVICE,
-	DEVMAN_ADD_MATCH_ID
+	DEVMAN_ADD_MATCH_ID,
+	DEVMAN_ADD_DEVICE_TO_CLASS
 
 } driver_to_devman_t;
