Index: kernel/arch/amd64/src/interrupt.c
===================================================================
--- kernel/arch/amd64/src/interrupt.c	(revision 2d96f4dffc66f5f4b788d135403a80c661ee1d92)
+++ kernel/arch/amd64/src/interrupt.c	(revision 6cd9aa607e6515e17e369c7e888779416251db4d)
@@ -174,5 +174,5 @@
 			ack = true;
 		}
-		irq->handler(irq, irq->arg);
+		irq->handler(irq);
 		spinlock_unlock(&irq->lock);
 	} else {
Index: kernel/arch/arm32/src/drivers/gxemul.c
===================================================================
--- kernel/arch/arm32/src/drivers/gxemul.c	(revision 2d96f4dffc66f5f4b788d135403a80c661ee1d92)
+++ kernel/arch/arm32/src/drivers/gxemul.c	(revision 6cd9aa607e6515e17e369c7e888779416251db4d)
@@ -185,7 +185,6 @@
  *  
  *  @param irq IRQ information.
- *  @param arg Not used.
- */
-static void gxemul_irq_handler(irq_t *irq, void *arg, ...)
+ */
+static void gxemul_irq_handler(irq_t *irq)
 {
 	if ((irq->notif_cfg.notify) && (irq->notif_cfg.answerbox)) {
@@ -205,5 +204,5 @@
 }
 
-static irq_ownership_t gxemul_claim(void)
+static irq_ownership_t gxemul_claim(void *instance)
 {
 	return IRQ_ACCEPT;
@@ -267,5 +266,5 @@
 }
 
-static irq_ownership_t gxemul_timer_claim(void)
+static irq_ownership_t gxemul_timer_claim(void *instance)
 {
 	return IRQ_ACCEPT;
@@ -277,5 +276,5 @@
  * @param arg Not used.
  */
-static void gxemul_timer_irq_handler(irq_t *irq, void *arg, ...)
+static void gxemul_timer_irq_handler(irq_t *irq)
 {
 	/*
@@ -371,5 +370,5 @@
 			if (irq) {
 				/* The IRQ handler was found. */
-				irq->handler(irq, irq->arg);
+				irq->handler(irq);
 				spinlock_unlock(&irq->lock);
 			} else {
Index: kernel/arch/ia32/src/drivers/i8254.c
===================================================================
--- kernel/arch/ia32/src/drivers/i8254.c	(revision 2d96f4dffc66f5f4b788d135403a80c661ee1d92)
+++ kernel/arch/ia32/src/drivers/i8254.c	(revision 6cd9aa607e6515e17e369c7e888779416251db4d)
@@ -62,10 +62,10 @@
 static irq_t i8254_irq;
 
-static irq_ownership_t i8254_claim(void)
+static irq_ownership_t i8254_claim(void *instance)
 {
 	return IRQ_ACCEPT;
 }
 
-static void i8254_irq_handler(irq_t *irq, void *arg __attribute__((unused)), ...)
+static void i8254_irq_handler(irq_t *irq)
 {
 	/*
Index: kernel/arch/ia32/src/interrupt.c
===================================================================
--- kernel/arch/ia32/src/interrupt.c	(revision 2d96f4dffc66f5f4b788d135403a80c661ee1d92)
+++ kernel/arch/ia32/src/interrupt.c	(revision 6cd9aa607e6515e17e369c7e888779416251db4d)
@@ -189,5 +189,5 @@
 			ack = true;
 		}
-		irq->handler(irq, irq->arg);
+		irq->handler(irq);
 		spinlock_unlock(&irq->lock);
 	} else {
Index: kernel/arch/ia32/src/smp/apic.c
===================================================================
--- kernel/arch/ia32/src/smp/apic.c	(revision 2d96f4dffc66f5f4b788d135403a80c661ee1d92)
+++ kernel/arch/ia32/src/smp/apic.c	(revision 6cd9aa607e6515e17e369c7e888779416251db4d)
@@ -133,10 +133,10 @@
 }
 
-static irq_ownership_t l_apic_timer_claim(void)
+static irq_ownership_t l_apic_timer_claim(void *instance)
 {
 	return IRQ_ACCEPT;
 }
 
-static void l_apic_timer_irq_handler(irq_t *irq, void *arg __attribute__((unused)), ...)
+static void l_apic_timer_irq_handler(irq_t *irq)
 {
 	/*
Index: kernel/arch/ia64/src/drivers/it.c
===================================================================
--- kernel/arch/ia64/src/drivers/it.c	(revision 2d96f4dffc66f5f4b788d135403a80c661ee1d92)
+++ kernel/arch/ia64/src/drivers/it.c	(revision 6cd9aa607e6515e17e369c7e888779416251db4d)
@@ -57,6 +57,6 @@
 static irq_t it_irq;
 
-static irq_ownership_t it_claim(void);
-static void it_interrupt(irq_t *irq, void *arg, ...);
+static irq_ownership_t it_claim(void *);
+static void it_interrupt(irq_t *irq);
 
 /** Initialize Interval Timer. */
@@ -105,5 +105,5 @@
  * @return Always IRQ_ACCEPT.
  */
-irq_ownership_t it_claim(void)
+irq_ownership_t it_claim(void *instance)
 {
 	return IRQ_ACCEPT;
@@ -111,5 +111,5 @@
 
 /** Process Interval Timer interrupt. */
-void it_interrupt(irq_t *irq, void *arg, ...)
+void it_interrupt(irq_t *irq)
 {
 	int64_t c;
Index: kernel/arch/ia64/src/interrupt.c
===================================================================
--- kernel/arch/ia64/src/interrupt.c	(revision 2d96f4dffc66f5f4b788d135403a80c661ee1d92)
+++ kernel/arch/ia64/src/interrupt.c	(revision 6cd9aa607e6515e17e369c7e888779416251db4d)
@@ -267,5 +267,5 @@
 		irq = irq_dispatch_and_lock(ivr.vector);
 		if (irq) {
-			irq->handler(irq, irq->arg);
+			irq->handler(irq);
 			spinlock_unlock(&irq->lock);
 		} else {
@@ -284,5 +284,5 @@
 				end_of_local_irq();
 			}
-			irq->handler(irq, irq->arg);
+			irq->handler(irq);
 			if (!irq->preack)
 				end_of_local_irq();
Index: kernel/arch/ia64/src/ski/ski.c
===================================================================
--- kernel/arch/ia64/src/ski/ski.c	(revision 2d96f4dffc66f5f4b788d135403a80c661ee1d92)
+++ kernel/arch/ia64/src/ski/ski.c	(revision 6cd9aa607e6515e17e369c7e888779416251db4d)
@@ -187,5 +187,5 @@
  * @return Always IRQ_DECLINE.
  */
-static irq_ownership_t ski_kbd_claim(void)
+static irq_ownership_t ski_kbd_claim(void *instance)
 {
 	return IRQ_DECLINE;
Index: kernel/arch/mips32/src/drivers/msim.c
===================================================================
--- kernel/arch/mips32/src/drivers/msim.c	(revision 2d96f4dffc66f5f4b788d135403a80c661ee1d92)
+++ kernel/arch/mips32/src/drivers/msim.c	(revision 6cd9aa607e6515e17e369c7e888779416251db4d)
@@ -95,5 +95,5 @@
 
 /** Process keyboard interrupt. */
-static void msim_irq_handler(irq_t *irq, void *arg, ...)
+static void msim_irq_handler(irq_t *irq)
 {
 	if ((irq->notif_cfg.notify) && (irq->notif_cfg.answerbox))
@@ -111,5 +111,5 @@
 }
 
-static irq_ownership_t msim_claim(void)
+static irq_ownership_t msim_claim(void *instance)
 {
 	return IRQ_ACCEPT;
Index: kernel/arch/mips32/src/drivers/serial.c
===================================================================
--- kernel/arch/mips32/src/drivers/serial.c	(revision 2d96f4dffc66f5f4b788d135403a80c661ee1d92)
+++ kernel/arch/mips32/src/drivers/serial.c	(revision 6cd9aa607e6515e17e369c7e888779416251db4d)
@@ -113,5 +113,5 @@
 
 /** Process keyboard interrupt. Does not work in simics? */
-static void serial_irq_handler(irq_t *irq, void *arg, ...)
+static void serial_irq_handler(irq_t *irq)
 {
 	if ((irq->notif_cfg.notify) && (irq->notif_cfg.answerbox))
@@ -121,5 +121,5 @@
 }
 
-static irq_ownership_t serial_claim(void)
+static irq_ownership_t serial_claim(void *instance)
 {
 	return IRQ_ACCEPT;
Index: kernel/arch/mips32/src/exception.c
===================================================================
--- kernel/arch/mips32/src/exception.c	(revision 2d96f4dffc66f5f4b788d135403a80c661ee1d92)
+++ kernel/arch/mips32/src/exception.c	(revision 6cd9aa607e6515e17e369c7e888779416251db4d)
@@ -145,5 +145,5 @@
 	
 	/* decode interrupt number and process the interrupt */
-	cause = (cp0_cause_read() >> 8) &0xff;
+	cause = (cp0_cause_read() >> 8) & 0xff;
 	
 	for (i = 0; i < 8; i++) {
@@ -154,5 +154,5 @@
 				 * The IRQ handler was found.
 				 */
-				irq->handler(irq, irq->arg);
+				irq->handler(irq);
 				spinlock_unlock(&irq->lock);
 			} else {
@@ -161,5 +161,6 @@
 				 */
 #ifdef CONFIG_DEBUG
-				printf("cpu%u: spurious interrupt (inum=%d)\n", CPU->id, i);
+				printf("cpu%u: spurious interrupt (inum=%d)\n",
+				    CPU->id, i);
 #endif
 			}
Index: kernel/arch/mips32/src/interrupt.c
===================================================================
--- kernel/arch/mips32/src/interrupt.c	(revision 2d96f4dffc66f5f4b788d135403a80c661ee1d92)
+++ kernel/arch/mips32/src/interrupt.c	(revision 6cd9aa607e6515e17e369c7e888779416251db4d)
@@ -101,10 +101,10 @@
 }
 
-static irq_ownership_t timer_claim(void)
+static irq_ownership_t timer_claim(void *instance)
 {
 	return IRQ_ACCEPT;
 }
 
-static void timer_irq_handler(irq_t *irq, void *arg, ...)
+static void timer_irq_handler(irq_t *irq)
 {
 	unsigned long drift;
Index: kernel/arch/ppc32/src/drivers/cuda.c
===================================================================
--- kernel/arch/ppc32/src/drivers/cuda.c	(revision 2d96f4dffc66f5f4b788d135403a80c661ee1d92)
+++ kernel/arch/ppc32/src/drivers/cuda.c	(revision 6cd9aa607e6515e17e369c7e888779416251db4d)
@@ -250,5 +250,5 @@
 }
 
-static void cuda_irq_handler(irq_t *irq, void *arg, ...)
+static void cuda_irq_handler(irq_t *irq)
 {
 	if ((irq->notif_cfg.notify) && (irq->notif_cfg.answerbox))
@@ -265,5 +265,5 @@
 }
 
-static irq_ownership_t cuda_claim(void)
+static irq_ownership_t cuda_claim(void *instance)
 {
 	return IRQ_ACCEPT;
Index: kernel/arch/ppc32/src/interrupt.c
===================================================================
--- kernel/arch/ppc32/src/interrupt.c	(revision 2d96f4dffc66f5f4b788d135403a80c661ee1d92)
+++ kernel/arch/ppc32/src/interrupt.c	(revision 6cd9aa607e6515e17e369c7e888779416251db4d)
@@ -74,5 +74,5 @@
 			}
 			
-			irq->handler(irq, irq->arg);
+			irq->handler(irq);
 			spinlock_unlock(&irq->lock);
 		} else {
Index: kernel/arch/sparc64/include/cpu_family.h
===================================================================
--- kernel/arch/sparc64/include/cpu_family.h	(revision 2d96f4dffc66f5f4b788d135403a80c661ee1d92)
+++ kernel/arch/sparc64/include/cpu_family.h	(revision 6cd9aa607e6515e17e369c7e888779416251db4d)
@@ -81,2 +81,3 @@
 /** @}
  */
+
Index: kernel/arch/sparc64/include/cpu_node.h
===================================================================
--- kernel/arch/sparc64/include/cpu_node.h	(revision 2d96f4dffc66f5f4b788d135403a80c661ee1d92)
+++ kernel/arch/sparc64/include/cpu_node.h	(revision 6cd9aa607e6515e17e369c7e888779416251db4d)
@@ -57,2 +57,3 @@
 /** @}
  */
+
Index: kernel/arch/sparc64/src/drivers/sgcn.c
===================================================================
--- kernel/arch/sparc64/src/drivers/sgcn.c	(revision 2d96f4dffc66f5f4b788d135403a80c661ee1d92)
+++ kernel/arch/sparc64/src/drivers/sgcn.c	(revision 6cd9aa607e6515e17e369c7e888779416251db4d)
@@ -320,5 +320,5 @@
  * The driver works in polled mode, so no interrupt should be handled by it.
  */
-static irq_ownership_t sgcn_claim(void)
+static irq_ownership_t sgcn_claim(void *instance)
 {
 	return IRQ_DECLINE;
@@ -328,5 +328,5 @@
  * The driver works in polled mode, so no interrupt should be handled by it.
  */
-static void sgcn_irq_handler(irq_t *irq, void *arg, ...)
+static void sgcn_irq_handler(irq_t *irq)
 {
 	panic("Not yet implemented, SGCN works in polled mode.");
Index: kernel/arch/sparc64/src/trap/interrupt.c
===================================================================
--- kernel/arch/sparc64/src/trap/interrupt.c	(revision 2d96f4dffc66f5f4b788d135403a80c661ee1d92)
+++ kernel/arch/sparc64/src/trap/interrupt.c	(revision 6cd9aa607e6515e17e369c7e888779416251db4d)
@@ -87,5 +87,5 @@
 		 * The IRQ handler was found.
 		 */
-		irq->handler(irq, irq->arg);
+		irq->handler(irq);
 		/*
 		 * See if there is a clear-interrupt-routine and call it.
