splits sys interface into its own file
Signed-off-by: Patrick Venture <venture@google.com>
Change-Id: Ifa657dd6e5d73b6098597cd917e7da512af26641
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>