Index: kernel/genarch/include/kbd/ns16550.h
===================================================================
--- kernel/genarch/include/kbd/ns16550.h	(revision 3e53ab7b0eacdf72743712841abf0bf6d897b956)
+++ kernel/genarch/include/kbd/ns16550.h	(revision f15cb3c4c93269014a096d5c5a41bc60f0808fb9)
@@ -39,13 +39,14 @@
 
 #include <console/chardev.h> 
+#include <ddi/irq.h>
 #include <ipc/irq.h>
 
-extern void ns16550_init(devno_t devno, inr_t inr, uintptr_t vaddr);
+extern void ns16550_init(devno_t, uintptr_t, inr_t, cir_t, void *);
 extern void ns16550_poll(void);
 extern void ns16550_grab(void);
 extern void ns16550_release(void);
-extern char ns16550_key_read(chardev_t *d);
+extern char ns16550_key_read(chardev_t *);
 extern irq_ownership_t ns16550_claim(void);
-extern void ns16550_irq_handler(irq_t *irq, void *arg, ...);
+extern void ns16550_irq_handler(irq_t *, void *, ...);
 
 #include <arch/types.h>
Index: kernel/genarch/include/kbd/z8530.h
===================================================================
--- kernel/genarch/include/kbd/z8530.h	(revision 3e53ab7b0eacdf72743712841abf0bf6d897b956)
+++ kernel/genarch/include/kbd/z8530.h	(revision f15cb3c4c93269014a096d5c5a41bc60f0808fb9)
@@ -40,15 +40,16 @@
 #include <console/chardev.h>
 #include <ipc/irq.h>
+#include <ddi/irq.h>
 
 extern bool z8530_belongs_to_kernel;
 
-extern void z8530_init(devno_t devno, inr_t inr, uintptr_t vaddr);
+extern void z8530_init(devno_t, uintptr_t, inr_t, cir_t, void *);
 extern void z8530_poll(void);
 extern void z8530_grab(void);
 extern void z8530_release(void);
 extern void z8530_interrupt(void);
-extern char z8530_key_read(chardev_t *d);
+extern char z8530_key_read(chardev_t *);
 extern irq_ownership_t z8530_claim(void);
-extern void z8530_irq_handler(irq_t *irq, void *arg, ...);
+extern void z8530_irq_handler(irq_t *, void *, ...);
 
 #endif
Index: kernel/genarch/include/ofw/ofw_tree.h
===================================================================
--- kernel/genarch/include/ofw/ofw_tree.h	(revision 3e53ab7b0eacdf72743712841abf0bf6d897b956)
+++ kernel/genarch/include/ofw/ofw_tree.h	(revision f15cb3c4c93269014a096d5c5a41bc60f0808fb9)
@@ -31,4 +31,5 @@
 
 #include <arch/types.h>
+#include <ddi/irq.h>
 #include <typedefs.h>
 
@@ -44,9 +45,9 @@
 	ofw_tree_node_t *child;
 
-	uint32_t node_handle;			/**< Old OpenFirmware node handle. */
-
-	char *da_name;				/**< Disambigued name. */
-
-	unsigned properties;			/**< Number of properties. */
+	uint32_t node_handle;		/**< Old OpenFirmware node handle. */
+
+	char *da_name;			/**< Disambigued name. */
+
+	unsigned properties;		/**< Number of properties. */
 	ofw_tree_property_t *property;
 	
@@ -106,5 +107,5 @@
 	uint32_t child_base;
 	uint32_t parent_space;
-	uint64_t parent_base;		/* group phys.mid and phys.lo together */
+	uint64_t parent_base;	/* group phys.mid and phys.lo together */
 	uint32_t size;
 } __attribute__ ((packed));
@@ -128,6 +129,6 @@
 
 struct ofw_pci_reg {
-	uint32_t space;			/* needs to be masked to obtain pure space id */
-	uint64_t addr;			/* group phys.mid and phys.lo together */
+	uint32_t space;		/* needs to be masked to obtain pure space id */
+	uint64_t addr;		/* group phys.mid and phys.lo together */
 	uint64_t size;
 } __attribute__ ((packed));
@@ -136,5 +137,5 @@
 struct ofw_pci_range {
 	uint32_t space;
-	uint64_t child_base;		/* group phys.mid and phys.lo together */
+	uint64_t child_base;	/* group phys.mid and phys.lo together */
 	uint64_t parent_base;
 	uint64_t size;
@@ -161,26 +162,40 @@
 typedef struct ofw_upa_reg ofw_upa_reg_t;
 
-extern void ofw_tree_init(ofw_tree_node_t *root);
+extern void ofw_tree_init(ofw_tree_node_t *);
 extern void ofw_tree_print(void);
-extern const char *ofw_tree_node_name(const ofw_tree_node_t *node);
-extern ofw_tree_node_t *ofw_tree_lookup(const char *path);
-extern ofw_tree_property_t *ofw_tree_getprop(const ofw_tree_node_t *node, const char *name);
-extern ofw_tree_node_t *ofw_tree_find_child(ofw_tree_node_t *node, const char *name);
-extern ofw_tree_node_t *ofw_tree_find_child_by_device_type(ofw_tree_node_t *node, const char *device_type);
-extern ofw_tree_node_t *ofw_tree_find_peer_by_device_type(ofw_tree_node_t *node, const char *device_type);
-extern ofw_tree_node_t *ofw_tree_find_node_by_handle(ofw_tree_node_t *root, uint32_t handle);
-
-extern bool ofw_fhc_apply_ranges(ofw_tree_node_t *node, ofw_fhc_reg_t *reg, uintptr_t *pa);
-extern bool ofw_central_apply_ranges(ofw_tree_node_t *node, ofw_central_reg_t *reg, uintptr_t *pa);
-extern bool ofw_ebus_apply_ranges(ofw_tree_node_t *node, ofw_ebus_reg_t *reg, uintptr_t *pa);
-extern bool ofw_pci_apply_ranges(ofw_tree_node_t *node, ofw_pci_reg_t *reg, uintptr_t *pa);
-extern bool ofw_sbus_apply_ranges(ofw_tree_node_t *node, ofw_sbus_reg_t *reg, uintptr_t *pa);
-extern bool ofw_upa_apply_ranges(ofw_tree_node_t *node, ofw_upa_reg_t *reg, uintptr_t *pa);
-
-extern bool ofw_pci_reg_absolutize(ofw_tree_node_t *node, ofw_pci_reg_t *reg, ofw_pci_reg_t *out);
-
-extern bool ofw_fhc_map_interrupt(ofw_tree_node_t *node, ofw_fhc_reg_t *reg, uint32_t interrupt, int *inr);
-extern bool ofw_ebus_map_interrupt(ofw_tree_node_t *node, ofw_ebus_reg_t *reg, uint32_t interrupt, int *inr);
-extern bool ofw_pci_map_interrupt(ofw_tree_node_t *node, ofw_pci_reg_t *reg, int ino, int *inr);
+extern const char *ofw_tree_node_name(const ofw_tree_node_t *);
+extern ofw_tree_node_t *ofw_tree_lookup(const char *);
+extern ofw_tree_property_t *ofw_tree_getprop(const ofw_tree_node_t *,
+    const char *);
+extern ofw_tree_node_t *ofw_tree_find_child(ofw_tree_node_t *, const char *);
+extern ofw_tree_node_t *ofw_tree_find_child_by_device_type(ofw_tree_node_t *,
+    const char *);
+extern ofw_tree_node_t *ofw_tree_find_peer_by_device_type(ofw_tree_node_t *,
+    const char *);
+extern ofw_tree_node_t *ofw_tree_find_node_by_handle(ofw_tree_node_t *,
+    uint32_t);
+
+extern bool ofw_fhc_apply_ranges(ofw_tree_node_t *, ofw_fhc_reg_t *,
+    uintptr_t *);
+extern bool ofw_central_apply_ranges(ofw_tree_node_t *, ofw_central_reg_t *,
+    uintptr_t *);
+extern bool ofw_ebus_apply_ranges(ofw_tree_node_t *, ofw_ebus_reg_t *,
+    uintptr_t *);
+extern bool ofw_pci_apply_ranges(ofw_tree_node_t *, ofw_pci_reg_t *,
+    uintptr_t *);
+extern bool ofw_sbus_apply_ranges(ofw_tree_node_t *, ofw_sbus_reg_t *,
+    uintptr_t *);
+extern bool ofw_upa_apply_ranges(ofw_tree_node_t *, ofw_upa_reg_t *,
+    uintptr_t *);
+
+extern bool ofw_pci_reg_absolutize(ofw_tree_node_t *, ofw_pci_reg_t *,
+    ofw_pci_reg_t *);
+
+extern bool ofw_fhc_map_interrupt(ofw_tree_node_t *, ofw_fhc_reg_t *,
+    uint32_t, int *, cir_t *, void **);
+extern bool ofw_ebus_map_interrupt(ofw_tree_node_t *, ofw_ebus_reg_t *,
+    uint32_t, int *, cir_t *, void **);
+extern bool ofw_pci_map_interrupt(ofw_tree_node_t *, ofw_pci_reg_t *,
+    int, int *, cir_t *, void **);
 
 #endif
