Index: uspace/drv/audio/sb16/main.c
===================================================================
--- uspace/drv/audio/sb16/main.c	(revision f2f4c009a5353431686cc28705a037a7b19faf96)
+++ uspace/drv/audio/sb16/main.c	(revision 8cd680c007c2a69075a82a05402c553e68bbac00)
@@ -77,5 +77,5 @@
 }
 
-static void irq_handler(ddf_dev_t *dev, ipc_callid_t iid, ipc_call_t *call)
+static void irq_handler(ipc_callid_t iid, ipc_call_t *call, ddf_dev_t *dev)
 {
 	sb16_t *sb16_dev = ddf_dev_data_get(dev);
Index: uspace/drv/block/ahci/ahci.c
===================================================================
--- uspace/drv/block/ahci/ahci.c	(revision f2f4c009a5353431686cc28705a037a7b19faf96)
+++ uspace/drv/block/ahci/ahci.c	(revision 8cd680c007c2a69075a82a05402c553e68bbac00)
@@ -890,10 +890,10 @@
 /** AHCI interrupt handler.
  *
- * @param dev   DDF device structure.
  * @param iid   The IPC call id.
  * @param icall The IPC call structure.
- *
- */
-static void ahci_interrupt(ddf_dev_t *dev, ipc_callid_t iid, ipc_call_t *icall)
+ * @param dev   DDF device structure.
+ *
+ */
+static void ahci_interrupt(ipc_callid_t iid, ipc_call_t *icall, ddf_dev_t *dev)
 {
 	ahci_dev_t *ahci = dev_ahci_dev(dev);
Index: uspace/drv/bus/usb/ohci/ohci.c
===================================================================
--- uspace/drv/bus/usb/ohci/ohci.c	(revision f2f4c009a5353431686cc28705a037a7b19faf96)
+++ uspace/drv/bus/usb/ohci/ohci.c	(revision 8cd680c007c2a69075a82a05402c553e68bbac00)
@@ -59,12 +59,13 @@
 /** IRQ handling callback, identifies device
  *
- * @param[in] dev DDF instance of the device to use.
  * @param[in] iid (Unused).
  * @param[in] call Pointer to the call that represents interrupt.
- */
-static void irq_handler(ddf_dev_t *dev, ipc_callid_t iid, ipc_call_t *call)
+ * @param[in] dev DDF instance of the device to use.
+ *
+ */
+static void irq_handler(ipc_callid_t iid, ipc_call_t *call, ddf_dev_t *dev)
 {
 	assert(dev);
-
+	
 	ohci_t *ohci = dev_to_ohci(dev);
 	if (!ohci) {
@@ -72,4 +73,5 @@
 		return;
 	}
+	
 	const uint16_t status = IPC_GET_ARG1(*call);
 	hc_interrupt(&ohci->hc, status);
Index: uspace/drv/bus/usb/uhci/hc.c
===================================================================
--- uspace/drv/bus/usb/uhci/hc.c	(revision f2f4c009a5353431686cc28705a037a7b19faf96)
+++ uspace/drv/bus/usb/uhci/hc.c	(revision 8cd680c007c2a69075a82a05402c553e68bbac00)
@@ -151,5 +151,5 @@
 		return rc;
 	}
-
+	
 	irq_code_t irq_code = {
 		.rangecount = hc_irq_pio_range_count,
@@ -158,13 +158,13 @@
 		.cmds = irq_cmds
 	};
-
-        /* Register handler to avoid interrupt lockup */
-        rc = register_interrupt_handler(device, irq, handler, &irq_code);
-        if (rc != EOK) {
-    		usb_log_error("Failed to register interrupt handler: %s.\n",
-    		    str_error(rc));
-    		return rc;
-    	}
-
+	
+	/* Register handler to avoid interrupt lockup */
+	rc = register_interrupt_handler(device, irq, handler, &irq_code);
+	if (rc != EOK) {
+		usb_log_error("Failed to register interrupt handler: %s.\n",
+		    str_error(rc));
+		return rc;
+	}
+	
 	return EOK;
 }
Index: uspace/drv/bus/usb/uhci/uhci.c
===================================================================
--- uspace/drv/bus/usb/uhci/uhci.c	(revision f2f4c009a5353431686cc28705a037a7b19faf96)
+++ uspace/drv/bus/usb/uhci/uhci.c	(revision 8cd680c007c2a69075a82a05402c553e68bbac00)
@@ -69,11 +69,13 @@
 /** IRQ handling callback, forward status from call to diver structure.
  *
- * @param[in] dev DDF instance of the device to use.
  * @param[in] iid (Unused).
  * @param[in] call Pointer to the call from kernel.
- */
-static void irq_handler(ddf_dev_t *dev, ipc_callid_t iid, ipc_call_t *call)
+ * @param[in] dev DDF instance of the device to use.
+ *
+ */
+static void irq_handler(ipc_callid_t iid, ipc_call_t *call, ddf_dev_t *dev)
 {
 	assert(dev);
+	
 	uhci_t *uhci = dev_to_uhci(dev);
 	if (!uhci) {
@@ -81,4 +83,5 @@
 		return;
 	}
+	
 	const uint16_t status = IPC_GET_ARG1(*call);
 	hc_interrupt(&uhci->hc, status);
Index: uspace/drv/char/i8042/i8042.c
===================================================================
--- uspace/drv/char/i8042/i8042.c	(revision f2f4c009a5353431686cc28705a037a7b19faf96)
+++ uspace/drv/char/i8042/i8042.c	(revision 8cd680c007c2a69075a82a05402c553e68bbac00)
@@ -64,9 +64,9 @@
 #define i8042_KBD_TRANSLATE  0x40  /* Use this to switch to XT scancodes */
 
-void default_handler(ddf_fun_t *, ipc_callid_t, ipc_call_t *);
+static void default_handler(ddf_fun_t *, ipc_callid_t, ipc_call_t *);
 
 /** Port function operations. */
 static ddf_dev_ops_t ops = {
-	.default_handler = default_handler,
+	.default_handler = default_handler
 };
 
@@ -123,11 +123,11 @@
  * Write new data to the corresponding buffer.
  *
- * @param dev  Device that caued the interrupt.
  * @param iid  Call id.
  * @param call pointerr to call data.
- *
- */
-static void i8042_irq_handler(ddf_dev_t *dev, ipc_callid_t iid,
-    ipc_call_t *call)
+ * @param dev  Device that caued the interrupt.
+ *
+ */
+static void i8042_irq_handler(ipc_callid_t iid, ipc_call_t *call,
+    ddf_dev_t *dev)
 {
 	i8042_t *controller = dev_i8042(dev);
@@ -361,5 +361,5 @@
  *
  */
-void default_handler(ddf_fun_t *fun, ipc_callid_t id, ipc_call_t *call)
+static void default_handler(ddf_fun_t *fun, ipc_callid_t id, ipc_call_t *call)
 {
 	const sysarg_t method = IPC_GET_IMETHOD(*call);
Index: uspace/drv/char/i8042/i8042.h
===================================================================
--- uspace/drv/char/i8042/i8042.h	(revision f2f4c009a5353431686cc28705a037a7b19faf96)
+++ uspace/drv/char/i8042/i8042.h	(revision 8cd680c007c2a69075a82a05402c553e68bbac00)
@@ -68,5 +68,5 @@
 } i8042_t;
 
-int i8042_init(i8042_t *, addr_range_t *, int, int, ddf_dev_t *);
+extern int i8042_init(i8042_t *, addr_range_t *, int, int, ddf_dev_t *);
 
 #endif
Index: uspace/drv/char/i8042/main.c
===================================================================
--- uspace/drv/char/i8042/main.c	(revision f2f4c009a5353431686cc28705a037a7b19faf96)
+++ uspace/drv/char/i8042/main.c	(revision 8cd680c007c2a69075a82a05402c553e68bbac00)
@@ -157,5 +157,5 @@
 	 * interrupt storms when the default large stacks are used.
 	 */
-	async_set_interrupt_handler_stack_size(PAGE_SIZE);
+	async_set_notification_handler_stack_size(PAGE_SIZE);
 
 	return ddf_driver_main(&i8042_driver);
Index: uspace/drv/char/ns8250/ns8250.c
===================================================================
--- uspace/drv/char/ns8250/ns8250.c	(revision f2f4c009a5353431686cc28705a037a7b19faf96)
+++ uspace/drv/char/ns8250/ns8250.c	(revision 8cd680c007c2a69075a82a05402c553e68bbac00)
@@ -764,8 +764,9 @@
  * data and reading the line status register.
  *
- * @param dev		The serial port device.
- */
-static inline void ns8250_interrupt_handler(ddf_dev_t *dev, ipc_callid_t iid,
-    ipc_call_t *icall)
+ * @param dev The serial port device.
+ *
+ */
+static inline void ns8250_interrupt_handler(ipc_callid_t iid, ipc_call_t *icall,
+    ddf_dev_t *dev)
 {
 	ns8250_t *ns = dev_ns8250(dev);
Index: uspace/drv/nic/e1k/e1k.c
===================================================================
--- uspace/drv/nic/e1k/e1k.c	(revision f2f4c009a5353431686cc28705a037a7b19faf96)
+++ uspace/drv/nic/e1k/e1k.c	(revision 8cd680c007c2a69075a82a05402c553e68bbac00)
@@ -1229,11 +1229,11 @@
 /** Handle device interrupt
  *
- * @param dev   E1000 device
  * @param iid   IPC call id
  * @param icall IPC call structure
- *
- */
-static void e1000_interrupt_handler(ddf_dev_t *dev, ipc_callid_t iid,
-    ipc_call_t *icall)
+ * @param dev   E1000 device
+ *
+ */
+static void e1000_interrupt_handler(ipc_callid_t iid, ipc_call_t *icall,
+    ddf_dev_t *dev)
 {
 	uint32_t icr = (uint32_t) IPC_GET_ARG2(*icall);
Index: uspace/drv/nic/ne2k/ne2k.c
===================================================================
--- uspace/drv/nic/ne2k/ne2k.c	(revision f2f4c009a5353431686cc28705a037a7b19faf96)
+++ uspace/drv/nic/ne2k/ne2k.c	(revision 8cd680c007c2a69075a82a05402c553e68bbac00)
@@ -122,6 +122,5 @@
 };
 
-static void ne2k_interrupt_handler(ddf_dev_t *dev, ipc_callid_t iid,
-	ipc_call_t *call);
+static void ne2k_interrupt_handler(ipc_callid_t, ipc_call_t *, ddf_dev_t *);
 
 static int ne2k_register_interrupt(nic_t *nic_data)
@@ -240,9 +239,9 @@
 }
 
-void ne2k_interrupt_handler(ddf_dev_t *dev, ipc_callid_t iid, ipc_call_t *call)
+void ne2k_interrupt_handler(ipc_callid_t iid, ipc_call_t *call, ddf_dev_t *dev)
 {
 	nic_t *nic_data = DRIVER_DATA(dev);
 	ne2k_interrupt(nic_data, IRQ_GET_ISR(*call), IRQ_GET_TSR(*call));
-
+	
 	async_answer_0(iid, EOK);
 }
Index: uspace/drv/nic/rtl8139/driver.c
===================================================================
--- uspace/drv/nic/rtl8139/driver.c	(revision f2f4c009a5353431686cc28705a037a7b19faf96)
+++ uspace/drv/nic/rtl8139/driver.c	(revision 8cd680c007c2a69075a82a05402c553e68bbac00)
@@ -852,10 +852,11 @@
 /** Handle device interrupt
  *
- *  @param dev    The rtl8139 device
- *  @param iid    The IPC call id
- *  @param icall  The IPC call structure
- */
-static void rtl8139_interrupt_handler(ddf_dev_t *dev, ipc_callid_t iid,
-    ipc_call_t *icall)
+ * @param iid    The IPC call id
+ * @param icall  The IPC call structure
+ * @param dev    The rtl8139 device
+ *
+ */
+static void rtl8139_interrupt_handler(ipc_callid_t iid, ipc_call_t *icall,
+    ddf_dev_t *dev)
 {
 	assert(dev);
Index: uspace/drv/nic/rtl8169/driver.c
===================================================================
--- uspace/drv/nic/rtl8169/driver.c	(revision f2f4c009a5353431686cc28705a037a7b19faf96)
+++ uspace/drv/nic/rtl8169/driver.c	(revision 8cd680c007c2a69075a82a05402c553e68bbac00)
@@ -76,6 +76,6 @@
 static int rtl8169_on_stopped(nic_t *nic_data);
 static void rtl8169_send_frame(nic_t *nic_data, void *data, size_t size);
-static void rtl8169_irq_handler(ddf_dev_t *dev, ipc_callid_t iid,
-    ipc_call_t *icall);
+static void rtl8169_irq_handler(ipc_callid_t iid, ipc_call_t *icall,
+    ddf_dev_t *dev);
 static inline int rtl8169_register_int_handler(nic_t *nic_data);
 static inline void rtl8169_get_hwaddr(rtl8169_t *rtl8169, nic_address_t *addr);
@@ -897,6 +897,6 @@
 }
 
-static void rtl8169_irq_handler(ddf_dev_t *dev, ipc_callid_t iid,
-    ipc_call_t *icall)
+static void rtl8169_irq_handler(ipc_callid_t iid, ipc_call_t *icall,
+    ddf_dev_t *dev)
 {
 	assert(dev);
