Index: kernel/Makefile
===================================================================
--- kernel/Makefile	(revision 7208b6cc46de53e520a0beb3636047d8e17c072c)
+++ kernel/Makefile	(revision 6c441cf8f35799043d891a3a77032e1b0e49112b)
@@ -44,5 +44,5 @@
 
 GCC_CFLAGS = -I$(INCLUDES) -O$(OPTIMIZATION) \
-	-fno-builtin -fomit-frame-pointer -Wall -Wmissing-prototypes -Werror \
+	-fno-builtin -fomit-frame-pointer -Wall -Wextra -Wno-unused-parameter -Wmissing-prototypes -Werror \
 	-nostdlib -nostdinc
 
Index: kernel/arch/amd64/src/mm/page.c
===================================================================
--- kernel/arch/amd64/src/mm/page.c	(revision 7208b6cc46de53e520a0beb3636047d8e17c072c)
+++ kernel/arch/amd64/src/mm/page.c	(revision 6c441cf8f35799043d891a3a77032e1b0e49112b)
@@ -83,5 +83,5 @@
 {
 	uintptr_t cur;
-	int i;
+	unsigned int i;
 	int identity_flags = PAGE_CACHEABLE | PAGE_EXEC | PAGE_GLOBAL | PAGE_WRITE;
 
Index: kernel/arch/arm32/src/arm32.c
===================================================================
--- kernel/arch/arm32/src/arm32.c	(revision 7208b6cc46de53e520a0beb3636047d8e17c072c)
+++ kernel/arch/arm32/src/arm32.c	(revision 6c441cf8f35799043d891a3a77032e1b0e49112b)
@@ -56,5 +56,5 @@
 void arch_pre_main(void)
 {
-	int i;
+	unsigned int i;
 
 	init.cnt = bootinfo.cnt;
Index: kernel/arch/arm32/src/cpu/cpu.c
===================================================================
--- kernel/arch/arm32/src/cpu/cpu.c	(revision 7208b6cc46de53e520a0beb3636047d8e17c072c)
+++ kernel/arch/arm32/src/cpu/cpu.c	(revision 6c441cf8f35799043d891a3a77032e1b0e49112b)
@@ -57,5 +57,5 @@
 
 /** Length of the #imp_data array */
-static int imp_data_length = sizeof(imp_data) / sizeof(char *);
+static unsigned int imp_data_length = sizeof(imp_data) / sizeof(char *);
 
 /** Architecture names */
@@ -72,5 +72,5 @@
 
 /** Length of the #arch_data array */
-static int arch_data_length = sizeof(arch_data) / sizeof(char *);
+static unsigned int arch_data_length = sizeof(arch_data) / sizeof(char *);
 
 
Index: kernel/arch/arm32/src/debug/print.c
===================================================================
--- kernel/arch/arm32/src/debug/print.c	(revision 7208b6cc46de53e520a0beb3636047d8e17c072c)
+++ kernel/arch/arm32/src/debug/print.c	(revision 6c441cf8f35799043d891a3a77032e1b0e49112b)
@@ -57,8 +57,8 @@
 static int debug_write(const char *str, size_t count, void *unused)
 {
-	int i;
-	for (i = 0; i < count; ++i) {
+	unsigned int i;
+	for (i = 0; i < count; ++i)
 		putc(str[i]);
-	}
+	
 	return i;
 }
Index: kernel/arch/ia32xen/src/mm/tlb.c
===================================================================
--- kernel/arch/ia32xen/src/mm/tlb.c	(revision 7208b6cc46de53e520a0beb3636047d8e17c072c)
+++ kernel/arch/ia32xen/src/mm/tlb.c	(revision 6c441cf8f35799043d891a3a77032e1b0e49112b)
@@ -66,5 +66,5 @@
 void tlb_invalidate_pages(asid_t asid, uintptr_t page, count_t cnt)
 {
-	int i;
+	unsigned int i;
 
 	for (i = 0; i < cnt; i++)
Index: kernel/arch/ia32xen/src/smp/mps.c
===================================================================
--- kernel/arch/ia32xen/src/smp/mps.c	(revision 7208b6cc46de53e520a0beb3636047d8e17c072c)
+++ kernel/arch/ia32xen/src/smp/mps.c	(revision 6c441cf8f35799043d891a3a77032e1b0e49112b)
@@ -78,9 +78,9 @@
 struct __l_intr_entry *l_intr_entries = NULL;
 
-int processor_entry_cnt = 0;
-int bus_entry_cnt = 0;
-int io_apic_entry_cnt = 0;
-int io_intr_entry_cnt = 0;
-int l_intr_entry_cnt = 0;
+unsigned int processor_entry_cnt = 0;
+unsigned int bus_entry_cnt = 0;
+unsigned int io_apic_entry_cnt = 0;
+unsigned int io_intr_entry_cnt = 0;
+unsigned int l_intr_entry_cnt = 0;
 
 waitq_t ap_completion_wq;
@@ -418,5 +418,5 @@
 int mps_irq_to_pin(unsigned int irq)
 {
-	int i;
+	unsigned int i;
 	
 	for (i = 0; i < io_intr_entry_cnt; i++) {
Index: kernel/arch/ia32xen/src/smp/smp.c
===================================================================
--- kernel/arch/ia32xen/src/smp/smp.c	(revision 7208b6cc46de53e520a0beb3636047d8e17c072c)
+++ kernel/arch/ia32xen/src/smp/smp.c	(revision 6c441cf8f35799043d891a3a77032e1b0e49112b)
@@ -99,5 +99,5 @@
 void kmp(void *arg)
 {
-	int i;
+	unsigned int i;
 	
 	ASSERT(ops != NULL);
Index: kernel/arch/ia64/src/ia64.c
===================================================================
--- kernel/arch/ia64/src/ia64.c	(revision 7208b6cc46de53e520a0beb3636047d8e17c072c)
+++ kernel/arch/ia64/src/ia64.c	(revision 6c441cf8f35799043d891a3a77032e1b0e49112b)
@@ -63,10 +63,11 @@
 
 //#ifdef I460GX
-	int i;
+	unsigned int i;
+	
 	init.cnt = bootinfo->taskmap.count;
-	for(i=0;i<init.cnt;i++)
-	{
-	    init.tasks[i].addr = ((unsigned long)bootinfo->taskmap.tasks[i].addr)|VRN_MASK;
-	    init.tasks[i].size = bootinfo->taskmap.tasks[i].size;
+	
+	for (i = 0; i < init.cnt; i++) {
+		init.tasks[i].addr = ((unsigned long) bootinfo->taskmap.tasks[i].addr) | VRN_MASK;
+		init.tasks[i].size = bootinfo->taskmap.tasks[i].size;
 	}
 /*
Index: kernel/arch/ia64/src/mm/tlb.c
===================================================================
--- kernel/arch/ia64/src/mm/tlb.c	(revision 7208b6cc46de53e520a0beb3636047d8e17c072c)
+++ kernel/arch/ia64/src/mm/tlb.c	(revision 6c441cf8f35799043d891a3a77032e1b0e49112b)
@@ -60,5 +60,5 @@
 	uint32_t count1, count2, stride1, stride2;
 		
-	int i, j;
+	unsigned int i, j;
 		
 	adr = PAL_PTCE_INFO_BASE();
@@ -70,6 +70,6 @@
 	ipl = interrupts_disable();
 
-	for(i = 0; i < count1; i++) {
-		for(j = 0; j < count2; j++) {
+	for (i = 0; i < count1; i++) {
+		for (j = 0; j < count2; j++) {
 			asm volatile (
 				"ptc.e %0 ;;"
Index: kernel/arch/mips32/src/cpu/cpu.c
===================================================================
--- kernel/arch/mips32/src/cpu/cpu.c	(revision 7208b6cc46de53e520a0beb3636047d8e17c072c)
+++ kernel/arch/mips32/src/cpu/cpu.c	(revision 6c441cf8f35799043d891a3a77032e1b0e49112b)
@@ -105,20 +105,18 @@
 {
 	struct data_t *data;
-	int i;
+	unsigned int i;
 
 	if (m->arch.imp_num & 0x80) {
 		/* Count records */
-		for (i=0;imp_data80[i].vendor;i++)
-			;
+		for (i = 0; imp_data80[i].vendor; i++);
 		if ((m->arch.imp_num & 0x7f) >= i) {
-			printf("imp=%d\n",m->arch.imp_num);
+			printf("imp=%d\n", m->arch.imp_num);
 			return;
 		}
 		data = &imp_data80[m->arch.imp_num & 0x7f];
 	} else {
-		for (i=0;imp_data[i].vendor;i++)
-			;
+		for (i = 0; imp_data[i].vendor; i++);
 		if (m->arch.imp_num >= i) {
-			printf("imp=%d\n",m->arch.imp_num);
+			printf("imp=%d\n", m->arch.imp_num);
 			return;
 		}
@@ -128,5 +126,5 @@
 	printf("cpu%d: %s %s (rev=%d.%d, imp=%d)\n",
 		m->id, data->vendor, data->model, m->arch.rev_num >> 4, 
-	       m->arch.rev_num & 0xf, m->arch.imp_num);
+		m->arch.rev_num & 0xf, m->arch.imp_num);
 }
 
Index: kernel/arch/mips32/src/debugger.c
===================================================================
--- kernel/arch/mips32/src/debugger.c	(revision 7208b6cc46de53e520a0beb3636047d8e17c072c)
+++ kernel/arch/mips32/src/debugger.c	(revision 6c441cf8f35799043d891a3a77032e1b0e49112b)
@@ -209,5 +209,5 @@
 	ipl_t ipl;
 
-	if (argv->intval < 0 || argv->intval > BKPOINTS_MAX) {
+	if (argv->intval > BKPOINTS_MAX) {
 		printf("Invalid breakpoint number.\n");
 		return 0;
Index: kernel/arch/mips32/src/drivers/arc.c
===================================================================
--- kernel/arch/mips32/src/drivers/arc.c	(revision 7208b6cc46de53e520a0beb3636047d8e17c072c)
+++ kernel/arch/mips32/src/drivers/arc.c	(revision 6c441cf8f35799043d891a3a77032e1b0e49112b)
@@ -119,5 +119,5 @@
 {
 	cm_resource_list *configdata;
-	int i;
+	unsigned int i;
 
 	if (!c->configdatasize)
@@ -162,5 +162,5 @@
 static void arc_print_component(arc_component *c)
 {
-	int i;
+	unsigned int i;
 
 	printf("%s: ",ctypes[c->type]);
Index: kernel/arch/mips32/src/mm/tlb.c
===================================================================
--- kernel/arch/mips32/src/mm/tlb.c	(revision 7208b6cc46de53e520a0beb3636047d8e17c072c)
+++ kernel/arch/mips32/src/mm/tlb.c	(revision 6c441cf8f35799043d891a3a77032e1b0e49112b)
@@ -573,5 +573,5 @@
 void tlb_invalidate_pages(asid_t asid, uintptr_t page, count_t cnt)
 {
-	int i;
+	unsigned int i;
 	ipl_t ipl;
 	entry_lo_t lo0, lo1;
@@ -584,5 +584,5 @@
 	ipl = interrupts_disable();
 
-	for (i = 0; i < cnt+1; i+=2) {
+	for (i = 0; i < cnt + 1; i += 2) {
 		hi.value = 0;
 		prepare_entry_hi(&hi, asid, page + i * PAGE_SIZE);
Index: kernel/arch/sparc64/src/mm/frame.c
===================================================================
--- kernel/arch/sparc64/src/mm/frame.c	(revision 7208b6cc46de53e520a0beb3636047d8e17c072c)
+++ kernel/arch/sparc64/src/mm/frame.c	(revision 6c441cf8f35799043d891a3a77032e1b0e49112b)
@@ -49,5 +49,5 @@
 void frame_arch_init(void)
 {
-	int i;
+	unsigned int i;
 	pfn_t confdata;
 
Index: kernel/arch/sparc64/src/mm/page.c
===================================================================
--- kernel/arch/sparc64/src/mm/page.c	(revision 7208b6cc46de53e520a0beb3636047d8e17c072c)
+++ kernel/arch/sparc64/src/mm/page.c	(revision 6c441cf8f35799043d891a3a77032e1b0e49112b)
@@ -67,5 +67,5 @@
 
 #ifdef CONFIG_SMP
-		int i;
+		unsigned int i;
 
 		/*
@@ -99,5 +99,5 @@
 {
 	unsigned int order;
-	int i;
+	unsigned int i;
 
 	ASSERT(config.cpu_active == 1);
Index: kernel/arch/sparc64/src/mm/tlb.c
===================================================================
--- kernel/arch/sparc64/src/mm/tlb.c	(revision 7208b6cc46de53e520a0beb3636047d8e17c072c)
+++ kernel/arch/sparc64/src/mm/tlb.c	(revision 6c441cf8f35799043d891a3a77032e1b0e49112b)
@@ -491,5 +491,5 @@
 void tlb_invalidate_pages(asid_t asid, uintptr_t page, count_t cnt)
 {
-	int i;
+	unsigned int i;
 	tlb_context_reg_t pc_save, ctx;
 	
Index: kernel/arch/sparc64/src/smp/ipi.c
===================================================================
--- kernel/arch/sparc64/src/smp/ipi.c	(revision 7208b6cc46de53e520a0beb3636047d8e17c072c)
+++ kernel/arch/sparc64/src/smp/ipi.c	(revision 6c441cf8f35799043d891a3a77032e1b0e49112b)
@@ -117,5 +117,5 @@
 void ipi_broadcast_arch(int ipi)
 {
-	int i;
+	unsigned int i;
 	
 	void (* func)(void);
Index: kernel/genarch/src/ofw/ebus.c
===================================================================
--- kernel/genarch/src/ofw/ebus.c	(revision 7208b6cc46de53e520a0beb3636047d8e17c072c)
+++ kernel/genarch/src/ofw/ebus.c	(revision 6c441cf8f35799043d891a3a77032e1b0e49112b)
@@ -58,5 +58,5 @@
 	range = prop->value;
 	
-	int i;
+	unsigned int i;
 	
 	for (i = 0; i < ranges; i++) {
@@ -103,5 +103,5 @@
 	uint32_t intr = interrupt & intr_mask->intr_mask;
 	
-	int i;
+	unsigned int i;
 	for (i = 0; i < count; i++) {
 		if ((intr_map[i].space == space) && (intr_map[i].addr == addr)
Index: kernel/genarch/src/ofw/fhc.c
===================================================================
--- kernel/genarch/src/ofw/fhc.c	(revision 7208b6cc46de53e520a0beb3636047d8e17c072c)
+++ kernel/genarch/src/ofw/fhc.c	(revision 6c441cf8f35799043d891a3a77032e1b0e49112b)
@@ -56,5 +56,5 @@
 	range = prop->value;
 	
-	int i;
+	unsigned int i;
 	
 	for (i = 0; i < ranges; i++) {
@@ -98,5 +98,5 @@
 	range = prop->value;
 	
-	int i;
+	unsigned int i;
 	
 	for (i = 0; i < ranges; i++) {
Index: kernel/genarch/src/ofw/ofw_tree.c
===================================================================
--- kernel/genarch/src/ofw/ofw_tree.c	(revision 7208b6cc46de53e520a0beb3636047d8e17c072c)
+++ kernel/genarch/src/ofw/ofw_tree.c	(revision 6c441cf8f35799043d891a3a77032e1b0e49112b)
@@ -62,5 +62,5 @@
 ofw_tree_property_t *ofw_tree_getprop(const ofw_tree_node_t *node, const char *name)
 {
-	int i;
+	unsigned int i;
 	
 	for (i = 0; i < node->properties; i++) {
Index: kernel/genarch/src/ofw/pci.c
===================================================================
--- kernel/genarch/src/ofw/pci.c	(revision 7208b6cc46de53e520a0beb3636047d8e17c072c)
+++ kernel/genarch/src/ofw/pci.c	(revision 6c441cf8f35799043d891a3a77032e1b0e49112b)
@@ -66,5 +66,5 @@
 	range = prop->value;
 	
-	int i;
+	unsigned int i;
 	
 	for (i = 0; i < ranges; i++) {
@@ -101,5 +101,5 @@
 	assigned_address = prop->value;
 	
-	int i;
+	unsigned int i;
 	
 	for (i = 0; i < assigned_addresses; i++) {
Index: kernel/genarch/src/ofw/sbus.c
===================================================================
--- kernel/genarch/src/ofw/sbus.c	(revision 7208b6cc46de53e520a0beb3636047d8e17c072c)
+++ kernel/genarch/src/ofw/sbus.c	(revision 6c441cf8f35799043d891a3a77032e1b0e49112b)
@@ -62,5 +62,5 @@
 	range = prop->value;
 	
-	int i;
+	unsigned int i;
 	
 	for (i = 0; i < ranges; i++) {
Index: kernel/generic/include/lib/elf.h
===================================================================
--- kernel/generic/include/lib/elf.h	(revision 7208b6cc46de53e520a0beb3636047d8e17c072c)
+++ kernel/generic/include/lib/elf.h	(revision 6c441cf8f35799043d891a3a77032e1b0e49112b)
@@ -337,5 +337,5 @@
 #endif
 
-extern char *elf_error(int rc);
+extern char *elf_error(unsigned int rc);
 
 #endif
Index: kernel/generic/include/mm/as.h
===================================================================
--- kernel/generic/include/mm/as.h	(revision 7208b6cc46de53e520a0beb3636047d8e17c072c)
+++ kernel/generic/include/mm/as.h	(revision 6c441cf8f35799043d891a3a77032e1b0e49112b)
@@ -300,5 +300,5 @@
 extern mem_backend_t phys_backend;
 
-extern int elf_load(elf_header_t *header, as_t *as);
+extern unsigned int elf_load(elf_header_t *header, as_t *as);
 
 /* Address space area related syscalls. */
Index: kernel/generic/include/mm/slab.h
===================================================================
--- kernel/generic/include/mm/slab.h	(revision 7208b6cc46de53e520a0beb3636047d8e17c072c)
+++ kernel/generic/include/mm/slab.h	(revision 6c441cf8f35799043d891a3a77032e1b0e49112b)
@@ -54,5 +54,5 @@
 
 /** Maximum wasted space we allow for cache */
-#define SLAB_MAX_BADNESS(cache)   ((PAGE_SIZE << (cache)->order) >> 2)
+#define SLAB_MAX_BADNESS(cache)   (((unsigned int) PAGE_SIZE << (cache)->order) >> 2)
 
 /* slab_reclaim constants */
@@ -100,6 +100,6 @@
 
 	/* Computed values */
-	uint8_t order;		/**< Order of frames to be allocated */
-	int objects;		/**< Number of objects that fit in */
+	uint8_t order;				/**< Order of frames to be allocated */
+	unsigned int objects;		/**< Number of objects that fit in */
 
 	/* Statistics */
Index: kernel/generic/src/debug/symtab.c
===================================================================
--- kernel/generic/src/debug/symtab.c	(revision 7208b6cc46de53e520a0beb3636047d8e17c072c)
+++ kernel/generic/src/debug/symtab.c	(revision 6c441cf8f35799043d891a3a77032e1b0e49112b)
@@ -71,5 +71,5 @@
 static char * symtab_search_one(const char *name, int *startpos)
 {
-	int namelen = strlen(name);
+	unsigned int namelen = strlen(name);
 	char *curname;
 	int i,j;
Index: kernel/generic/src/interrupt/interrupt.c
===================================================================
--- kernel/generic/src/interrupt/interrupt.c	(revision 7208b6cc46de53e520a0beb3636047d8e17c072c)
+++ kernel/generic/src/interrupt/interrupt.c	(revision 6c441cf8f35799043d891a3a77032e1b0e49112b)
@@ -104,4 +104,5 @@
 static int exc_print_cmd(cmd_arg_t *argv)
 {
+#if (IVT_ITEMS > 0)
 	unsigned int i;
 	char *symbol;
@@ -139,4 +140,5 @@
 	
 	spinlock_unlock(&exctbl_lock);
+#endif
 	
 	return 1;
Index: kernel/generic/src/ipc/irq.c
===================================================================
--- kernel/generic/src/ipc/irq.c	(revision 7208b6cc46de53e520a0beb3636047d8e17c072c)
+++ kernel/generic/src/ipc/irq.c	(revision 6c441cf8f35799043d891a3a77032e1b0e49112b)
@@ -66,5 +66,5 @@
 static void code_execute(call_t *call, irq_code_t *code)
 {
-	int i;
+	unsigned int i;
 	unative_t dstval = 0;
 	
Index: kernel/generic/src/ipc/sysipc.c
===================================================================
--- kernel/generic/src/ipc/sysipc.c	(revision 7208b6cc46de53e520a0beb3636047d8e17c072c)
+++ kernel/generic/src/ipc/sysipc.c	(revision 6c441cf8f35799043d891a3a77032e1b0e49112b)
@@ -165,5 +165,5 @@
 	int phoneid;
 
-	if (IPC_GET_RETVAL(answer->data) == EHANGUP) {
+	if ((native_t) IPC_GET_RETVAL(answer->data) == EHANGUP) {
 		/* In case of forward, hangup the forwared phone,
 		 * not the originator
@@ -355,5 +355,5 @@
 static void process_answer(call_t *call)
 {
-	if (IPC_GET_RETVAL(call->data) == EHANGUP &&
+	if (((native_t) IPC_GET_RETVAL(call->data) == EHANGUP) &&
 	    (call->flags & IPC_CALL_FORWARDED))
 		IPC_SET_RETVAL(call->data, EFORWARD);
Index: kernel/generic/src/lib/elf.c
===================================================================
--- kernel/generic/src/lib/elf.c	(revision 7208b6cc46de53e520a0beb3636047d8e17c072c)
+++ kernel/generic/src/lib/elf.c	(revision 6c441cf8f35799043d891a3a77032e1b0e49112b)
@@ -70,5 +70,5 @@
  * @return EE_OK on success
  */
-int elf_load(elf_header_t *header, as_t * as)
+unsigned int elf_load(elf_header_t *header, as_t * as)
 {
 	int i, rc;
@@ -132,5 +132,5 @@
  * @return NULL terminated description of error.
  */
-char *elf_error(int rc)
+char *elf_error(unsigned int rc)
 {
 	ASSERT(rc < sizeof(error_codes) / sizeof(char *));
Index: kernel/generic/src/lib/func.c
===================================================================
--- kernel/generic/src/lib/func.c	(revision 7208b6cc46de53e520a0beb3636047d8e17c072c)
+++ kernel/generic/src/lib/func.c	(revision 6c441cf8f35799043d891a3a77032e1b0e49112b)
@@ -140,7 +140,7 @@
 int strncmp(const char *src, const char *dst, size_t len)
 {
-	int i;
+	unsigned int i;
 	
-	for (i = 0; *src && *dst && i < len; src++, dst++, i++) {
+	for (i = 0; (*src) && (*dst) && (i < len); src++, dst++, i++) {
 		if (*src < *dst)
 			return -1;
@@ -169,5 +169,5 @@
 void strncpy(char *dest, const char *src, size_t len)
 {
-	int i;
+	unsigned int i;
 	for (i = 0; i < len; i++) {
 		if (!(dest[i] = src[i]))
Index: kernel/generic/src/lib/memstr.c
===================================================================
--- kernel/generic/src/lib/memstr.c	(revision 7208b6cc46de53e520a0beb3636047d8e17c072c)
+++ kernel/generic/src/lib/memstr.c	(revision 6c441cf8f35799043d891a3a77032e1b0e49112b)
@@ -60,5 +60,5 @@
 void *_memcpy(void * dst, const void *src, size_t cnt)
 {
-	int i, j;
+	unsigned int i, j;
 	
 	if (ALIGN_UP((uintptr_t) src, sizeof(unative_t)) != (uintptr_t) src ||
@@ -90,5 +90,5 @@
 void _memsetb(uintptr_t dst, size_t cnt, uint8_t x)
 {
-	int i;
+	unsigned int i;
 	uint8_t *p = (uint8_t *) dst;
 	
@@ -109,5 +109,5 @@
 void _memsetw(uintptr_t dst, size_t cnt, uint16_t x)
 {
-	int i;
+	unsigned int i;
 	uint16_t *p = (uint16_t *) dst;
 	
Index: kernel/generic/src/lib/sort.c
===================================================================
--- kernel/generic/src/lib/sort.c	(revision 7208b6cc46de53e520a0beb3636047d8e17c072c)
+++ kernel/generic/src/lib/sort.c	(revision 6c441cf8f35799043d891a3a77032e1b0e49112b)
@@ -97,12 +97,15 @@
 {
 	if (n > 4) {
-		int i = 0, j = n - 1;
+		unsigned int i = 0, j = n - 1;
 
 		memcpy(pivot, data, e_size);
 
 		while (1) {
-			while ((cmp(data + i * e_size, pivot) < 0) && i < n) i++;
-			while ((cmp(data + j * e_size, pivot) >=0) && j > 0) j--;
-			if (i<j) {
+			while ((cmp(data + i * e_size, pivot) < 0) && (i < n))
+				i++;
+			while ((cmp(data + j * e_size, pivot) >= 0) && (j > 0))
+				j--;
+			
+			if (i < j) {
 				memcpy(tmp, data + i * e_size, e_size);
 				memcpy(data + i * e_size, data + j * e_size, e_size);
Index: kernel/generic/src/main/main.c
===================================================================
--- kernel/generic/src/main/main.c	(revision 7208b6cc46de53e520a0beb3636047d8e17c072c)
+++ kernel/generic/src/main/main.c	(revision 6c441cf8f35799043d891a3a77032e1b0e49112b)
@@ -87,5 +87,5 @@
 /** Initial user-space tasks */
 init_t init = {
-	0
+	.cnt = 0
 };
 
Index: kernel/generic/src/mm/as.c
===================================================================
--- kernel/generic/src/mm/as.c	(revision 7208b6cc46de53e520a0beb3636047d8e17c072c)
+++ kernel/generic/src/mm/as.c	(revision 6c441cf8f35799043d891a3a77032e1b0e49112b)
@@ -432,5 +432,5 @@
 				count_t c =
 				    (count_t) node->value[node->keys - 1];
-				int i = 0;
+				unsigned int i = 0;
 			
 				if (overlaps(b, c * PAGE_SIZE, area->base,
@@ -562,5 +562,5 @@
 	    cur != &area->used_space.leaf_head; cur = cur->next) {
 		btree_node_t *node;
-		int i;
+		unsigned int i;
 		
 		node = list_get_instance(cur, btree_node_t, leaf_link);
@@ -1098,5 +1098,5 @@
 	as_area_t *a;
 	btree_node_t *leaf, *lnode;
-	int i;
+	unsigned int i;
 	
 	a = (as_area_t *) btree_search(&as->as_area_btree, va, &leaf);
@@ -1156,5 +1156,5 @@
 	as_area_t *a;
 	btree_node_t *leaf, *node;
-	int i;
+	unsigned int i;
 	
 	/*
@@ -1265,5 +1265,5 @@
 	btree_node_t *leaf, *node;
 	count_t pages;
-	int i;
+	unsigned int i;
 
 	ASSERT(page == ALIGN_DOWN(page, PAGE_SIZE));
@@ -1547,5 +1547,5 @@
 	btree_node_t *leaf, *node;
 	count_t pages;
-	int i;
+	unsigned int i;
 
 	ASSERT(page == ALIGN_DOWN(page, PAGE_SIZE));
@@ -1735,5 +1735,5 @@
 		    cur != &sh_info->pagemap.leaf_head; cur = cur->next) {
 			btree_node_t *node;
-			int i;
+			unsigned int i;
 			
 			node = list_get_instance(cur, btree_node_t, leaf_link);
@@ -1796,5 +1796,5 @@
 		node = list_get_instance(cur, btree_node_t, leaf_link);
 		
-		int i;
+		unsigned int i;
 		for (i = 0; i < node->keys; i++) {
 			as_area_t *area = node->value[i];
Index: kernel/generic/src/mm/backend_anon.c
===================================================================
--- kernel/generic/src/mm/backend_anon.c	(revision 7208b6cc46de53e520a0beb3636047d8e17c072c)
+++ kernel/generic/src/mm/backend_anon.c	(revision 6c441cf8f35799043d891a3a77032e1b0e49112b)
@@ -99,5 +99,5 @@
 		if (!frame) {
 			bool allocate = true;
-			int i;
+			unsigned int i;
 			
 			/*
@@ -194,5 +194,5 @@
 	    cur != &area->used_space.leaf_head; cur = cur->next) {
 		btree_node_t *node;
-		int i;
+		unsigned int i;
 		
 		node = list_get_instance(cur, btree_node_t, leaf_link);
@@ -200,5 +200,5 @@
 			uintptr_t base = node->key[i];
 			count_t count = (count_t) node->value[i];
-			int j;
+			unsigned int j;
 			
 			for (j = 0; j < count; j++) {
Index: kernel/generic/src/mm/backend_elf.c
===================================================================
--- kernel/generic/src/mm/backend_elf.c	(revision 7208b6cc46de53e520a0beb3636047d8e17c072c)
+++ kernel/generic/src/mm/backend_elf.c	(revision 6c441cf8f35799043d891a3a77032e1b0e49112b)
@@ -104,5 +104,5 @@
 			ALIGN_DOWN(addr, PAGE_SIZE) - area->base, &leaf);
 		if (!frame) {
-			int i;
+			unsigned int i;
 
 			/*
@@ -291,5 +291,5 @@
 	for (cur = &node->leaf_link; cur != &area->used_space.leaf_head;
 	    cur = cur->next) {
-		int i;
+		unsigned int i;
 		
 		node = list_get_instance(cur, btree_node_t, leaf_link);
@@ -298,5 +298,5 @@
 			uintptr_t base = node->key[i];
 			count_t count = (count_t) node->value[i];
-			int j;
+			unsigned int j;
 			
 			/*
Index: kernel/generic/src/mm/frame.c
===================================================================
--- kernel/generic/src/mm/frame.c	(revision 7208b6cc46de53e520a0beb3636047d8e17c072c)
+++ kernel/generic/src/mm/frame.c	(revision 6c441cf8f35799043d891a3a77032e1b0e49112b)
@@ -121,5 +121,5 @@
 static inline int frame_index_valid(zone_t *zone, index_t index)
 {
-	return (index >= 0) && (index < zone->count);
+	return (index < zone->count);
 }
 
@@ -211,5 +211,5 @@
 	spinlock_lock(&zones.lock);
 
-	if (hint >= zones.count || hint < 0)
+	if (hint >= zones.count)
 		hint = 0;
 	
@@ -720,5 +720,5 @@
 	spinlock_lock(&zones.lock);
 
-	if (z1 < 0 || z1 >= zones.count || z2 < 0 || z2 >= zones.count)
+	if ((z1 >= zones.count) || (z2 >= zones.count))
 		goto errout;
 	/* We can join only 2 zones with none existing inbetween */
Index: kernel/generic/src/mm/slab.c
===================================================================
--- kernel/generic/src/mm/slab.c	(revision 7208b6cc46de53e520a0beb3636047d8e17c072c)
+++ kernel/generic/src/mm/slab.c	(revision 6c441cf8f35799043d891a3a77032e1b0e49112b)
@@ -173,5 +173,5 @@
 	slab_t *slab;
 	size_t fsize;
-	int i;
+	unsigned int i;
 	unsigned int zone = 0;
 	
@@ -192,6 +192,6 @@
 	
 	/* Fill in slab structures */
-	for (i=0; i < (1 << cache->order); i++)
-		frame_set_parent(ADDR2PFN(KA2PA(data))+i, slab, zone);
+	for (i = 0; i < ((unsigned int) 1 << cache->order); i++)
+		frame_set_parent(ADDR2PFN(KA2PA(data)) + i, slab, zone);
 
 	slab->start = data;
@@ -200,5 +200,5 @@
 	slab->cache = cache;
 
-	for (i=0; i<cache->objects;i++)
+	for (i = 0; i < cache->objects; i++)
 		*((int *) (slab->start + i*cache->size)) = i+1;
 
@@ -372,8 +372,8 @@
 				slab_magazine_t *mag)
 {
-	int i;
+	unsigned int i;
 	count_t frames = 0;
 
-	for (i=0;i < mag->busy; i++) {
+	for (i = 0; i < mag->busy; i++) {
 		frames += slab_obj_destroy(cache, mag->objs[i], NULL);
 		atomic_dec(&cache->cached_objs);
@@ -528,5 +528,5 @@
 
 /** Return number of objects that fit in certain cache size */
-static int comp_objects(slab_cache_t *cache)
+static unsigned int comp_objects(slab_cache_t *cache)
 {
 	if (cache->flags & SLAB_CACHE_SLINSIDE)
@@ -537,8 +537,8 @@
 
 /** Return wasted space in slab */
-static int badness(slab_cache_t *cache)
-{
-	int objects;
-	int ssize;
+static unsigned int badness(slab_cache_t *cache)
+{
+	unsigned int objects;
+	unsigned int ssize;
 
 	objects = comp_objects(cache);
@@ -546,5 +546,5 @@
 	if (cache->flags & SLAB_CACHE_SLINSIDE)
 		ssize -= sizeof(slab_t);
-	return ssize - objects*cache->size;
+	return ssize - objects * cache->size;
 }
 
@@ -554,14 +554,13 @@
 static void make_magcache(slab_cache_t *cache)
 {
-	int i;
+	unsigned int i;
 	
 	ASSERT(_slab_initialized >= 2);
 
 	cache->mag_cache = malloc(sizeof(slab_mag_cache_t)*config.cpu_count,0);
-	for (i=0; i < config.cpu_count; i++) {
+	for (i = 0; i < config.cpu_count; i++) {
 		memsetb((uintptr_t)&cache->mag_cache[i],
 			sizeof(cache->mag_cache[i]), 0);
-		spinlock_initialize(&cache->mag_cache[i].lock, 
-				    "slab_maglock_cpu");
+		spinlock_initialize(&cache->mag_cache[i].lock, "slab_maglock_cpu");
 	}
 }
@@ -655,5 +654,5 @@
 static count_t _slab_reclaim(slab_cache_t *cache, int flags)
 {
-	int i;
+	unsigned int i;
 	slab_magazine_t *mag;
 	count_t frames = 0;
@@ -676,5 +675,5 @@
 		/* Free cpu-bound magazines */
 		/* Destroy CPU magazines */
-		for (i=0; i<config.cpu_count; i++) {
+		for (i = 0; i < config.cpu_count; i++) {
 			spinlock_lock(&cache->mag_cache[i].lock);
 
Index: kernel/generic/src/mm/tlb.c
===================================================================
--- kernel/generic/src/mm/tlb.c	(revision 7208b6cc46de53e520a0beb3636047d8e17c072c)
+++ kernel/generic/src/mm/tlb.c	(revision 6c441cf8f35799043d891a3a77032e1b0e49112b)
@@ -82,5 +82,5 @@
     uintptr_t page, count_t count)
 {
-	int i;
+	unsigned int i;
 
 	CPU->tlb_active = 0;
@@ -145,5 +145,5 @@
 	uintptr_t page;
 	count_t count;
-	int i;
+	unsigned int i;
 	
 	ASSERT(CPU);
Index: kernel/generic/src/printf/printf_core.c
===================================================================
--- kernel/generic/src/printf/printf_core.c	(revision 7208b6cc46de53e520a0beb3636047d8e17c072c)
+++ kernel/generic/src/printf/printf_core.c	(revision 6c441cf8f35799043d891a3a77032e1b0e49112b)
@@ -94,5 +94,5 @@
     struct printf_spec *ps)
 {
-	return ps->write((void *)buf, count, ps->data);
+	return ps->write((void *) buf, count, ps->data);
 }
 
@@ -178,6 +178,6 @@
  * @return		Number of characters printed, negative value on	failure.
  */ 
-static int print_string(char *s, int width, int precision, uint64_t flags,
-    struct printf_spec *ps)
+static int print_string(char *s, int width, unsigned int precision,
+	uint64_t flags, struct printf_spec *ps)
 {
 	int counter = 0;
Index: kernel/generic/src/proc/task.c
===================================================================
--- kernel/generic/src/proc/task.c	(revision 7208b6cc46de53e520a0beb3636047d8e17c072c)
+++ kernel/generic/src/proc/task.c	(revision 6c441cf8f35799043d891a3a77032e1b0e49112b)
@@ -245,5 +245,5 @@
 	as_t *as;
 	as_area_t *a;
-	int rc;
+	unsigned int rc;
 	thread_t *t;
 	task_t *task;
Index: kernel/generic/src/synch/futex.c
===================================================================
--- kernel/generic/src/synch/futex.c	(revision 7208b6cc46de53e520a0beb3636047d8e17c072c)
+++ kernel/generic/src/synch/futex.c	(revision 6c441cf8f35799043d891a3a77032e1b0e49112b)
@@ -325,5 +325,5 @@
 	    cur != &TASK->futexes.leaf_head; cur = cur->next) {
 		btree_node_t *node;
-		int i;
+		unsigned int i;
 		
 		node = list_get_instance(cur, btree_node_t, leaf_link);
Index: kernel/generic/src/time/clock.c
===================================================================
--- kernel/generic/src/time/clock.c	(revision 7208b6cc46de53e520a0beb3636047d8e17c072c)
+++ kernel/generic/src/time/clock.c	(revision 6c441cf8f35799043d891a3a77032e1b0e49112b)
@@ -138,5 +138,5 @@
 	void *arg;
 	count_t missed_clock_ticks = CPU->missed_clock_ticks;
-	int i;
+	unsigned int i;
 
 	/*
Index: kernel/test/avltree/avltree1.c
===================================================================
--- kernel/test/avltree/avltree1.c	(revision 7208b6cc46de53e520a0beb3636047d8e17c072c)
+++ kernel/test/avltree/avltree1.c	(revision 6c441cf8f35799043d891a3a77032e1b0e49112b)
@@ -247,5 +247,5 @@
 static void test_tree_delmin(avltree_t *tree, count_t node_count, bool quiet)
 {
-	int i = 0;
+	unsigned int i = 0;
 	
 	if (!quiet)
Index: kernel/test/fpu/fpu1.c
===================================================================
--- kernel/test/fpu/fpu1.c	(revision 7208b6cc46de53e520a0beb3636047d8e17c072c)
+++ kernel/test/fpu/fpu1.c	(revision 6c441cf8f35799043d891a3a77032e1b0e49112b)
@@ -216,5 +216,5 @@
 	waitq_wakeup(&can_start, WAKEUP_ALL);
 	
-	while (atomic_get(&threads_ok) != total) {
+	while (atomic_get(&threads_ok) != (long) total) {
 		if (!quiet)
 			printf("Threads left: %d\n", total - atomic_get(&threads_ok));
Index: kernel/test/fpu/mips2.c
===================================================================
--- kernel/test/fpu/mips2.c	(revision 7208b6cc46de53e520a0beb3636047d8e17c072c)
+++ kernel/test/fpu/mips2.c	(revision 6c441cf8f35799043d891a3a77032e1b0e49112b)
@@ -152,5 +152,5 @@
 	waitq_wakeup(&can_start, WAKEUP_ALL);
 	
-	while (atomic_get(&threads_ok) != total) {
+	while (atomic_get(&threads_ok) != (long) total) {
 		if (!quiet)
 			printf("Threads left: %d\n", total - atomic_get(&threads_ok));
Index: kernel/test/fpu/sse1.c
===================================================================
--- kernel/test/fpu/sse1.c	(revision 7208b6cc46de53e520a0beb3636047d8e17c072c)
+++ kernel/test/fpu/sse1.c	(revision 6c441cf8f35799043d891a3a77032e1b0e49112b)
@@ -152,5 +152,5 @@
 	waitq_wakeup(&can_start, WAKEUP_ALL);
 	
-	while (atomic_get(&threads_ok) != total) {
+	while (atomic_get(&threads_ok) != (long) total) {
 		if (!quiet)
 			printf("Threads left: %d\n", total - atomic_get(&threads_ok));
Index: kernel/test/mm/falloc2.c
===================================================================
--- kernel/test/mm/falloc2.c	(revision 7208b6cc46de53e520a0beb3636047d8e17c072c)
+++ kernel/test/mm/falloc2.c	(revision 6c441cf8f35799043d891a3a77032e1b0e49112b)
@@ -89,5 +89,5 @@
 			
 			for (i = 0; i < allocated; i++) {
-				for (k = 0; k <= ((FRAME_SIZE << order) - 1); k++) {
+				for (k = 0; k <= (((index_t) FRAME_SIZE << order) - 1); k++) {
 					if (((uint8_t *) frames[i])[k] != val) {
 						if (!sh_quiet)
Index: kernel/test/synch/rwlock5.c
===================================================================
--- kernel/test/synch/rwlock5.c	(revision 7208b6cc46de53e520a0beb3636047d8e17c072c)
+++ kernel/test/synch/rwlock5.c	(revision 6c441cf8f35799043d891a3a77032e1b0e49112b)
@@ -70,5 +70,5 @@
 {
 	int i, j, k;
-	count_t readers, writers;
+	long readers, writers;
 	
 	waitq_initialize(&can_start);
Index: kernel/test/test.c
===================================================================
--- kernel/test/test.c	(revision 7208b6cc46de53e520a0beb3636047d8e17c072c)
+++ kernel/test/test.c	(revision 6c441cf8f35799043d891a3a77032e1b0e49112b)
@@ -59,5 +59,9 @@
 #include <thread/thread1.def>
 #include <sysinfo/sysinfo1.def>
-	{NULL, NULL, NULL}
+	{
+		.name = NULL,
+		.desc = NULL, 
+		.entry = NULL
+	}
 };
 
Index: kernel/test/thread/thread1.c
===================================================================
--- kernel/test/thread/thread1.c	(revision 7208b6cc46de53e520a0beb3636047d8e17c072c)
+++ kernel/test/thread/thread1.c	(revision 6c441cf8f35799043d891a3a77032e1b0e49112b)
@@ -79,5 +79,5 @@
 	
 	atomic_set(&finish, 0);
-	while (atomic_get(&threads_finished) < total) {
+	while (atomic_get(&threads_finished) < ((long) total)) {
 		if (!quiet)
 			printf("Threads left: %d\n", total - atomic_get(&threads_finished));
