diff --git a/src/Makefile.am b/src/Makefile.am
index 3de0204..4d32762 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -17,6 +17,7 @@
 libipmiblob_la_SOURCES += ipmiblob/ipmi_handler.cpp
 
 nobase_include_HEADERS += ipmiblob/internal/sys.hpp
+nobase_include_HEADERS += ipmiblob/internal/sys_interface.hpp
 libipmiblob_la_SOURCES += ipmiblob/internal/sys.cpp
 
 nobase_include_HEADERS += ipmiblob/test/blob_interface_mock.hpp
diff --git a/src/ipmiblob/internal/sys.hpp b/src/ipmiblob/internal/sys.hpp
index e80e0d8..5f21bf2 100644
--- a/src/ipmiblob/internal/sys.hpp
+++ b/src/ipmiblob/internal/sys.hpp
@@ -7,6 +7,8 @@
  * other pieces.
  */
 
+#include "sys_interface.hpp"
+
 #include <poll.h>
 #include <sys/mman.h>
 
@@ -19,26 +21,6 @@
 {
 
 /**
- * @class Sys
- * @brief Overridable direct syscall interface
- */
-class Sys
-{
-  public:
-    virtual ~Sys() = default;
-
-    virtual int open(const char* pathname, int flags) const = 0;
-    virtual int read(int fd, void* buf, std::size_t count) const = 0;
-    virtual int close(int fd) const = 0;
-    virtual void* mmap(void* addr, std::size_t length, int prot, int flags,
-                       int fd, off_t offset) const = 0;
-    virtual int munmap(void* addr, std::size_t length) const = 0;
-    virtual int getpagesize() const = 0;
-    virtual int ioctl(int fd, unsigned long request, void* param) const = 0;
-    virtual int poll(struct pollfd* fds, nfds_t nfds, int timeout) const = 0;
-};
-
-/**
  * @class SysImpl
  * @brief syscall concrete implementation
  * @details Passes through all calls to the normal linux syscalls
diff --git a/src/ipmiblob/internal/sys_interface.hpp b/src/ipmiblob/internal/sys_interface.hpp
new file mode 100644
index 0000000..ffd32b7
--- /dev/null
+++ b/src/ipmiblob/internal/sys_interface.hpp
@@ -0,0 +1,42 @@
+#pragma once
+
+/* NOTE: IIRC, wak@ is working on exposing some of this in stdplus, so we can
+ * transition when that's ready.
+ *
+ * Copied some from gpioplus to enable unit-testing of lpc nuvoton and later
+ * other pieces.
+ */
+
+#include <poll.h>
+#include <sys/mman.h>
+
+#include <cinttypes>
+#include <cstddef>
+
+namespace ipmiblob
+{
+namespace internal
+{
+
+/**
+ * @class Sys
+ * @brief Overridable direct syscall interface
+ */
+class Sys
+{
+  public:
+    virtual ~Sys() = default;
+
+    virtual int open(const char* pathname, int flags) const = 0;
+    virtual int read(int fd, void* buf, std::size_t count) const = 0;
+    virtual int close(int fd) const = 0;
+    virtual void* mmap(void* addr, std::size_t length, int prot, int flags,
+                       int fd, off_t offset) const = 0;
+    virtual int munmap(void* addr, std::size_t length) const = 0;
+    virtual int getpagesize() const = 0;
+    virtual int ioctl(int fd, unsigned long request, void* param) const = 0;
+    virtual int poll(struct pollfd* fds, nfds_t nfds, int timeout) const = 0;
+};
+
+} // namespace internal
+} // namespace ipmiblob
diff --git a/test/internal_sys_mock.hpp b/test/internal_sys_mock.hpp
index 2fe0c58..55db6b7 100644
--- a/test/internal_sys_mock.hpp
+++ b/test/internal_sys_mock.hpp
@@ -2,7 +2,7 @@
 
 #include <unistd.h>
 
-#include <ipmiblob/internal/sys.hpp>
+#include <ipmiblob/internal/sys_interface.hpp>
 
 #include <gmock/gmock.h>
 
