Index: uspace/lib/libc/Makefile
===================================================================
--- uspace/lib/libc/Makefile	(revision 0fcfa488af4d5256b39dbabfae819c9a889745c1)
+++ uspace/lib/libc/Makefile	(revision fcd7053c1b7bca76e2258a6b2b5ce5b3b416f00f)
@@ -30,8 +30,11 @@
 #
 
--include ../../../Makefile.config
-
 LIBC_PREFIX = $(shell pwd)
 SOFTINT_PREFIX = ../softint
+
+ifndef CROSS_PREFIX
+	CROSS_PREFIX = /usr/local
+endif
+
 
 ## Setup toolchain
@@ -40,7 +43,7 @@
 include $(LIBC_PREFIX)/Makefile.toolchain
 
+
 ## Sources
 #
-
 
 GENERIC_SOURCES = \
@@ -88,6 +91,6 @@
 
 ARCH_SOURCES += \
-	arch/$(ARCH)/src/entry.s \
-	arch/$(ARCH)/src/thread_entry.s
+	arch/$(UARCH)/src/entry.s \
+	arch/$(UARCH)/src/thread_entry.s
 
 GENERIC_OBJECTS := $(addsuffix .o,$(basename $(GENERIC_SOURCES)))
@@ -97,24 +100,24 @@
 .PHONY: all clean depend kerninc
 
-all: kerninc libc.a arch/$(ARCH)/_link.ld
+all: kerninc libc.a arch/$(UARCH)/_link.ld
 
 kerninc:
 	ln -sfn ../../../../kernel/generic/include include/kernel
 	ln -sfn kernel/arch include/arch
-	ln -sfn ../arch/$(ARCH)/include include/libarch
+	ln -sfn ../arch/$(UARCH)/include include/libarch
 
 -include Makefile.depend
 
 clean:
-	-rm -f include/kernel include/arch include/libarch libc.a arch/$(ARCH)/_link.ld Makefile.depend
-	find generic/ arch/$(ARCH)/ malloc -name '*.o' -follow -exec rm \{\} \;
+	-rm -f include/kernel include/arch include/libarch libc.a arch/$(UARCH)/_link.ld Makefile.depend
+	find generic/ arch/$(UARCH)/ malloc -name '*.o' -follow -exec rm \{\} \;
 
 depend: kerninc
-	-makedepend -f - -- $(DEFS) $(CFLAGS) -- $(ARCH_SOURCES) $(GENERIC_SOURCES) > Makefile.depend 2> /dev/null
+	-makedepend -f - -- $(DEPEND_DEFS) $(CFLAGS) -- $(ARCH_SOURCES) $(GENERIC_SOURCES) > Makefile.depend 2> /dev/null
 
 libc.a: depend $(ARCH_OBJECTS) $(GENERIC_OBJECTS)
 	$(AR) rc libc.a $(LIBS) $(ARCH_OBJECTS) $(GENERIC_OBJECTS)
 
-arch/$(ARCH)/_link.ld: arch/$(ARCH)/_link.ld.in
+arch/$(UARCH)/_link.ld: arch/$(UARCH)/_link.ld.in
 	$(CC) $(DEFS) $(CFLAGS) -DLIBC_PREFIX=$(LIBC_PREFIX) -E -x c $< | grep -v "^\#" > $@
 
Index: uspace/lib/libc/Makefile.toolchain
===================================================================
--- uspace/lib/libc/Makefile.toolchain	(revision 0fcfa488af4d5256b39dbabfae819c9a889745c1)
+++ uspace/lib/libc/Makefile.toolchain	(revision fcd7053c1b7bca76e2258a6b2b5ce5b3b416f00f)
@@ -27,6 +27,5 @@
 #
 
-DEFS = -DARCH=$(ARCH)
-CFLAGS = -fno-builtin -Wall -Werror-implicit-function-declaration -Wmissing-prototypes -O3 -nostdlib -nostdinc -I$(LIBC_PREFIX)/include -pipe -g
+CFLAGS = -fno-builtin -Wall -Werror-implicit-function-declaration -Wmissing-prototypes -O3 -nostdlib -nostdinc -imacros $(LIBC_PREFIX)/../../../config.h -I$(LIBC_PREFIX)/include -pipe -g
 LFLAGS = -M -N $(SOFTINT_PREFIX)/libsoftint.a
 AFLAGS =
@@ -35,5 +34,7 @@
 #
 
--include $(LIBC_PREFIX)/arch/$(ARCH)/Makefile.inc
+-include $(LIBC_PREFIX)/../../../Makefile.config
+-include $(LIBC_PREFIX)/../../../config.defs
+-include $(LIBC_PREFIX)/arch/$(UARCH)/Makefile.inc
 
 ## Simple detection of the host system
@@ -59,4 +60,5 @@
 	OBJCOPY = $(BINUTILS_PREFIX)objcopy
 	OBJDUMP = $(BINUTILS_PREFIX)objdump
+	DEPEND_DEFS = $(DEFS) $(CONFIG_DEFS)
 endif
 
@@ -68,4 +70,5 @@
 	OBJCOPY = objcopy
 	OBJDUMP = objdump
+	DEPEND_DEFS = $(DEFS) $(CONFIG_DEFS)
 endif
 
@@ -77,4 +80,4 @@
 	OBJCOPY = $(TOOLCHAIN_DIR)/$(TARGET)-objcopy
 	OBJDUMP = $(TOOLCHAIN_DIR)/$(TARGET)-objdump
+	DEPEND_DEFS = $(DEFS) $(CONFIG_DEFS)
 endif
-
Index: uspace/lib/libc/arch/amd64/Makefile.inc
===================================================================
--- uspace/lib/libc/arch/amd64/Makefile.inc	(revision 0fcfa488af4d5256b39dbabfae819c9a889745c1)
+++ uspace/lib/libc/arch/amd64/Makefile.inc	(revision fcd7053c1b7bca76e2258a6b2b5ce5b3b416f00f)
@@ -30,14 +30,10 @@
 #
 
-ifndef CROSS_PREFIX
-	CROSS_PREFIX = /usr/local
-endif
-
 TARGET = amd64-linux-gnu
 TOOLCHAIN_DIR = $(CROSS_PREFIX)/amd64/bin
 
-ARCH_SOURCES += arch/$(ARCH)/src/syscall.S \
-		arch/$(ARCH)/src/fibril.S \
-		arch/$(ARCH)/src/tls.c
+ARCH_SOURCES += arch/$(UARCH)/src/syscall.S \
+	arch/$(UARCH)/src/fibril.S \
+	arch/$(UARCH)/src/tls.c
 
 LFLAGS += -N
Index: uspace/lib/libc/arch/amd64/_link.ld.in
===================================================================
--- uspace/lib/libc/arch/amd64/_link.ld.in	(revision 0fcfa488af4d5256b39dbabfae819c9a889745c1)
+++ uspace/lib/libc/arch/amd64/_link.ld.in	(revision fcd7053c1b7bca76e2258a6b2b5ce5b3b416f00f)
@@ -1,3 +1,3 @@
-STARTUP(LIBC_PREFIX/arch/ARCH/src/entry.o)
+STARTUP(LIBC_PREFIX/arch/UARCH/src/entry.o)
 ENTRY(__entry)
 
Index: uspace/lib/libc/arch/arm32/Makefile.inc
===================================================================
--- uspace/lib/libc/arch/arm32/Makefile.inc	(revision 0fcfa488af4d5256b39dbabfae819c9a889745c1)
+++ uspace/lib/libc/arch/arm32/Makefile.inc	(revision fcd7053c1b7bca76e2258a6b2b5ce5b3b416f00f)
@@ -31,18 +31,14 @@
 #
 
-ifndef CROSS_PREFIX
-	CROSS_PREFIX = /usr/local
-endif
-
 TARGET = arm-linux-gnu
 TOOLCHAIN_DIR = $(CROSS_PREFIX)/arm/bin
 CFLAGS += -ffixed-r9 -mtp=soft 
 LFLAGS += -N $(SOFTINT_PREFIX)/libsoftint.a
-AFLAGS += 
+AFLAGS +=
 
-ARCH_SOURCES += arch/$(ARCH)/src/syscall.c \
-		arch/$(ARCH)/src/fibril.S \
-		arch/$(ARCH)/src/tls.c \
-		arch/$(ARCH)/src/eabi.S
+ARCH_SOURCES += arch/$(UARCH)/src/syscall.c \
+	arch/$(UARCH)/src/fibril.S \
+	arch/$(UARCH)/src/tls.c \
+	arch/$(UARCH)/src/eabi.S
 
 BFD_NAME = elf32-littlearm
Index: uspace/lib/libc/arch/arm32/_link.ld.in
===================================================================
--- uspace/lib/libc/arch/arm32/_link.ld.in	(revision 0fcfa488af4d5256b39dbabfae819c9a889745c1)
+++ uspace/lib/libc/arch/arm32/_link.ld.in	(revision fcd7053c1b7bca76e2258a6b2b5ce5b3b416f00f)
@@ -1,3 +1,3 @@
-STARTUP(LIBC_PREFIX/arch/ARCH/src/entry.o)
+STARTUP(LIBC_PREFIX/arch/UARCH/src/entry.o)
 ENTRY(__entry)
 
Index: uspace/lib/libc/arch/ia32/Makefile.inc
===================================================================
--- uspace/lib/libc/arch/ia32/Makefile.inc	(revision 0fcfa488af4d5256b39dbabfae819c9a889745c1)
+++ uspace/lib/libc/arch/ia32/Makefile.inc	(revision fcd7053c1b7bca76e2258a6b2b5ce5b3b416f00f)
@@ -30,15 +30,11 @@
 #
 
-ifndef CROSS_PREFIX
-	CROSS_PREFIX = /usr/local
-endif
-
 TARGET = i686-pc-linux-gnu
 TOOLCHAIN_DIR = $(CROSS_PREFIX)/i686/bin
 
-ARCH_SOURCES += arch/$(ARCH)/src/syscall.S \
-		arch/$(ARCH)/src/fibril.S \
-		arch/$(ARCH)/src/tls.c \
-		arch/$(ARCH)/src/setjmp.S 
+ARCH_SOURCES += arch/$(UARCH)/src/syscall.S \
+	arch/$(UARCH)/src/fibril.S \
+	arch/$(UARCH)/src/tls.c \
+	arch/$(UARCH)/src/setjmp.S
 
 LFLAGS += -N
Index: uspace/lib/libc/arch/ia32/_link.ld.in
===================================================================
--- uspace/lib/libc/arch/ia32/_link.ld.in	(revision 0fcfa488af4d5256b39dbabfae819c9a889745c1)
+++ uspace/lib/libc/arch/ia32/_link.ld.in	(revision fcd7053c1b7bca76e2258a6b2b5ce5b3b416f00f)
@@ -1,3 +1,3 @@
-STARTUP(LIBC_PREFIX/arch/ARCH/src/entry.o)
+STARTUP(LIBC_PREFIX/arch/UARCH/src/entry.o)
 ENTRY(__entry)
 
Index: uspace/lib/libc/arch/ia64/Makefile.inc
===================================================================
--- uspace/lib/libc/arch/ia64/Makefile.inc	(revision 0fcfa488af4d5256b39dbabfae819c9a889745c1)
+++ uspace/lib/libc/arch/ia64/Makefile.inc	(revision fcd7053c1b7bca76e2258a6b2b5ce5b3b416f00f)
@@ -30,8 +30,4 @@
 #
 
-ifndef CROSS_PREFIX
-	CROSS_PREFIX = /usr/local
-endif
-
 TARGET = ia64-pc-linux-gnu
 TOOLCHAIN_DIR = $(CROSS_PREFIX)/ia64/bin
@@ -40,8 +36,8 @@
 AFLAGS += 
 
-ARCH_SOURCES += arch/$(ARCH)/src/syscall.S \
-		arch/$(ARCH)/src/fibril.S \
-		arch/$(ARCH)/src/tls.c\
-		arch/$(ARCH)/src/ddi.c
+ARCH_SOURCES += arch/$(UARCH)/src/syscall.S \
+	arch/$(UARCH)/src/fibril.S \
+	arch/$(UARCH)/src/tls.c \
+	arch/$(UARCH)/src/ddi.c
 
 BFD_NAME = elf64-ia64-little
Index: uspace/lib/libc/arch/ia64/_link.ld.in
===================================================================
--- uspace/lib/libc/arch/ia64/_link.ld.in	(revision 0fcfa488af4d5256b39dbabfae819c9a889745c1)
+++ uspace/lib/libc/arch/ia64/_link.ld.in	(revision fcd7053c1b7bca76e2258a6b2b5ce5b3b416f00f)
@@ -1,3 +1,3 @@
-STARTUP(LIBC_PREFIX/arch/ARCH/src/entry.o)
+STARTUP(LIBC_PREFIX/arch/UARCH/src/entry.o)
 ENTRY(__entry)
 
Index: uspace/lib/libc/arch/mips32/Makefile.inc
===================================================================
--- uspace/lib/libc/arch/mips32/Makefile.inc	(revision 0fcfa488af4d5256b39dbabfae819c9a889745c1)
+++ uspace/lib/libc/arch/mips32/Makefile.inc	(revision fcd7053c1b7bca76e2258a6b2b5ce5b3b416f00f)
@@ -30,21 +30,11 @@
 #
 
-ifndef CROSS_PREFIX
-	CROSS_PREFIX = /usr/local
-endif
-
 TARGET = mipsel-linux-gnu
 TOOLCHAIN_DIR = $(CROSS_PREFIX)/mipsel/bin
 CFLAGS += -mips3
 
--include ../../../Makefile.config
-ifeq ($(CONFIG_MIPS_FPU),y)
-	CFLAGS += -DCONFIG_MIPS_FPU
-endif
-
-ARCH_SOURCES += arch/$(ARCH)/src/syscall.c \
-	arch/$(ARCH)/src/fibril.S \
-	arch/$(ARCH)/src/tls.c
-
+ARCH_SOURCES += arch/$(UARCH)/src/syscall.c \
+	arch/$(UARCH)/src/fibril.S \
+	arch/$(UARCH)/src/tls.c
 
 BFD_ARCH = mips
Index: uspace/lib/libc/arch/mips32/_link.ld.in
===================================================================
--- uspace/lib/libc/arch/mips32/_link.ld.in	(revision 0fcfa488af4d5256b39dbabfae819c9a889745c1)
+++ uspace/lib/libc/arch/mips32/_link.ld.in	(revision fcd7053c1b7bca76e2258a6b2b5ce5b3b416f00f)
@@ -1,3 +1,3 @@
-STARTUP(LIBC_PREFIX/arch/ARCH/src/entry.o)
+STARTUP(LIBC_PREFIX/arch/UARCH/src/entry.o)
 ENTRY(__entry)
 
Index: uspace/lib/libc/arch/mips32eb/Makefile.inc
===================================================================
--- uspace/lib/libc/arch/mips32eb/Makefile.inc	(revision 0fcfa488af4d5256b39dbabfae819c9a889745c1)
+++ uspace/lib/libc/arch/mips32eb/Makefile.inc	(revision fcd7053c1b7bca76e2258a6b2b5ce5b3b416f00f)
@@ -30,15 +30,11 @@
 #
 
-ifndef CROSS_PREFIX
-	CROSS_PREFIX = /usr/local
-endif
-
 TARGET = mips-sgi-irix5
 TOOLCHAIN_DIR = $(CROSS_PREFIX)/mips/bin
 CFLAGS += -mips3 
 
-ARCH_SOURCES += arch/$(ARCH)/src/syscall.c \
-		arch/$(ARCH)/src/fibril.S \
-		arch/$(ARCH)/src/tls.c
+ARCH_SOURCES += arch/$(UARCH)/src/syscall.c \
+		arch/$(UARCH)/src/fibril.S \
+		arch/$(UARCH)/src/tls.c
 
 LFLAGS += -N
Index: uspace/lib/libc/arch/ppc32/Makefile.inc
===================================================================
--- uspace/lib/libc/arch/ppc32/Makefile.inc	(revision 0fcfa488af4d5256b39dbabfae819c9a889745c1)
+++ uspace/lib/libc/arch/ppc32/Makefile.inc	(revision fcd7053c1b7bca76e2258a6b2b5ce5b3b416f00f)
@@ -30,14 +30,10 @@
 #
 
-ifndef CROSS_PREFIX
-	CROSS_PREFIX = /usr/local
-endif
-
 TARGET = ppc-linux-gnu
 TOOLCHAIN_DIR = $(CROSS_PREFIX)/ppc/bin
 
-ARCH_SOURCES += arch/$(ARCH)/src/syscall.c \
-		arch/$(ARCH)/src/fibril.S \
-		arch/$(ARCH)/src/tls.c
+ARCH_SOURCES += arch/$(UARCH)/src/syscall.c \
+	arch/$(UARCH)/src/fibril.S \
+	arch/$(UARCH)/src/tls.c
 
 CFLAGS += -mcpu=powerpc -msoft-float -m32
Index: uspace/lib/libc/arch/ppc32/_link.ld.in
===================================================================
--- uspace/lib/libc/arch/ppc32/_link.ld.in	(revision 0fcfa488af4d5256b39dbabfae819c9a889745c1)
+++ uspace/lib/libc/arch/ppc32/_link.ld.in	(revision fcd7053c1b7bca76e2258a6b2b5ce5b3b416f00f)
@@ -1,3 +1,3 @@
-STARTUP(LIBC_PREFIX/arch/ARCH/src/entry.o)
+STARTUP(LIBC_PREFIX/arch/UARCH/src/entry.o)
 ENTRY(__entry)
 
Index: uspace/lib/libc/arch/sparc64/Makefile.inc
===================================================================
--- uspace/lib/libc/arch/sparc64/Makefile.inc	(revision 0fcfa488af4d5256b39dbabfae819c9a889745c1)
+++ uspace/lib/libc/arch/sparc64/Makefile.inc	(revision fcd7053c1b7bca76e2258a6b2b5ce5b3b416f00f)
@@ -30,13 +30,9 @@
 #
 
-ifndef CROSS_PREFIX
-	CROSS_PREFIX = /usr/local
-endif
-
 TARGET = sparc64-linux-gnu
 TOOLCHAIN_DIR = $(CROSS_PREFIX)/sparc64/bin
 
-ARCH_SOURCES += arch/$(ARCH)/src/fibril.S \
-		arch/$(ARCH)/src/tls.c
+ARCH_SOURCES += arch/$(UARCH)/src/fibril.S \
+	arch/$(UARCH)/src/tls.c
 
 CFLAGS += -mcpu=ultrasparc -m64
Index: uspace/lib/libc/arch/sparc64/_link.ld.in
===================================================================
--- uspace/lib/libc/arch/sparc64/_link.ld.in	(revision 0fcfa488af4d5256b39dbabfae819c9a889745c1)
+++ uspace/lib/libc/arch/sparc64/_link.ld.in	(revision fcd7053c1b7bca76e2258a6b2b5ce5b3b416f00f)
@@ -1,3 +1,3 @@
-STARTUP(LIBC_PREFIX/arch/ARCH/src/entry.o)
+STARTUP(LIBC_PREFIX/arch/UARCH/src/entry.o)
 ENTRY(__entry)
 
Index: uspace/lib/libc/include/macros.h
===================================================================
--- uspace/lib/libc/include/macros.h	(revision fcd7053c1b7bca76e2258a6b2b5ce5b3b416f00f)
+++ uspace/lib/libc/include/macros.h	(revision fcd7053c1b7bca76e2258a6b2b5ce5b3b416f00f)
@@ -0,0 +1,50 @@
+/*
+ * Copyright (c) 2009 Martin Decky
+ * 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 libc
+ * @{
+ */
+/** @file
+ */
+
+#ifndef LIBC_MACROS_H_
+#define LIBC_MACROS_H_
+
+#define SIZE2KB(size) ((size) >> 10)
+#define SIZE2MB(size) ((size) >> 20)
+
+#define KB2SIZE(kb) ((kb) << 10)
+#define MB2SIZE(mb) ((mb) << 20)
+
+#define STRING(arg) STRING_ARG(arg)
+#define STRING_ARG(arg) #arg
+
+#endif
+
+/** @}
+ */
