Index: uspace/Makefile
===================================================================
--- uspace/Makefile	(revision 39e8406404efea86e341847c0720d5d65bed7959)
+++ uspace/Makefile	(revision b535aebfcb7a8ea104bc8714a16879753bb853d0)
@@ -30,4 +30,5 @@
 #
 
+-include ../Makefile.common
 -include ../Makefile.config
 
Index: uspace/app/Makefile.common
===================================================================
--- uspace/app/Makefile.common	(revision 39e8406404efea86e341847c0720d5d65bed7959)
+++ uspace/app/Makefile.common	(revision b535aebfcb7a8ea104bc8714a16879753bb853d0)
@@ -60,7 +60,7 @@
 all: \
     $(LIBC_PREFIX)/../../../version \
+    $(LIBC_PREFIX)/../../../Makefile.common \
     $(LIBC_PREFIX)/../../../Makefile.config \
     $(LIBC_PREFIX)/../../../config.h \
-    $(LIBC_PREFIX)/../../../config.defs \
     $(LIBS) \
     \
Index: uspace/lib/Makefile.common
===================================================================
--- uspace/lib/Makefile.common	(revision 39e8406404efea86e341847c0720d5d65bed7959)
+++ uspace/lib/Makefile.common	(revision b535aebfcb7a8ea104bc8714a16879753bb853d0)
@@ -50,4 +50,5 @@
 OBJECTS = $(addsuffix .o,$(basename $(SOURCES)))
 
+-include $(USPACE_PREFIX)/../Makefile.common
 -include $(USPACE_PREFIX)/../Makefile.config
 include $(LIBC_PREFIX)/Makefile.toolchain
@@ -59,7 +60,7 @@
 all: \
     $(LIBC_PREFIX)/../../../version \
+    $(LIBC_PREFIX)/../../../Makefile.common \
     $(LIBC_PREFIX)/../../../Makefile.config \
     $(LIBC_PREFIX)/../../../config.h \
-    $(LIBC_PREFIX)/../../../config.defs \
     $(LIBS) \
     \
Index: uspace/lib/libc/Makefile
===================================================================
--- uspace/lib/libc/Makefile	(revision 39e8406404efea86e341847c0720d5d65bed7959)
+++ uspace/lib/libc/Makefile	(revision b535aebfcb7a8ea104bc8714a16879753bb853d0)
@@ -28,4 +28,5 @@
 #
 
+-include ../../../Makefile.common
 -include ../../../Makefile.config
 
Index: uspace/lib/libc/Makefile.toolchain
===================================================================
--- uspace/lib/libc/Makefile.toolchain	(revision 39e8406404efea86e341847c0720d5d65bed7959)
+++ uspace/lib/libc/Makefile.toolchain	(revision b535aebfcb7a8ea104bc8714a16879753bb853d0)
@@ -53,31 +53,12 @@
 AFLAGS =
 
-## Cross-toolchain prefix
-#
-
-ifndef CROSS_PREFIX
-	CROSS_PREFIX = /usr/local
-endif
-
 ## Setup platform configuration
 #
 
+-include $(LIBC_PREFIX)/../../../Makefile.common
 -include $(LIBC_PREFIX)/../../../Makefile.config
--include $(LIBC_PREFIX)/../../../config.defs
 -include $(LIBC_PREFIX)/arch/$(UARCH)/Makefile.inc
 
-## Simple detection of the host system
-#
-HOST = $(shell uname)
-
-## On Solaris, some utilities have different names
-#
-ifeq ($(HOST),SunOS)
-	BINUTILS_PREFIX = "g"
-else
-	BINUTILS_PREFIX = ""
-endif
-
-## Toolchain configuration
+## Compilation options
 #
 
@@ -85,11 +66,4 @@
 
 ifeq ($(COMPILER),gcc_cross)
-	CC = $(TOOLCHAIN_DIR)/$(TARGET)-gcc
-	GCC = $(CC)
-	AS = $(TOOLCHAIN_DIR)/$(TARGET)-as
-	LD = $(TOOLCHAIN_DIR)/$(TARGET)-ld
-	AR = $(TOOLCHAIN_DIR)/$(TARGET)-ar
-	OBJCOPY = $(TOOLCHAIN_DIR)/$(TARGET)-objcopy
-	OBJDUMP = $(TOOLCHAIN_DIR)/$(TARGET)-objdump
 	CFLAGS = $(GCC_CFLAGS)
 	DEPEND_DEFS = $(DEFS) $(CONFIG_DEFS)
@@ -97,11 +71,4 @@
 
 ifeq ($(COMPILER),gcc_native)
-	CC = gcc
-	GCC = $(CC)
-	AS = $(BINUTILS_PREFIX)as
-	LD = $(BINUTILS_PREFIX)ld
-	AR = $(BINUTILS_PREFIX)ar
-	OBJCOPY = $(BINUTILS_PREFIX)objcopy
-	OBJDUMP = $(BINUTILS_PREFIX)objdump
 	CFLAGS = $(GCC_CFLAGS)
 	DEPEND_DEFS = $(DEFS) $(CONFIG_DEFS)
@@ -109,11 +76,4 @@
 
 ifeq ($(COMPILER),icc)
-	CC = icc
-	GCC = gcc
-	AS = as
-	LD = ld
-	AR = ar
-	OBJCOPY = objcopy
-	OBJDUMP = objdump
 	CFLAGS = $(ICC_CFLAGS)
 	DEPEND_DEFS = $(DEFS) $(CONFIG_DEFS)
@@ -121,11 +81,4 @@
 
 ifeq ($(COMPILER),clang)
-	CC = clang
-	GCC = gcc
-	AS = $(BINUTILS_PREFIX)as
-	LD = $(BINUTILS_PREFIX)ld
-	AR = $(BINUTILS_PREFIX)ar
-	OBJCOPY = $(BINUTILS_PREFIX)objcopy
-	OBJDUMP = $(BINUTILS_PREFIX)objdump
 	CFLAGS = $(CLANG_CFLAGS)
 	DEPEND_DEFS = $(DEFS) $(CONFIG_DEFS)
Index: uspace/lib/libc/arch/abs32le/Makefile.inc
===================================================================
--- uspace/lib/libc/arch/abs32le/Makefile.inc	(revision 39e8406404efea86e341847c0720d5d65bed7959)
+++ uspace/lib/libc/arch/abs32le/Makefile.inc	(revision b535aebfcb7a8ea104bc8714a16879753bb853d0)
@@ -27,23 +27,4 @@
 #
 
-## Toolchain configuration
-#
-
-ifeq ($(COMPILER),gcc_cross)
-	TOOLCHAIN_DIR = $(CROSS_PREFIX)/$(CROSS_TARGET)/bin
-	
-	ifeq ($(CROSS_TARGET),arm32)
-		TARGET = arm-linux-gnu
-	endif
-	
-	ifeq ($(CROSS_TARGET),ia32)
-		TARGET = i686-pc-linux-gnu
-	endif
-	
-	ifeq ($(CROSS_TARGET),mips32)
-		TARGET = mipsel-linux-gnu
-	endif
-endif
-
 ifeq ($(COMPILER),clang)
 	CLANG_ARCH = i386
Index: uspace/lib/libc/arch/amd64/Makefile.inc
===================================================================
--- uspace/lib/libc/arch/amd64/Makefile.inc	(revision 39e8406404efea86e341847c0720d5d65bed7959)
+++ uspace/lib/libc/arch/amd64/Makefile.inc	(revision b535aebfcb7a8ea104bc8714a16879753bb853d0)
@@ -27,10 +27,5 @@
 #
 
-## Toolchain configuration
-#
-
-TARGET = amd64-linux-gnu
 CLANG_ARCH = x86_64
-TOOLCHAIN_DIR = $(CROSS_PREFIX)/amd64/bin
 
 ARCH_SOURCES = \
Index: uspace/lib/libc/arch/arm32/Makefile.inc
===================================================================
--- uspace/lib/libc/arch/arm32/Makefile.inc	(revision 39e8406404efea86e341847c0720d5d65bed7959)
+++ uspace/lib/libc/arch/arm32/Makefile.inc	(revision b535aebfcb7a8ea104bc8714a16879753bb853d0)
@@ -28,10 +28,4 @@
 #
 
-## Toolchain configuration
-#
-
-TARGET = arm-linux-gnu
-TOOLCHAIN_DIR = $(CROSS_PREFIX)/arm32/bin
-
 ARCH_SOURCES = \
 	arch/$(UARCH)/src/entry.s \
Index: uspace/lib/libc/arch/ia32/Makefile.inc
===================================================================
--- uspace/lib/libc/arch/ia32/Makefile.inc	(revision 39e8406404efea86e341847c0720d5d65bed7959)
+++ uspace/lib/libc/arch/ia32/Makefile.inc	(revision b535aebfcb7a8ea104bc8714a16879753bb853d0)
@@ -27,10 +27,5 @@
 #
 
-## Toolchain configuration
-#
-
-TARGET = i686-pc-linux-gnu
 CLANG_ARCH = i386
-TOOLCHAIN_DIR = $(CROSS_PREFIX)/ia32/bin
 
 ARCH_SOURCES = \
Index: uspace/lib/libc/arch/ia64/Makefile.inc
===================================================================
--- uspace/lib/libc/arch/ia64/Makefile.inc	(revision 39e8406404efea86e341847c0720d5d65bed7959)
+++ uspace/lib/libc/arch/ia64/Makefile.inc	(revision b535aebfcb7a8ea104bc8714a16879753bb853d0)
@@ -27,10 +27,4 @@
 #
 
-## Toolchain configuration
-#
-
-TARGET = ia64-pc-linux-gnu
-TOOLCHAIN_DIR = $(CROSS_PREFIX)/ia64/bin
-
 ARCH_SOURCES = \
 	arch/$(UARCH)/src/entry.s \
Index: uspace/lib/libc/arch/mips32/Makefile.inc
===================================================================
--- uspace/lib/libc/arch/mips32/Makefile.inc	(revision 39e8406404efea86e341847c0720d5d65bed7959)
+++ uspace/lib/libc/arch/mips32/Makefile.inc	(revision b535aebfcb7a8ea104bc8714a16879753bb853d0)
@@ -27,10 +27,4 @@
 #
 
-## Toolchain configuration
-#
-
-TARGET = mipsel-linux-gnu
-TOOLCHAIN_DIR = $(CROSS_PREFIX)/mips32/bin
-
 ARCH_SOURCES = \
 	arch/$(UARCH)/src/entry.s \
Index: uspace/lib/libc/arch/mips32eb/Makefile.inc
===================================================================
--- uspace/lib/libc/arch/mips32eb/Makefile.inc	(revision 39e8406404efea86e341847c0720d5d65bed7959)
+++ uspace/lib/libc/arch/mips32eb/Makefile.inc	(revision b535aebfcb7a8ea104bc8714a16879753bb853d0)
@@ -27,10 +27,4 @@
 #
 
-## Toolchain configuration
-#
-
-TARGET = mips-linux-gnu
-TOOLCHAIN_DIR = $(CROSS_PREFIX)/mips32eb/bin
-
 ARCH_SOURCES = \
 	arch/$(UARCH)/src/entry.s \
Index: uspace/lib/libc/arch/ppc32/Makefile.inc
===================================================================
--- uspace/lib/libc/arch/ppc32/Makefile.inc	(revision 39e8406404efea86e341847c0720d5d65bed7959)
+++ uspace/lib/libc/arch/ppc32/Makefile.inc	(revision b535aebfcb7a8ea104bc8714a16879753bb853d0)
@@ -27,10 +27,4 @@
 #
 
-## Toolchain configuration
-#
-
-TARGET = ppc-linux-gnu
-TOOLCHAIN_DIR = $(CROSS_PREFIX)/ppc32/bin
-
 ARCH_SOURCES = \
 	arch/$(UARCH)/src/entry.s \
Index: uspace/lib/libc/arch/sparc64/Makefile.inc
===================================================================
--- uspace/lib/libc/arch/sparc64/Makefile.inc	(revision 39e8406404efea86e341847c0720d5d65bed7959)
+++ uspace/lib/libc/arch/sparc64/Makefile.inc	(revision b535aebfcb7a8ea104bc8714a16879753bb853d0)
@@ -27,10 +27,4 @@
 #
 
-## Toolchain configuration
-#
-
-TARGET = sparc64-linux-gnu
-TOOLCHAIN_DIR = $(CROSS_PREFIX)/sparc64/bin
-
 ARCH_SOURCES = \
 	arch/$(UARCH)/src/entry.s \
Index: uspace/srv/Makefile.common
===================================================================
--- uspace/srv/Makefile.common	(revision 39e8406404efea86e341847c0720d5d65bed7959)
+++ uspace/srv/Makefile.common	(revision b535aebfcb7a8ea104bc8714a16879753bb853d0)
@@ -64,7 +64,7 @@
 all: \
     $(LIBC_PREFIX)/../../../version \
+    $(LIBC_PREFIX)/../../../Makefile.common \
     $(LIBC_PREFIX)/../../../Makefile.config \
     $(LIBC_PREFIX)/../../../config.h \
-    $(LIBC_PREFIX)/../../../config.defs \
     $(LIBS) \
     \
@@ -77,5 +77,5 @@
 	find . -name '*.o' -follow -exec rm \{\} \;
 
-build: 
+build:
 
 -include $(DEPEND)
Index: uspace/srv/hid/char_mouse/chardev.c
===================================================================
--- uspace/srv/hid/char_mouse/chardev.c	(revision 39e8406404efea86e341847c0720d5d65bed7959)
+++ uspace/srv/hid/char_mouse/chardev.c	(revision b535aebfcb7a8ea104bc8714a16879753bb853d0)
@@ -48,5 +48,5 @@
 static int dev_phone;
 
-#define NAME "kbd"
+#define NAME "char_mouse"
 
 int mouse_port_init(void)
Index: uspace/srv/hid/char_mouse/proto/ps2.c
===================================================================
--- uspace/srv/hid/char_mouse/proto/ps2.c	(revision 39e8406404efea86e341847c0720d5d65bed7959)
+++ uspace/srv/hid/char_mouse/proto/ps2.c	(revision b535aebfcb7a8ea104bc8714a16879753bb853d0)
@@ -36,8 +36,12 @@
 
 #include <stdio.h>
+#include <mouse_port.h>
+#include <char_mouse.h>
 #include <mouse_proto.h>
-#include <char_mouse.h>
 
 #define BUFSIZE 3
+
+#define PS2_MOUSE_OUT_INIT  0xf4
+#define PS2_MOUSE_ACK       0xfa
 
 typedef struct {
@@ -67,4 +71,5 @@
 int mouse_proto_init(void)
 {
+	mouse_port_write(PS2_MOUSE_OUT_INIT);
 	return 0;
 }
Index: uspace/srv/hid/console/Makefile
===================================================================
--- uspace/srv/hid/console/Makefile	(revision 39e8406404efea86e341847c0720d5d65bed7959)
+++ uspace/srv/hid/console/Makefile	(revision b535aebfcb7a8ea104bc8714a16879753bb853d0)
@@ -32,5 +32,5 @@
 .PHONY: all clean
 
-all: $(LIBC_PREFIX)/../../../Makefile.config $(LIBC_PREFIX)/../../../config.h $(LIBC_PREFIX)/../../../config.defs $(LIBS)
+all: $(LIBC_PREFIX)/../../../Makefile.common $(LIBC_PREFIX)/../../../Makefile.config $(LIBC_PREFIX)/../../../config.h $(LIBS)
 	-[ -f $(DEPEND) ] && mv -f $(DEPEND) $(DEPEND_PREV)
 	$(MAKE) -f Makefile.build PRECHECK=$(PRECHECK)
Index: uspace/srv/hid/fb/Makefile
===================================================================
--- uspace/srv/hid/fb/Makefile	(revision 39e8406404efea86e341847c0720d5d65bed7959)
+++ uspace/srv/hid/fb/Makefile	(revision b535aebfcb7a8ea104bc8714a16879753bb853d0)
@@ -32,5 +32,5 @@
 .PHONY: all clean
 
-all: $(LIBC_PREFIX)/../../../Makefile.config $(LIBC_PREFIX)/../../../config.h $(LIBC_PREFIX)/../../../config.defs $(LIBS)
+all: $(LIBC_PREFIX)/../../../Makefile.common $(LIBC_PREFIX)/../../../Makefile.config $(LIBC_PREFIX)/../../../config.h $(LIBS)
 	-[ -f $(DEPEND) ] && mv -f $(DEPEND) $(DEPEND_PREV)
 	$(MAKE) -f Makefile.build PRECHECK=$(PRECHECK)
Index: uspace/srv/hid/kbd/Makefile
===================================================================
--- uspace/srv/hid/kbd/Makefile	(revision 39e8406404efea86e341847c0720d5d65bed7959)
+++ uspace/srv/hid/kbd/Makefile	(revision b535aebfcb7a8ea104bc8714a16879753bb853d0)
@@ -32,5 +32,5 @@
 .PHONY: all clean
 
-all: $(LIBC_PREFIX)/../../../Makefile.config $(LIBC_PREFIX)/../../../config.h $(LIBC_PREFIX)/../../../config.defs $(LIBS)
+all: $(LIBC_PREFIX)/../../../Makefile.common $(LIBC_PREFIX)/../../../Makefile.config $(LIBC_PREFIX)/../../../config.h $(LIBS)
 	-[ -f $(DEPEND) ] && mv -f $(DEPEND) $(DEPEND_PREV)
 	$(MAKE) -f Makefile.build PRECHECK=$(PRECHECK)
Index: uspace/srv/hw/char/i8042/i8042.c
===================================================================
--- uspace/srv/hw/char/i8042/i8042.c	(revision 39e8406404efea86e341847c0720d5d65bed7959)
+++ uspace/srv/hw/char/i8042/i8042.c	(revision b535aebfcb7a8ea104bc8714a16879753bb853d0)
@@ -68,7 +68,4 @@
 #define i8042_KBD_TRANSLATE	0x40
 
-/* Mouse constants */
-#define MOUSE_OUT_INIT  0xf4
-#define MOUSE_ACK       0xfa
 
 enum {
@@ -177,17 +174,13 @@
 	async_set_interrupt_received(i8042_irq_handler);
 
-	/* Disable kbd, enable mouse */
+	/* Disable kbd and aux */
+	wait_ready();
 	pio_write_8(&i8042->status, i8042_CMD_WRITE_CMDB);
 	wait_ready();
-	pio_write_8(&i8042->status, i8042_CMD_WRITE_CMDB);
-	wait_ready();
-	pio_write_8(&i8042->data, i8042_KBD_DISABLE);
-	wait_ready();
+	pio_write_8(&i8042->data, i8042_KBD_DISABLE | i8042_AUX_DISABLE);
 
 	/* Flush all current IO */
 	while (pio_read_8(&i8042->status) & i8042_OUTPUT_FULL)
 		(void) pio_read_8(&i8042->data);
-
-	i8042_port_write(DEVID_AUX, MOUSE_OUT_INIT);
 
 	i8042_kbd.cmds[0].addr = (void *) &((i8042_t *) i8042_kernel)->status;
@@ -195,10 +188,12 @@
 	ipc_register_irq(sysinfo_value("i8042.inr_a"), device_assign_devno(), 0, &i8042_kbd);
 	ipc_register_irq(sysinfo_value("i8042.inr_b"), device_assign_devno(), 0, &i8042_kbd);
-
+	printf("i8042: registered for interrupts %d and %d\n",
+	    sysinfo_value("i8042.inr_a"), sysinfo_value("i8042.inr_b"));
+
+	wait_ready();
 	pio_write_8(&i8042->status, i8042_CMD_WRITE_CMDB);
 	wait_ready();
 	pio_write_8(&i8042->data, i8042_KBD_IE | i8042_KBD_TRANSLATE |
 	    i8042_AUX_IE);
-	wait_ready();
 
 	return 0;
@@ -271,9 +266,9 @@
 {
 	if (devid == DEVID_AUX) {
+		wait_ready();
 		pio_write_8(&i8042->status, i8042_CMD_WRITE_AUX);
-		wait_ready();
-	}
+	}
+	wait_ready();
 	pio_write_8(&i8042->data, data);
-	wait_ready();
 }
 
Index: uspace/srv/loader/Makefile
===================================================================
--- uspace/srv/loader/Makefile	(revision 39e8406404efea86e341847c0720d5d65bed7959)
+++ uspace/srv/loader/Makefile	(revision b535aebfcb7a8ea104bc8714a16879753bb853d0)
@@ -28,4 +28,5 @@
 #
 
+-include ../../../Makefile.common
 -include ../../../Makefile.config
 -include arch/$(UARCH)/Makefile.inc
Index: uspace/srv/net/Makefile
===================================================================
--- uspace/srv/net/Makefile	(revision 39e8406404efea86e341847c0720d5d65bed7959)
+++ uspace/srv/net/Makefile	(revision b535aebfcb7a8ea104bc8714a16879753bb853d0)
@@ -27,4 +27,5 @@
 #
 
+include ../../../Makefile.common
 include ../../../Makefile.config
 
Index: uspace/srv/net/app/echo/Makefile
===================================================================
--- uspace/srv/net/app/echo/Makefile	(revision 39e8406404efea86e341847c0720d5d65bed7959)
+++ uspace/srv/net/app/echo/Makefile	(revision b535aebfcb7a8ea104bc8714a16879753bb853d0)
@@ -32,4 +32,5 @@
 STRUCTURES = $(NET_BASE)structures/
 
+include ../../../../../Makefile.common
 include ../../../../../Makefile.config
 
Index: uspace/srv/net/app/nettest1/Makefile
===================================================================
--- uspace/srv/net/app/nettest1/Makefile	(revision 39e8406404efea86e341847c0720d5d65bed7959)
+++ uspace/srv/net/app/nettest1/Makefile	(revision b535aebfcb7a8ea104bc8714a16879753bb853d0)
@@ -32,4 +32,5 @@
 STRUCTURES = $(NET_BASE)structures/
 
+include ../../../../../Makefile.common
 include ../../../../../Makefile.config
 
Index: uspace/srv/net/app/nettest2/Makefile
===================================================================
--- uspace/srv/net/app/nettest2/Makefile	(revision 39e8406404efea86e341847c0720d5d65bed7959)
+++ uspace/srv/net/app/nettest2/Makefile	(revision b535aebfcb7a8ea104bc8714a16879753bb853d0)
@@ -32,4 +32,5 @@
 STRUCTURES = $(NET_BASE)structures/
 
+include ../../../../../Makefile.common
 include ../../../../../Makefile.config
 
Index: uspace/srv/net/app/ping/Makefile
===================================================================
--- uspace/srv/net/app/ping/Makefile	(revision 39e8406404efea86e341847c0720d5d65bed7959)
+++ uspace/srv/net/app/ping/Makefile	(revision b535aebfcb7a8ea104bc8714a16879753bb853d0)
@@ -32,4 +32,5 @@
 STRUCTURES = $(NET_BASE)structures/
 
+include ../../../../../Makefile.common
 include ../../../../../Makefile.config
 
Index: uspace/srv/net/il/ip/ip.c
===================================================================
--- uspace/srv/net/il/ip/ip.c	(revision 39e8406404efea86e341847c0720d5d65bed7959)
+++ uspace/srv/net/il/ip/ip.c	(revision b535aebfcb7a8ea104bc8714a16879753bb853d0)
@@ -895,4 +895,5 @@
 	ip_pseudo_header_ref header;
 	size_t headerlen;
+	device_id_t device_id;
 
 	*answer_count = 0;
@@ -921,5 +922,7 @@
 		case NET_IP_GET_ROUTE:
 			ERROR_PROPAGATE(data_receive((void **) &addr, &addrlen));
-			ERROR_PROPAGATE(ip_get_route_req(0, IP_GET_PROTOCOL(call), addr, (socklen_t) addrlen, IPC_SET_DEVICE(answer), &header, &headerlen));
+			ERROR_PROPAGATE(ip_get_route_req(0, IP_GET_PROTOCOL(call), addr, (socklen_t) addrlen,
+			    &device_id, &header, &headerlen));
+			*IPC_SET_DEVICE(answer) = device_id;
 			*IP_SET_HEADERLEN(answer) = headerlen;
 			*answer_count = 2;
Index: uspace/srv/net/il/ip/ip_messages.h
===================================================================
--- uspace/srv/net/il/ip/ip_messages.h	(revision 39e8406404efea86e341847c0720d5d65bed7959)
+++ uspace/srv/net/il/ip/ip_messages.h	(revision b535aebfcb7a8ea104bc8714a16879753bb853d0)
@@ -82,5 +82,5 @@
  *  @param[out] answer The message answer structure.
  */
-#define IP_SET_HEADERLEN(answer)	((size_t *) &IPC_GET_ARG2(*answer))
+#define IP_SET_HEADERLEN(answer)	(&IPC_GET_ARG2(*answer))
 
 /** Returns the network mask message parameter.
Index: uspace/srv/net/messages.h
===================================================================
--- uspace/srv/net/messages.h	(revision 39e8406404efea86e341847c0720d5d65bed7959)
+++ uspace/srv/net/messages.h	(revision b535aebfcb7a8ea104bc8714a16879753bb853d0)
@@ -391,10 +391,10 @@
  *  @param[out] answer The message answer structure.
  */
-#define IPC_SET_DEVICE(answer)	((device_id_t *) &IPC_GET_ARG1(*answer))
+#define IPC_SET_DEVICE(answer)	(&IPC_GET_ARG1(*answer))
 
 /** Sets the minimum address length in the message answer.
  *  @param[out] answer The message answer structure.
  */
-#define IPC_SET_ADDR(answer)		((size_t *) &IPC_GET_ARG1(*answer))
+#define IPC_SET_ADDR(answer)		(&IPC_GET_ARG1(*answer))
 
 /*@}*/
@@ -407,5 +407,5 @@
  *  @param[out] answer The message answer structure.
  */
-#define IPC_SET_PREFIX(answer)	((size_t *) &IPC_GET_ARG2(*answer))
+#define IPC_SET_PREFIX(answer)	(&IPC_GET_ARG2(*answer))
 
 /*@}*/
@@ -418,5 +418,5 @@
  *  @param[out] answer The message answer structure.
  */
-#define IPC_SET_CONTENT(answer)	((size_t *) &IPC_GET_ARG3(*answer))
+#define IPC_SET_CONTENT(answer)	(&IPC_GET_ARG3(*answer))
 
 /*@}*/
@@ -429,5 +429,5 @@
  *  @param[out] answer The message answer structure.
  */
-#define IPC_SET_SUFFIX(answer)	((size_t *) &IPC_GET_ARG4(*answer))
+#define IPC_SET_SUFFIX(answer)	(&IPC_GET_ARG4(*answer))
 
 /*@}*/
Index: uspace/srv/net/net/Makefile
===================================================================
--- uspace/srv/net/net/Makefile	(revision 39e8406404efea86e341847c0720d5d65bed7959)
+++ uspace/srv/net/net/Makefile	(revision b535aebfcb7a8ea104bc8714a16879753bb853d0)
@@ -32,4 +32,5 @@
 STRUCTURES = $(NET_BASE)structures/
 
+include $(NET_BASE)../../../Makefile.common
 include $(NET_BASE)../../../Makefile.config
 
Index: uspace/srv/net/net/start/Makefile
===================================================================
--- uspace/srv/net/net/start/Makefile	(revision 39e8406404efea86e341847c0720d5d65bed7959)
+++ uspace/srv/net/net/start/Makefile	(revision b535aebfcb7a8ea104bc8714a16879753bb853d0)
@@ -32,4 +32,5 @@
 STRUCTURES = $(NET_BASE)structures/
 
+include ../../../../../Makefile.common
 include ../../../../../Makefile.config
 
Index: uspace/srv/net/netif/dp8390/Makefile
===================================================================
--- uspace/srv/net/netif/dp8390/Makefile	(revision 39e8406404efea86e341847c0720d5d65bed7959)
+++ uspace/srv/net/netif/dp8390/Makefile	(revision b535aebfcb7a8ea104bc8714a16879753bb853d0)
@@ -32,4 +32,5 @@
 STRUCTURES = $(NET_BASE)structures/
 
+include $(NET_BASE)../../../Makefile.common
 include $(NET_BASE)../../../Makefile.config
 
Index: uspace/srv/net/netif/lo/Makefile
===================================================================
--- uspace/srv/net/netif/lo/Makefile	(revision 39e8406404efea86e341847c0720d5d65bed7959)
+++ uspace/srv/net/netif/lo/Makefile	(revision b535aebfcb7a8ea104bc8714a16879753bb853d0)
@@ -32,4 +32,5 @@
 STRUCTURES = $(NET_BASE)structures/
 
+include $(NET_BASE)../../../Makefile.common
 include $(NET_BASE)../../../Makefile.config
 
Index: uspace/srv/net/socket/socket_messages.h
===================================================================
--- uspace/srv/net/socket/socket_messages.h	(revision 39e8406404efea86e341847c0720d5d65bed7959)
+++ uspace/srv/net/socket/socket_messages.h	(revision b535aebfcb7a8ea104bc8714a16879753bb853d0)
@@ -115,30 +115,30 @@
  *  @param[out] answer The message answer structure.
  */
-#define SOCKET_SET_SOCKET_ID(answer)			(int *) &IPC_GET_ARG1(answer)
+#define SOCKET_SET_SOCKET_ID(answer)		&IPC_GET_ARG1(answer)
 
 /** Returns the socket identifier message parameter.
  *  @param[in] call The message call structure.
  */
-#define SOCKET_GET_SOCKET_ID(call)			(int) IPC_GET_ARG1(call)
+#define SOCKET_GET_SOCKET_ID(call)		(int) IPC_GET_ARG1(call)
 
 /** Sets the read data length in the message answer.
  *  @param[out] answer The message answer structure.
  */
-#define SOCKET_SET_READ_DATA_LENGTH(answer)	(int *) &IPC_GET_ARG1(answer)
+#define SOCKET_SET_READ_DATA_LENGTH(answer)	&IPC_GET_ARG1(answer)
 
 /** Returns the read data length message parameter.
  *  @param[in] call The message call structure.
  */
-#define SOCKET_GET_READ_DATA_LENGTH(call)		(int) IPC_GET_ARG1(call)
+#define SOCKET_GET_READ_DATA_LENGTH(call)	(int) IPC_GET_ARG1(call)
 
 /** Returns the backlog message parameter.
  *  @param[in] call The message call structure.
  */
-#define SOCKET_GET_BACKLOG(call)				(int) IPC_GET_ARG2(call)
+#define SOCKET_GET_BACKLOG(call)		(int) IPC_GET_ARG2(call)
 
 /** Returns the option level message parameter.
  *  @param[in] call The message call structure.
  */
-#define SOCKET_GET_OPT_LEVEL(call)			(int) IPC_GET_ARG2(call)
+#define SOCKET_GET_OPT_LEVEL(call)		(int) IPC_GET_ARG2(call)
 
 /** Returns the data fragment size message parameter.
@@ -150,10 +150,10 @@
  *  @param[out] answer The message answer structure.
  */
-#define SOCKET_SET_DATA_FRAGMENT_SIZE(answer)	(size_t *) &IPC_GET_ARG2(answer)
+#define SOCKET_SET_DATA_FRAGMENT_SIZE(answer)	&IPC_GET_ARG2(answer)
 
 /** Sets the address length in the message answer.
  *  @param[out] answer The message answer structure.
  */
-#define SOCKET_SET_ADDRESS_LENGTH(answer)		(socklen_t *) &IPC_GET_ARG3(answer)
+#define SOCKET_SET_ADDRESS_LENGTH(answer)	&IPC_GET_ARG3(answer)
 
 /** Returns the address length message parameter.
@@ -165,20 +165,20 @@
  *  @param[out] answer The message answer structure.
  */
-#define SOCKET_SET_HEADER_SIZE(answer)		(int *) &IPC_GET_ARG3(answer)
+#define SOCKET_SET_HEADER_SIZE(answer)		&IPC_GET_ARG3(answer)
 
 /** Returns the header size message parameter.
  *  @param[in] call The message call structure.
  */
-#define SOCKET_GET_HEADER_SIZE(call)			(int) IPC_GET_ARG3(call)
+#define SOCKET_GET_HEADER_SIZE(call)		(size_t) IPC_GET_ARG3(call)
 
 /** Returns the flags message parameter.
  *  @param[in] call The message call structure.
  */
-#define SOCKET_GET_FLAGS(call)				(int) IPC_GET_ARG4(call)
+#define SOCKET_GET_FLAGS(call)			(int) IPC_GET_ARG4(call)
 
 /** Returns the option name message parameter.
  *  @param[in] call The message call structure.
  */
-#define SOCKET_GET_OPT_NAME(call)				(int) IPC_GET_ARG4(call)
+#define SOCKET_GET_OPT_NAME(call)		(int) IPC_GET_ARG4(call)
 
 /** Returns the data fragments message parameter.
Index: uspace/srv/net/tl/tcp/tcp.c
===================================================================
--- uspace/srv/net/tl/tcp/tcp.c	(revision 39e8406404efea86e341847c0720d5d65bed7959)
+++ uspace/srv/net/tl/tcp/tcp.c	(revision b535aebfcb7a8ea104bc8714a16879753bb853d0)
@@ -1060,4 +1060,5 @@
 	int app_phone = IPC_GET_PHONE(&call);
 	struct sockaddr * addr;
+	int socket_id;
 	size_t addrlen;
 	fibril_rwlock_t lock;
@@ -1104,6 +1105,7 @@
 					socket_data->local_sockets = &local_sockets;
 					fibril_rwlock_write_lock(&lock);
-					*SOCKET_SET_SOCKET_ID(answer) = SOCKET_GET_SOCKET_ID(call);
-					res = socket_create(&local_sockets, app_phone, socket_data, SOCKET_SET_SOCKET_ID(answer));
+					socket_id = SOCKET_GET_SOCKET_ID(call);
+					res = socket_create(&local_sockets, app_phone, socket_data, &socket_id);
+					*SOCKET_SET_SOCKET_ID(answer) = socket_id;
 					fibril_rwlock_write_unlock(&lock);
 					if(res == EOK){
Index: uspace/srv/net/tl/udp/udp.c
===================================================================
--- uspace/srv/net/tl/udp/udp.c	(revision 39e8406404efea86e341847c0720d5d65bed7959)
+++ uspace/srv/net/tl/udp/udp.c	(revision b535aebfcb7a8ea104bc8714a16879753bb853d0)
@@ -417,4 +417,5 @@
 	int app_phone = IPC_GET_PHONE(&call);
 	struct sockaddr * addr;
+	int socket_id;
 	size_t addrlen;
 	ipc_call_t answer;
@@ -451,6 +452,8 @@
 				break;
 			case NET_SOCKET:
-				*SOCKET_SET_SOCKET_ID(answer) = SOCKET_GET_SOCKET_ID(call);
-				res = socket_create(&local_sockets, app_phone, NULL, SOCKET_SET_SOCKET_ID(answer));
+				socket_id = SOCKET_GET_SOCKET_ID(call);
+				res = socket_create(&local_sockets, app_phone, NULL, &socket_id);
+				*SOCKET_SET_SOCKET_ID(answer) = socket_id;
+				
 				if(res == EOK){
 					if(tl_get_ip_packet_dimension(udp_globals.ip_phone, &udp_globals.dimensions, DEVICE_INVALID_ID, &packet_dimension) == EOK){
