Index: kernel/generic/src/ddi/ddi.c
===================================================================
--- kernel/generic/src/ddi/ddi.c	(revision 8df5f20c3e20072bcf616568836c1d08eba227c2)
+++ kernel/generic/src/ddi/ddi.c	(revision 1995ac3eb9bf37f3e753f79bcf6dba1a3c3df86e)
@@ -46,4 +46,5 @@
 #include <mm/frame.h>
 #include <mm/as.h>
+#include <mm/km.h>
 #include <mm/page.h>
 #include <synch/mutex.h>
@@ -56,4 +57,5 @@
 #include <trace.h>
 #include <bitops.h>
+#include <arch/asm.h>
 
 /** This lock protects the @c pareas ordered dictionary. */
@@ -527,4 +529,22 @@
 		return dmamem_unmap_anonymous(virt);
 }
+void *pio_map(void *phys, size_t size)
+{
+#ifdef IO_SPACE_BOUNDARY
+	if (phys < IO_SPACE_BOUNDARY)
+		return phys;
+#endif
+	return (void *) km_map((uintptr_t) phys, size, KM_NATURAL_ALIGNMENT,
+	    PAGE_READ | PAGE_WRITE | PAGE_NOT_CACHEABLE);
+}
+
+void pio_unmap(void *phys, void *virt, size_t size)
+{
+#ifdef IO_SPACE_BOUNDARY
+	if (phys < IO_SPACE_BOUNDARY)
+		return;
+#endif
+	km_unmap((uintptr_t) virt, size);
+}
 
 /** @}
