diff --git a/tools/io.cpp b/tools/io.cpp
new file mode 100644
index 0000000..e25216e
--- /dev/null
+++ b/tools/io.cpp
@@ -0,0 +1,47 @@
+#include "io.hpp"
+
+#include "internal/sys.hpp"
+
+#include <fcntl.h>
+
+#include <cstdint>
+#include <cstring>
+#include <string>
+
+namespace host_tool
+{
+
+const std::string DevMemDevice::devMemPath = "/dev/mem";
+
+bool DevMemDevice::write(const std::size_t offset, const std::size_t length,
+                         const void* const source)
+{
+    if (!opened)
+    {
+        devMemFd = sys->open(devMemPath.c_str(), O_RDWR);
+        if (devMemFd < 0)
+        {
+            return false;
+        }
+
+        opened = true;
+    }
+
+    // addr, length, prot, flags, fd, offset
+    devMemMapped =
+        sys->mmap(0, length, PROT_WRITE, MAP_SHARED, devMemFd, offset);
+    if (devMemMapped == MAP_FAILED)
+    {
+        return false; /* but leave the file open. */
+    }
+
+    /* Copy the bytes. */
+    std::memcpy(devMemMapped, source, length);
+
+    /* Close the map between writes for now. */
+    sys->munmap(devMemMapped, length);
+
+    return true;
+}
+
+} // namespace host_tool
