Index: kernel/arch/ppc32/src/asm.S
===================================================================
--- kernel/arch/ppc32/src/asm.S	(revision d92bf462a666dbc8e25bc56006b03724997951c4)
+++ kernel/arch/ppc32/src/asm.S	(revision ffe276fd1c1ea964dc2d354c5002620c06e9e3ac)
@@ -28,4 +28,5 @@
 
 #include <arch/asm/regname.h>
+#include <arch/cpu.h>
 
 .text
@@ -43,5 +44,5 @@
 
 userspace_asm:
-
+	
 	# r3 = uspace_uarg
 	# r4 = stack
@@ -49,5 +50,5 @@
 	
 	# disable interrupts
-
+	
 	mfmsr r31
 	rlwinm r31, r31, 0, 17, 15
@@ -60,6 +61,6 @@
 	# set problem state, enable interrupts
 	
-	ori r31, r31, msr_pr
-	ori r31, r31, msr_ee
+	ori r31, r31, MSR_PR
+	ori r31, r31, MSR_EE
 	mtsrr1 r31
 	
@@ -67,7 +68,7 @@
 	
 	mr sp, r4
-
+	
 	# %r6 is defined to hold pcb_ptr - set it to 0
-
+	
 	xor r6, r6, r6
 	
@@ -141,5 +142,5 @@
 	
 	# reset decrementer
-
+	
 	li r31, 1000
 	mtdec r31
@@ -201,5 +202,5 @@
 	lwz r12, 156(sp)
 	lwz sp, 160(sp)
-
+	
 	rfi
 
@@ -213,9 +214,9 @@
 memcpy_from_uspace:
 memcpy_to_uspace:
-
+	
 	srwi. r7, r5, 3
 	addi r6, r3, -4
 	addi r4, r4, -4
-	beq	2f
+	beq 2f
 	
 	andi. r0, r6, 3
@@ -225,53 +226,53 @@
 	1:
 	
-	lwz r7, 4(r4)
-	lwzu r8, 8(r4)
-	stw r7, 4(r6)
-	stwu r8, 8(r6)
-	bdnz 1b
-	
-	andi. r5, r5, 7
+		lwz r7, 4(r4)
+		lwzu r8, 8(r4)
+		stw r7, 4(r6)
+		stwu r8, 8(r6)
+		bdnz 1b
+		
+		andi. r5, r5, 7
 	
 	2:
 	
-	cmplwi 0, r5, 4
-	blt 3f
-	
-	lwzu r0, 4(r4)
-	addi r5, r5, -4
-	stwu r0, 4(r6)
+		cmplwi 0, r5, 4
+		blt 3f
+		
+		lwzu r0, 4(r4)
+		addi r5, r5, -4
+		stwu r0, 4(r6)
 	
 	3:
 	
-	cmpwi 0, r5, 0
-	beqlr
-	mtctr r5
-	addi r4, r4, 3
-	addi r6, r6, 3
+		cmpwi 0, r5, 0
+		beqlr
+		mtctr r5
+		addi r4, r4, 3
+		addi r6, r6, 3
 	
 	4:
 	
-	lbzu r0, 1(r4)
-	stbu r0, 1(r6)
-	bdnz 4b
-	blr
+		lbzu r0, 1(r4)
+		stbu r0, 1(r6)
+		bdnz 4b
+		blr
 	
 	5:
 	
-	subfic r0, r0, 4
-	mtctr r0
+		subfic r0, r0, 4
+		mtctr r0
 	
 	6:
 	
-	lbz r7, 4(r4)
-	addi r4, r4, 1
-	stb r7, 4(r6)
-	addi r6, r6, 1
-	bdnz 6b
-	subf r5, r0, r5
-	rlwinm. r7, r5, 32-3, 3, 31
-	beq 2b
-	mtctr r7
-	b 1b
+		lbz r7, 4(r4)
+		addi r4, r4, 1
+		stb r7, 4(r6)
+		addi r6, r6, 1
+		bdnz 6b
+		subf r5, r0, r5
+		rlwinm. r7, r5, 32-3, 3, 31
+		beq 2b
+		mtctr r7
+		b 1b
 
 memcpy_from_uspace_failover_address:
Index: kernel/arch/ppc32/src/drivers/pic.c
===================================================================
--- kernel/arch/ppc32/src/drivers/pic.c	(revision d92bf462a666dbc8e25bc56006b03724997951c4)
+++ kernel/arch/ppc32/src/drivers/pic.c	(revision ffe276fd1c1ea964dc2d354c5002620c06e9e3ac)
@@ -32,5 +32,4 @@
 /** @file
  */
-
 
 #include <arch/drivers/pic.h>
@@ -79,20 +78,22 @@
 }
 
-/** Return number of pending interrupt */
-int pic_get_pending(void)
+/** Return number of pending interrupts
+ *
+ */
+uint8_t pic_get_pending(void)
 {
 	if (pic) {
-		int pending;
+		uint32_t pending;
 		
 		pending = pic[PIC_PENDING_LOW];
-		if (pending)
+		if (pending != 0)
 			return fnzb32(pending);
 		
 		pending = pic[PIC_PENDING_HIGH];
-		if (pending)
+		if (pending != 0)
 			return fnzb32(pending) + 32;
 	}
 	
-	return -1;
+	return 255;
 }
 
Index: kernel/arch/ppc32/src/exception.S
===================================================================
--- kernel/arch/ppc32/src/exception.S	(revision d92bf462a666dbc8e25bc56006b03724997951c4)
+++ kernel/arch/ppc32/src/exception.S	(revision ffe276fd1c1ea964dc2d354c5002620c06e9e3ac)
@@ -28,4 +28,5 @@
 
 #include <arch/asm/regname.h>
+#include <arch/cpu.h>
 #include <arch/mm/page.h>
 
@@ -34,7 +35,7 @@
 .macro CONTEXT_STORE
 	
-	# save R12 in SPRG1, backup CR in R12
+	# save r12 in SPRG1, backup CR in r12
 	# save SP in SPRG2
-
+	
 	mtsprg1 r12
 	mfcr r12
@@ -288,5 +289,5 @@
 	
 	mfmsr r12
-	ori r12, r12, (msr_ir | msr_dr)@l
+	ori r12, r12, (MSR_IR | MSR_DR)@l
 	mtsrr1 r12
 	
@@ -307,5 +308,5 @@
 	
 	mfmsr r12
-	ori r12, r12, (msr_ir | msr_dr)@l
+	ori r12, r12, (MSR_IR | MSR_DR)@l
 	mtsrr1 r12
 	
Index: kernel/arch/ppc32/src/interrupt.c
===================================================================
--- kernel/arch/ppc32/src/interrupt.c	(revision d92bf462a666dbc8e25bc56006b03724997951c4)
+++ kernel/arch/ppc32/src/interrupt.c	(revision ffe276fd1c1ea964dc2d354c5002620c06e9e3ac)
@@ -44,21 +44,20 @@
 #include <print.h>
 
-
 void start_decrementer(void)
 {
 	asm volatile (
-		"mtdec %0\n"
-		:
-		: "r" (1000)
+		"mtdec %[dec]\n"
+		:: [dec] "r" (1000)
 	);
 }
 
-
-/** Handler of external interrupts */
+/** External interrupts handler
+ *
+ */
 static void exception_external(int n, istate_t *istate)
 {
-	int inum;
+	uint8_t inum;
 	
-	while ((inum = pic_get_pending()) != -1) {
+	while ((inum = pic_get_pending()) != 255) {
 		irq_t *irq = irq_dispatch_and_lock(inum);
 		if (irq) {
@@ -80,5 +79,5 @@
 			}
 			
-			spinlock_unlock(&irq->lock);
+			irq_spinlock_unlock(&irq->lock, false);
 		} else {
 			/*
@@ -86,10 +85,10 @@
 			 */
 #ifdef CONFIG_DEBUG
-			printf("cpu%u: spurious interrupt (inum=%d)\n", CPU->id, inum);
+			printf("cpu%" PRIs ": spurious interrupt (inum=%" PRIu8 ")\n",
+			    CPU->id, inum);
 #endif
 		}
 	}
 }
-
 
 static void exception_decrementer(int n, istate_t *istate)
@@ -98,5 +97,4 @@
 	clock();
 }
-
 
 /* Initialize basic tables for exception dispatching */
