Index: kernel/arch/arm32/src/drivers/gxemul.c
===================================================================
--- kernel/arch/arm32/src/drivers/gxemul.c	(revision 9979acb60a5eb42e08938818e5cc4fd945626555)
+++ kernel/arch/arm32/src/drivers/gxemul.c	(revision 5ad8661e80323e9b4b2ccfb00b9bb2b29608d73f)
@@ -204,5 +204,5 @@
 }
 
-static irq_ownership_t gxemul_claim(void *instance)
+static irq_ownership_t gxemul_claim(irq_t *irq)
 {
 	return IRQ_ACCEPT;
@@ -266,5 +266,5 @@
 }
 
-static irq_ownership_t gxemul_timer_claim(void *instance)
+static irq_ownership_t gxemul_timer_claim(irq_t *irq)
 {
 	return IRQ_ACCEPT;
Index: kernel/arch/ia32/src/drivers/i8254.c
===================================================================
--- kernel/arch/ia32/src/drivers/i8254.c	(revision 9979acb60a5eb42e08938818e5cc4fd945626555)
+++ kernel/arch/ia32/src/drivers/i8254.c	(revision 5ad8661e80323e9b4b2ccfb00b9bb2b29608d73f)
@@ -62,5 +62,5 @@
 static irq_t i8254_irq;
 
-static irq_ownership_t i8254_claim(void *instance)
+static irq_ownership_t i8254_claim(irq_t *irq)
 {
 	return IRQ_ACCEPT;
Index: kernel/arch/ia32/src/smp/apic.c
===================================================================
--- kernel/arch/ia32/src/smp/apic.c	(revision 9979acb60a5eb42e08938818e5cc4fd945626555)
+++ kernel/arch/ia32/src/smp/apic.c	(revision 5ad8661e80323e9b4b2ccfb00b9bb2b29608d73f)
@@ -133,5 +133,5 @@
 }
 
-static irq_ownership_t l_apic_timer_claim(void *instance)
+static irq_ownership_t l_apic_timer_claim(irq_t *irq)
 {
 	return IRQ_ACCEPT;
Index: kernel/arch/ia64/src/drivers/it.c
===================================================================
--- kernel/arch/ia64/src/drivers/it.c	(revision 9979acb60a5eb42e08938818e5cc4fd945626555)
+++ kernel/arch/ia64/src/drivers/it.c	(revision 5ad8661e80323e9b4b2ccfb00b9bb2b29608d73f)
@@ -57,6 +57,6 @@
 static irq_t it_irq;
 
-static irq_ownership_t it_claim(void *);
-static void it_interrupt(irq_t *irq);
+static irq_ownership_t it_claim(irq_t *);
+static void it_interrupt(irq_t *);
 
 /** Initialize Interval Timer. */
@@ -105,5 +105,5 @@
  * @return Always IRQ_ACCEPT.
  */
-irq_ownership_t it_claim(void *instance)
+irq_ownership_t it_claim(irq_t *irq)
 {
 	return IRQ_ACCEPT;
Index: kernel/arch/ia64/src/ski/ski.c
===================================================================
--- kernel/arch/ia64/src/ski/ski.c	(revision 9979acb60a5eb42e08938818e5cc4fd945626555)
+++ kernel/arch/ia64/src/ski/ski.c	(revision 5ad8661e80323e9b4b2ccfb00b9bb2b29608d73f)
@@ -187,5 +187,5 @@
  * @return Always IRQ_DECLINE.
  */
-static irq_ownership_t ski_kbd_claim(void *instance)
+static irq_ownership_t ski_kbd_claim(irq_t *irq)
 {
 	return IRQ_DECLINE;
Index: kernel/arch/mips32/src/drivers/msim.c
===================================================================
--- kernel/arch/mips32/src/drivers/msim.c	(revision 9979acb60a5eb42e08938818e5cc4fd945626555)
+++ kernel/arch/mips32/src/drivers/msim.c	(revision 5ad8661e80323e9b4b2ccfb00b9bb2b29608d73f)
@@ -110,5 +110,5 @@
 }
 
-static irq_ownership_t msim_claim(void *instance)
+static irq_ownership_t msim_claim(irq_t *irq)
 {
 	return IRQ_ACCEPT;
Index: kernel/arch/mips32/src/drivers/serial.c
===================================================================
--- kernel/arch/mips32/src/drivers/serial.c	(revision 9979acb60a5eb42e08938818e5cc4fd945626555)
+++ kernel/arch/mips32/src/drivers/serial.c	(revision 5ad8661e80323e9b4b2ccfb00b9bb2b29608d73f)
@@ -121,5 +121,5 @@
 }
 
-static irq_ownership_t serial_claim(void *instance)
+static irq_ownership_t serial_claim(irq_t *irq)
 {
 	return IRQ_ACCEPT;
Index: kernel/arch/mips32/src/interrupt.c
===================================================================
--- kernel/arch/mips32/src/interrupt.c	(revision 9979acb60a5eb42e08938818e5cc4fd945626555)
+++ kernel/arch/mips32/src/interrupt.c	(revision 5ad8661e80323e9b4b2ccfb00b9bb2b29608d73f)
@@ -102,5 +102,5 @@
 }
 
-static irq_ownership_t timer_claim(void *instance)
+static irq_ownership_t timer_claim(irq_t *irq)
 {
 	return IRQ_ACCEPT;
Index: kernel/arch/ppc32/src/drivers/cuda.c
===================================================================
--- kernel/arch/ppc32/src/drivers/cuda.c	(revision 9979acb60a5eb42e08938818e5cc4fd945626555)
+++ kernel/arch/ppc32/src/drivers/cuda.c	(revision 5ad8661e80323e9b4b2ccfb00b9bb2b29608d73f)
@@ -265,5 +265,5 @@
 }
 
-static irq_ownership_t cuda_claim(void *instance)
+static irq_ownership_t cuda_claim(irq_t *irq)
 {
 	return IRQ_ACCEPT;
Index: kernel/arch/sparc64/src/drivers/sgcn.c
===================================================================
--- kernel/arch/sparc64/src/drivers/sgcn.c	(revision 9979acb60a5eb42e08938818e5cc4fd945626555)
+++ kernel/arch/sparc64/src/drivers/sgcn.c	(revision 5ad8661e80323e9b4b2ccfb00b9bb2b29608d73f)
@@ -311,5 +311,5 @@
  * The driver works in polled mode, so no interrupt should be handled by it.
  */
-static irq_ownership_t sgcn_claim(void *instance)
+static irq_ownership_t sgcn_claim(irq_t *irq)
 {
 	return IRQ_DECLINE;
Index: kernel/genarch/include/kbd/ns16550.h
===================================================================
--- kernel/genarch/include/kbd/ns16550.h	(revision 9979acb60a5eb42e08938818e5cc4fd945626555)
+++ kernel/genarch/include/kbd/ns16550.h	(revision 5ad8661e80323e9b4b2ccfb00b9bb2b29608d73f)
@@ -72,5 +72,5 @@
 extern void ns16550_grab(void);
 extern void ns16550_release(void);
-extern irq_ownership_t ns16550_claim(void *);
+extern irq_ownership_t ns16550_claim(irq_t *);
 extern void ns16550_irq_handler(irq_t *);
 
Index: kernel/genarch/include/kbd/z8530.h
===================================================================
--- kernel/genarch/include/kbd/z8530.h	(revision 9979acb60a5eb42e08938818e5cc4fd945626555)
+++ kernel/genarch/include/kbd/z8530.h	(revision 5ad8661e80323e9b4b2ccfb00b9bb2b29608d73f)
@@ -50,5 +50,5 @@
 extern void z8530_interrupt(void);
 extern char z8530_key_read(chardev_t *);
-extern irq_ownership_t z8530_claim(void *);
+extern irq_ownership_t z8530_claim(irq_t *);
 extern void z8530_irq_handler(irq_t *);
 
Index: kernel/genarch/src/kbd/i8042.c
===================================================================
--- kernel/genarch/src/kbd/i8042.c	(revision 9979acb60a5eb42e08938818e5cc4fd945626555)
+++ kernel/genarch/src/kbd/i8042.c	(revision 5ad8661e80323e9b4b2ccfb00b9bb2b29608d73f)
@@ -127,7 +127,7 @@
 }
 
-static irq_ownership_t i8042_claim(void *instance)
-{
-	i8042_instance_t *i8042_instance = instance;
+static irq_ownership_t i8042_claim(irq_t *irq)
+{
+	i8042_instance_t *i8042_instance = irq->instance;
 	i8042_t *dev = i8042_instance->i8042;
 	if (pio_read_8(&dev->status) & i8042_BUFFER_FULL_MASK)
Index: kernel/genarch/src/kbd/ns16550.c
===================================================================
--- kernel/genarch/src/kbd/ns16550.c	(revision 9979acb60a5eb42e08938818e5cc4fd945626555)
+++ kernel/genarch/src/kbd/ns16550.c	(revision 5ad8661e80323e9b4b2ccfb00b9bb2b29608d73f)
@@ -157,7 +157,7 @@
 }
 
-irq_ownership_t ns16550_claim(void *instance)
+irq_ownership_t ns16550_claim(irq_t *irq)
 {
-	ns16550_instance_t *ns16550_instance = instance;
+	ns16550_instance_t *ns16550_instance = irq->instance;
 	ns16550_t *dev = ns16550_instance->ns16550;
 
Index: kernel/genarch/src/kbd/z8530.c
===================================================================
--- kernel/genarch/src/kbd/z8530.c	(revision 9979acb60a5eb42e08938818e5cc4fd945626555)
+++ kernel/genarch/src/kbd/z8530.c	(revision 5ad8661e80323e9b4b2ccfb00b9bb2b29608d73f)
@@ -195,5 +195,5 @@
 }
 
-irq_ownership_t z8530_claim(void *instance)
+irq_ownership_t z8530_claim(irq_t *irq)
 {
 	return (z8530_read_a(&z8530, RR0) & RR0_RCA);
Index: kernel/generic/include/ddi/irq.h
===================================================================
--- kernel/generic/include/ddi/irq.h	(revision 9979acb60a5eb42e08938818e5cc4fd945626555)
+++ kernel/generic/include/ddi/irq.h	(revision 5ad8661e80323e9b4b2ccfb00b9bb2b29608d73f)
@@ -140,5 +140,5 @@
 	irq_trigger_t trigger;
 	/** Claim ownership of the IRQ. */
-	irq_ownership_t (* claim)(void *);
+	irq_ownership_t (* claim)(struct irq *);
 	/** Handler for this IRQ and device. */
 	irq_handler_t handler;
Index: kernel/generic/src/console/console.c
===================================================================
--- kernel/generic/src/console/console.c	(revision 9979acb60a5eb42e08938818e5cc4fd945626555)
+++ kernel/generic/src/console/console.c	(revision 5ad8661e80323e9b4b2ccfb00b9bb2b29608d73f)
@@ -102,5 +102,5 @@
  * @return Always returns IRQ_DECLINE.
  */
-static irq_ownership_t klog_claim(void *instance)
+static irq_ownership_t klog_claim(irq_t *irq)
 {
 	return IRQ_DECLINE;
Index: kernel/generic/src/console/kconsole.c
===================================================================
--- kernel/generic/src/console/kconsole.c	(revision 9979acb60a5eb42e08938818e5cc4fd945626555)
+++ kernel/generic/src/console/kconsole.c	(revision 5ad8661e80323e9b4b2ccfb00b9bb2b29608d73f)
@@ -104,5 +104,5 @@
  *
  */
-static irq_ownership_t kconsole_claim(void *instance)
+static irq_ownership_t kconsole_claim(irq_t *irq)
 {
 	return IRQ_DECLINE;
