Index: uspace/drv/ns8250/ns8250.c
===================================================================
--- uspace/drv/ns8250/ns8250.c	(revision ffa2c8ef45390c01f3f4be4827bcd41c32f7951c)
+++ uspace/drv/ns8250/ns8250.c	(revision 8b1e15ac9100f7b9da56e372d2f441ba44db6fcc)
@@ -1,3 +1,3 @@
-/*
+/*                        
  * Copyright (c) 2010 Lenka Trochtova
  * All rights reserved.
@@ -178,8 +178,8 @@
  *			error number otherwise.
  */
-static int ns8250_read(device_t *dev, char *buf, size_t count)
+static int ns8250_read(function_t *fun, char *buf, size_t count)
 {
 	int ret = EOK;
-	ns8250_dev_data_t *data = (ns8250_dev_data_t *) dev->driver_data;
+	ns8250_dev_data_t *data = (ns8250_dev_data_t *) fun->dev->driver_data;
 	
 	fibril_mutex_lock(&data->mutex);
@@ -212,7 +212,7 @@
  * @return		Zero on success.
  */
-static int ns8250_write(device_t *dev, char *buf, size_t count) 
-{
-	ns8250_dev_data_t *data = (ns8250_dev_data_t *) dev->driver_data;
+static int ns8250_write(function_t *fun, char *buf, size_t count)
+{
+	ns8250_dev_data_t *data = (ns8250_dev_data_t *) fun->dev->driver_data;
 	size_t idx;
 	
@@ -719,4 +719,6 @@
 static int ns8250_add_device(device_t *dev)
 {
+	function_t *fun;
+
 	printf(NAME ": ns8250_add_device %s (handle = %d)\n",
 	    dev->name, (int) dev->handle);
@@ -756,9 +758,14 @@
 		return res;
 	}
+
+	fun = create_function();
+	fun->ftype = fun_exposed;
+	fun->name = "a";
 	
 	/* Set device operations. */
-	dev->ops = &ns8250_dev_ops;
-	
-	add_device_to_class(dev, "serial");
+	fun->ops = &ns8250_dev_ops;
+	register_function(fun, dev);
+	
+	add_function_to_class(fun, "serial");
 	
 	printf(NAME ": the %s device has been successfully initialized.\n",
@@ -775,7 +782,7 @@
  * @param dev		The device.
  */
-static int ns8250_open(device_t *dev)
-{
-	ns8250_dev_data_t *data = (ns8250_dev_data_t *) dev->driver_data;
+static int ns8250_open(function_t *fun)
+{
+	ns8250_dev_data_t *data = (ns8250_dev_data_t *) fun->dev->driver_data;
 	int res;
 	
@@ -799,7 +806,7 @@
  * @param dev		The device.
  */
-static void ns8250_close(device_t *dev)
-{
-	ns8250_dev_data_t *data = (ns8250_dev_data_t *) dev->driver_data;
+static void ns8250_close(function_t *fun)
+{
+	ns8250_dev_data_t *data = (ns8250_dev_data_t *) fun->dev->driver_data;
 	
 	fibril_mutex_lock(&data->mutex);
@@ -877,5 +884,5 @@
  * Configure the parameters of the serial communication.
  */
-static void ns8250_default_handler(device_t *dev, ipc_callid_t callid,
+static void ns8250_default_handler(function_t *fun, ipc_callid_t callid,
     ipc_call_t *call)
 {
@@ -886,5 +893,5 @@
 	switch (method) {
 	case SERIAL_GET_COM_PROPS:
-		ns8250_get_props(dev, &baud_rate, &parity, &word_length,
+		ns8250_get_props(fun->dev, &baud_rate, &parity, &word_length,
 		    &stop_bits);
 		async_answer_4(callid, EOK, baud_rate, parity, word_length,
@@ -897,5 +904,5 @@
 		word_length = IPC_GET_ARG3(*call);
 		stop_bits = IPC_GET_ARG4(*call);
-		ret = ns8250_set_props(dev, baud_rate, parity, word_length,
+		ret = ns8250_set_props(fun->dev, baud_rate, parity, word_length,
 		    stop_bits);
 		async_answer_0(callid, ret);
