Index: uspace/app/init/init.c
===================================================================
--- uspace/app/init/init.c	(revision 56cb9bd7d68d8fd78536ef420007013f70c97153)
+++ uspace/app/init/init.c	(revision efedee77fb501f874d3f1d14038169bcca374afc)
@@ -277,4 +277,5 @@
 	srv_start("/srv/adb_ms");
 	srv_start("/srv/char_ms");
+	srv_start("/srv/s3c24ts");
 	
 	spawn("/srv/fb");
Index: uspace/app/netecho/Makefile
===================================================================
--- uspace/app/netecho/Makefile	(revision 56cb9bd7d68d8fd78536ef420007013f70c97153)
+++ uspace/app/netecho/Makefile	(revision efedee77fb501f874d3f1d14038169bcca374afc)
@@ -29,6 +29,6 @@
 
 USPACE_PREFIX = ../..
-LIBS = $(LIBSOCKET_PREFIX)/libsocket.a
-EXTRA_CFLAGS = -I$(LIBSOCKET_PREFIX)/include
+LIBS = 
+EXTRA_CFLAGS = 
 BINARY = netecho
 
Index: uspace/app/netecho/netecho.c
===================================================================
--- uspace/app/netecho/netecho.c	(revision 56cb9bd7d68d8fd78536ef420007013f70c97153)
+++ uspace/app/netecho/netecho.c	(revision efedee77fb501f874d3f1d14038169bcca374afc)
@@ -41,11 +41,11 @@
 #include <task.h>
 #include <arg_parse.h>
-
-#include <in.h>
-#include <in6.h>
-#include <inet.h>
-#include <socket.h>
-#include <net_err.h>
-#include <socket_parse.h>
+#include <err.h>
+
+#include <net/in.h>
+#include <net/in6.h>
+#include <net/inet.h>
+#include <net/socket.h>
+#include <net/socket_parse.h>
 
 #include "print_error.h"
Index: uspace/app/netecho/print_error.c
===================================================================
--- uspace/app/netecho/print_error.c	(revision 56cb9bd7d68d8fd78536ef420007013f70c97153)
+++ uspace/app/netecho/print_error.c	(revision efedee77fb501f874d3f1d14038169bcca374afc)
@@ -36,7 +36,7 @@
 
 #include <stdio.h>
+#include <errno.h>
 
-#include <icmp_codes.h>
-#include <socket_errno.h>
+#include <net/icmp_codes.h>
 
 #include "print_error.h"
Index: uspace/app/nettest1/Makefile
===================================================================
--- uspace/app/nettest1/Makefile	(revision 56cb9bd7d68d8fd78536ef420007013f70c97153)
+++ uspace/app/nettest1/Makefile	(revision efedee77fb501f874d3f1d14038169bcca374afc)
@@ -29,6 +29,6 @@
 
 USPACE_PREFIX = ../..
-LIBS = $(LIBSOCKET_PREFIX)/libsocket.a
-EXTRA_CFLAGS = -I$(LIBSOCKET_PREFIX)/include
+LIBS = 
+EXTRA_CFLAGS = 
 BINARY = nettest1
 
Index: uspace/app/nettest1/nettest.c
===================================================================
--- uspace/app/nettest1/nettest.c	(revision 56cb9bd7d68d8fd78536ef420007013f70c97153)
+++ uspace/app/nettest1/nettest.c	(revision efedee77fb501f874d3f1d14038169bcca374afc)
@@ -36,7 +36,7 @@
 
 #include <stdio.h>
-
-#include <socket.h>
-#include <net_err.h>
+#include <err.h>
+
+#include <net/socket.h>
 
 #include "nettest.h"
Index: uspace/app/nettest1/nettest.h
===================================================================
--- uspace/app/nettest1/nettest.h	(revision 56cb9bd7d68d8fd78536ef420007013f70c97153)
+++ uspace/app/nettest1/nettest.h	(revision efedee77fb501f874d3f1d14038169bcca374afc)
@@ -38,5 +38,5 @@
 #define __NET_TEST__
 
-#include <socket.h>
+#include <net/socket.h>
 
 /** Prints a mark.
Index: uspace/app/nettest1/nettest1.c
===================================================================
--- uspace/app/nettest1/nettest1.c	(revision 56cb9bd7d68d8fd78536ef420007013f70c97153)
+++ uspace/app/nettest1/nettest1.c	(revision efedee77fb501f874d3f1d14038169bcca374afc)
@@ -41,11 +41,11 @@
 #include <time.h>
 #include <arg_parse.h>
-
-#include <in.h>
-#include <in6.h>
-#include <inet.h>
-#include <socket.h>
-#include <net_err.h>
-#include <socket_parse.h>
+#include <err.h>
+
+#include <net/in.h>
+#include <net/in6.h>
+#include <net/inet.h>
+#include <net/socket.h>
+#include <net/socket_parse.h>
 
 #include "nettest.h"
Index: uspace/app/nettest2/Makefile
===================================================================
--- uspace/app/nettest2/Makefile	(revision 56cb9bd7d68d8fd78536ef420007013f70c97153)
+++ uspace/app/nettest2/Makefile	(revision efedee77fb501f874d3f1d14038169bcca374afc)
@@ -29,6 +29,6 @@
 
 USPACE_PREFIX = ../..
-LIBS = $(LIBSOCKET_PREFIX)/libsocket.a
-EXTRA_CFLAGS = -I$(LIBSOCKET_PREFIX)/include
+LIBS = 
+EXTRA_CFLAGS = 
 BINARY = nettest2
 
Index: uspace/app/nettest2/nettest2.c
===================================================================
--- uspace/app/nettest2/nettest2.c	(revision 56cb9bd7d68d8fd78536ef420007013f70c97153)
+++ uspace/app/nettest2/nettest2.c	(revision efedee77fb501f874d3f1d14038169bcca374afc)
@@ -41,11 +41,11 @@
 #include <time.h>
 #include <arg_parse.h>
-
-#include <in.h>
-#include <in6.h>
-#include <inet.h>
-#include <socket.h>
-#include <net_err.h>
-#include <socket_parse.h>
+#include <err.h>
+
+#include <net/in.h>
+#include <net/in6.h>
+#include <net/inet.h>
+#include <net/socket.h>
+#include <net/socket_parse.h>
 
 #include "nettest.h"
Index: uspace/app/ping/Makefile
===================================================================
--- uspace/app/ping/Makefile	(revision 56cb9bd7d68d8fd78536ef420007013f70c97153)
+++ uspace/app/ping/Makefile	(revision efedee77fb501f874d3f1d14038169bcca374afc)
@@ -29,6 +29,6 @@
 
 USPACE_PREFIX = ../..
-LIBS = $(LIBSOCKET_PREFIX)/libsocket.a
-EXTRA_CFLAGS = -I$(LIBSOCKET_PREFIX)/include
+LIBS = 
+EXTRA_CFLAGS = 
 BINARY = ping
 
Index: uspace/app/ping/ping.c
===================================================================
--- uspace/app/ping/ping.c	(revision 56cb9bd7d68d8fd78536ef420007013f70c97153)
+++ uspace/app/ping/ping.c	(revision efedee77fb501f874d3f1d14038169bcca374afc)
@@ -42,13 +42,13 @@
 #include <ipc/services.h>
 #include <str_error.h>
+#include <errno.h>
 #include <arg_parse.h>
 
-#include <icmp_api.h>
-#include <in.h>
-#include <in6.h>
-#include <inet.h>
-#include <ip_codes.h>
-#include <socket_errno.h>
-#include <socket_parse.h>
+#include <net/icmp_api.h>
+#include <net/in.h>
+#include <net/in6.h>
+#include <net/inet.h>
+#include <net/socket_parse.h>
+#include <net/ip_codes.h>
 
 #include "print_error.h"
Index: uspace/app/test_serial/Makefile
===================================================================
--- uspace/app/test_serial/Makefile	(revision efedee77fb501f874d3f1d14038169bcca374afc)
+++ uspace/app/test_serial/Makefile	(revision efedee77fb501f874d3f1d14038169bcca374afc)
@@ -0,0 +1,36 @@
+#
+# Copyright (c) 2005 Martin Decky
+# Copyright (c) 2007 Jakub Jermar
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+#
+# - Redistributions of source code must retain the above copyright
+#   notice, this list of conditions and the following disclaimer.
+# - Redistributions in binary form must reproduce the above copyright
+#   notice, this list of conditions and the following disclaimer in the
+#   documentation and/or other materials provided with the distribution.
+# - The name of the author may not be used to endorse or promote products
+#   derived from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+
+USPACE_PREFIX = ../..
+BINARY = test_serial
+
+SOURCES = \
+	test_serial.c
+
+include $(USPACE_PREFIX)/Makefile.common
Index: uspace/app/test_serial/test_serial.c
===================================================================
--- uspace/app/test_serial/test_serial.c	(revision efedee77fb501f874d3f1d14038169bcca374afc)
+++ uspace/app/test_serial/test_serial.c	(revision efedee77fb501f874d3f1d14038169bcca374afc)
@@ -0,0 +1,166 @@
+/*
+ * Copyright (c) 2009 Lenka Trochtova
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * - Redistributions of source code must retain the above copyright
+ *   notice, this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright
+ *   notice, this list of conditions and the following disclaimer in the
+ *   documentation and/or other materials provided with the distribution.
+ * - The name of the author may not be used to endorse or promote products
+ *   derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/** @addtogroup test_serial
+ * @brief	test the serial port driver - read from the serial port
+ * @{
+ */
+/**
+ * @file
+ */
+
+#include <errno.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include <ipc/ipc.h>
+#include <sys/types.h>
+#include <async.h>
+#include <ipc/services.h>
+#include <ipc/devman.h>
+#include <devman.h>
+#include <device/char.h>
+#include <str.h>
+#include <ipc/serial_ctl.h>
+
+#define NAME 		"test serial"
+
+
+static void print_usage(void)
+{
+	printf("Usage: \n test_serial count \n where count is the number of "
+	    "characters to be read\n");
+}
+
+int main(int argc, char *argv[])
+{
+	if (argc != 2) {
+		printf(NAME ": incorrect number of arguments.\n");
+		print_usage();
+		return 0;
+	}
+	
+	long int cnt = strtol(argv[1], NULL, 10);
+	
+	int res;
+	res = devman_get_phone(DEVMAN_CLIENT, IPC_FLAG_BLOCKING);
+	device_handle_t handle;
+	
+	res = devman_device_get_handle("/hw/pci0/00:01.0/com1", &handle,
+	    IPC_FLAG_BLOCKING);
+	if (EOK != res) {
+		printf(NAME ": could not get the device handle, errno = %d.\n",
+		    -res);
+		return 1;
+	}
+	
+	printf(NAME ": trying to read %d characters from device with handle "
+	    "%d.\n", cnt, handle);
+	
+	int phone = devman_device_connect(handle, IPC_FLAG_BLOCKING);
+	if (0 > phone) {
+		printf(NAME ": could not connect to the device, errno = %d.\n",
+		    -res);
+		devman_hangup_phone(DEVMAN_CLIENT);
+		return 2;
+	}
+	
+	char *buf = (char *) malloc(cnt + 1);
+	if (NULL == buf) {
+		printf(NAME ": failed to allocate the input buffer\n");
+		ipc_hangup(phone);
+		devman_hangup_phone(DEVMAN_CLIENT);
+		return 3;
+	}
+	
+	ipcarg_t old_baud, old_par, old_stop, old_word_size;
+	
+	res = ipc_call_sync_0_4(phone, SERIAL_GET_COM_PROPS, &old_baud,
+	    &old_par, &old_word_size, &old_stop);
+	if (EOK != res) {
+		printf(NAME ": failed to get old communication parameters, "
+		    "errno = %d.\n", -res);
+		devman_hangup_phone(DEVMAN_CLIENT);
+		ipc_hangup(phone);
+		free(buf);
+		return 4;
+	}
+	
+	res = ipc_call_sync_4_0(phone, SERIAL_SET_COM_PROPS, 1200,
+	    SERIAL_NO_PARITY, 8, 1);
+	if (EOK != res) {
+		printf(NAME ": failed to set communication parameters, errno = "
+		    "%d.\n", -res);
+		devman_hangup_phone(DEVMAN_CLIENT);
+		ipc_hangup(phone);
+		free(buf);
+		return 4;
+	}
+	
+	int total = 0;
+	int read = 0;
+	while (total < cnt) {
+		read = read_dev(phone, buf, cnt - total);
+		if (0 > read) {
+			printf(NAME ": failed read from device, errno = %d.\n",
+			    -read);
+			ipc_call_sync_4_0(phone, SERIAL_SET_COM_PROPS, old_baud,
+			    old_par, old_word_size, old_stop);
+			ipc_hangup(phone);
+			devman_hangup_phone(DEVMAN_CLIENT);
+			free(buf);
+			return 5;
+		}
+		total += read;
+		if (read > 0) {
+			buf[read] = 0;
+			printf(buf);
+			/*
+			 * Write data back to the device to test the opposite
+			 * direction of data transfer.
+			 */
+			write_dev(phone, buf, read);
+		} else {
+			usleep(100000);
+		}	
+	}
+	
+	const char *the_end = "\n---------\nTHE END\n---------\n";
+	write_dev(phone, (void *)the_end, str_size(the_end));
+	
+	/* restore original communication settings */
+	ipc_call_sync_4_0(phone, SERIAL_SET_COM_PROPS, old_baud, old_par,
+	    old_word_size, old_stop);
+	devman_hangup_phone(DEVMAN_CLIENT);
+	ipc_hangup(phone);
+	free(buf);
+	
+	return 0;
+}
+
+/** @}
+ */
Index: uspace/app/trace/syscalls.c
===================================================================
--- uspace/app/trace/syscalls.c	(revision 56cb9bd7d68d8fd78536ef420007013f70c97153)
+++ uspace/app/trace/syscalls.c	(revision efedee77fb501f874d3f1d14038169bcca374afc)
@@ -73,5 +73,5 @@
     [SYS_PHYSMEM_MAP] = { "physmem_map",		4,	V_ERRNO },
     [SYS_IOSPACE_ENABLE] = { "iospace_enable",		1,	V_ERRNO },
-    [SYS_PREEMPT_CONTROL] = { "preempt_control",	1,	V_ERRNO },
+    [SYS_INTERRUPT_ENABLE] = { "interrupt_enable",	2,	V_ERRNO },
 
     [SYS_SYSINFO_GET_TAG] = { "sysinfo_get_tag",		2,	V_INTEGER },
