Index: uspace/drv/rootpc/rootpc.c
===================================================================
--- uspace/drv/rootpc/rootpc.c	(revision 68414f4a1f1b548a47a6b4525bd18dfbed67df1d)
+++ uspace/drv/rootpc/rootpc.c	(revision 97a62fec5ae8981a95bc5036a2fda4084d6bea01)
@@ -125,11 +125,9 @@
 	
 	/* Create new device. */
-	fnode = create_function();
+	fnode = ddf_fun_create(dev, fun_inner, name);
 	if (fnode == NULL)
 		goto failure;
 	
-	fnode->name = name;
 	fnode->driver_data = fun;
-	fnode->ftype = fun_inner;
 	
 	/* Initialize match id list */
@@ -146,6 +144,8 @@
 	
 	/* Register function. */
-	if (register_function(fnode, dev) != EOK)
+	if (ddf_fun_bind(fnode) != EOK) {
+		printf(NAME ": error binding function %s.\n", name);
 		goto failure;
+	}
 	printf(NAME ": registered function handle = %u\n", fnode->handle);
 	
@@ -156,8 +156,6 @@
 		match_id->id = NULL;
 	
-	if (fnode != NULL) {
-		fnode->name = NULL;
-		delete_function(fnode);
-	}
+	if (fnode != NULL)
+		ddf_fun_destroy(fnode);
 	
 	printf(NAME ": failed to add function '%s'.\n", name);
