diff --git a/test/Makefile.am b/test/Makefile.am
index 9be5ae4..431b617 100644
--- a/test/Makefile.am
+++ b/test/Makefile.am
@@ -29,6 +29,7 @@
 	file_handler_unittest \
 	tools_blob_unittest \
 	tools_bt_unittest \
+	tools_lpc_unittest \
 	tools_updater_unittest \
 	tools_ipmi_unittest \
 	tools_ipmi_error_unittest
@@ -77,6 +78,9 @@
 tools_bt_unittest_SOURCES = tools_bt_unittest.cpp
 tools_bt_unittest_LDADD = $(top_builddir)/tools/bt.o
 
+tools_lpc_unittest_SOURCES = tools_lpc_unittest.cpp
+tools_lpc_unittest_LDADD = $(top_builddir)/tools/lpc.o
+
 tools_updater_unittest_SOURCES = tools_updater_unittest.cpp
 tools_updater_unittest_LDADD = $(top_builddir)/tools/updater.o
 
diff --git a/test/tools_lpc_unittest.cpp b/test/tools_lpc_unittest.cpp
new file mode 100644
index 0000000..5b7ddb1
--- /dev/null
+++ b/test/tools_lpc_unittest.cpp
@@ -0,0 +1,34 @@
+#include "blob_interface_mock.hpp"
+#include "internal_sys_mock.hpp"
+#include "lpc.hpp"
+
+#include <cstring>
+
+#include <gtest/gtest.h>
+
+namespace host_tool
+{
+
+using ::testing::ContainerEq;
+
+TEST(LpcHandleTest, verifySendsFileContents)
+{
+    BlobInterfaceMock blobMock;
+
+    LpcDataHandler handler(&blobMock);
+    std::uint16_t session = 0xbeef;
+    std::string filePath = "/asdf";
+
+    LpcRegion host_lpc_buf;
+    host_lpc_buf.address = 0xfedc1000;
+    host_lpc_buf.length = 0x1000;
+
+    std::vector<std::uint8_t> bytes(sizeof(host_lpc_buf));
+    std::memcpy(bytes.data(), &host_lpc_buf, sizeof(host_lpc_buf));
+
+    EXPECT_CALL(blobMock, writeMeta(session, 0, ContainerEq(bytes)));
+
+    EXPECT_FALSE(handler.sendContents(filePath, session));
+}
+
+} // namespace host_tool
diff --git a/tools/lpc.cpp b/tools/lpc.cpp
index 97b7902..7a5faa2 100644
--- a/tools/lpc.cpp
+++ b/tools/lpc.cpp
@@ -16,12 +16,35 @@
 
 #include "lpc.hpp"
 
+#include <cstring>
+
 namespace host_tool
 {
 
 bool LpcDataHandler::sendContents(const std::string& input,
                                   std::uint16_t session)
 {
+    /* TODO: Add mechanism for configuring this. */
+    LpcRegion host_lpc_buf;
+
+    /* TODO: Remove hard-coded configuration used with test machine. */
+    host_lpc_buf.address = 0xfedc1000;
+    host_lpc_buf.length = 0x1000;
+
+    std::vector<std::uint8_t> payload(sizeof(host_lpc_buf));
+    std::memcpy(payload.data(), &host_lpc_buf, sizeof(host_lpc_buf));
+
+    blob->writeMeta(session, 0x00, payload);
+
+    /* TODO: Call sessionstat and see if the metadata confirms the region was
+     * mapped successfully, once the lpc data handler implements it.
+     */
+
+    /* todo:
+     * configure memory region (somehow)
+     * copy contents from file to memory region
+     * send external chunk (writeBlob) until it's all sent.
+     */
     return false;
 }
 
diff --git a/tools/lpc.hpp b/tools/lpc.hpp
index 913fc5d..9e9c8b3 100644
--- a/tools/lpc.hpp
+++ b/tools/lpc.hpp
@@ -3,9 +3,19 @@
 #include "blob_interface.hpp"
 #include "interface.hpp"
 
+#include <cstdint>
+
 namespace host_tool
 {
 
+struct LpcRegion
+{
+    /* Host LPC address at which the chunk is to be mapped. */
+    std::uint32_t address;
+    /* Size of the chunk to be mapped. */
+    std::uint32_t length;
+};
+
 class LpcDataHandler : public DataInterface
 {
   public:
