diff --git a/src/FruDevice.cpp b/src/FruDevice.cpp
index 620da6e..ec42eca 100644
--- a/src/FruDevice.cpp
+++ b/src/FruDevice.cpp
@@ -116,9 +116,9 @@
     }
 }
 
-static int64_t readFromEeprom(int flag __attribute__((unused)), int fd,
+static ssize_t readFromEeprom(int flag __attribute__((unused)), int fd,
                               uint16_t address __attribute__((unused)),
-                              uint16_t offset, uint8_t len, uint8_t* buf)
+                              off_t offset, size_t len, uint8_t* buf)
 {
     auto result = lseek(fd, offset, SEEK_SET);
     if (result < 0)
@@ -256,8 +256,8 @@
     return (ret == SMBUS_IOCTL_WRITE_THEN_READ_MSG_COUNT) ? msgs[1].len : -1;
 }
 
-static int64_t readBlockData(int flag, int file, uint16_t address,
-                             uint16_t offset, uint8_t len, uint8_t* buf)
+static ssize_t readBlockData(int flag, int file, uint16_t address, off_t offset,
+                             size_t len, uint8_t* buf)
 {
     if (flag == 0)
     {
diff --git a/src/FruUtils.cpp b/src/FruUtils.cpp
index 9a7c519..70f461c 100644
--- a/src/FruUtils.cpp
+++ b/src/FruUtils.cpp
@@ -590,7 +590,7 @@
 bool findFRUHeader(int flag, int file, uint16_t address,
                    const ReadBlockFunc& readBlock, const std::string& errorHelp,
                    std::array<uint8_t, I2C_SMBUS_BLOCK_MAX>& blockData,
-                   uint16_t& baseOffset)
+                   off_t& baseOffset)
 {
     if (readBlock(flag, file, address, baseOffset, 0x8, blockData.data()) < 0)
     {
@@ -638,7 +638,7 @@
                                      const std::string& errorHelp)
 {
     std::array<uint8_t, I2C_SMBUS_BLOCK_MAX> blockData;
-    uint16_t baseOffset = 0x0;
+    off_t baseOffset = 0x0;
 
     if (!findFRUHeader(flag, file, address, readBlock, errorHelp, blockData,
                        baseOffset))
@@ -685,8 +685,7 @@
 
         areaOffset *= fruBlockSize;
 
-        if (readBlock(flag, file, address,
-                      baseOffset + static_cast<uint16_t>(areaOffset), 0x2,
+        if (readBlock(flag, file, address, baseOffset + areaOffset, 0x2,
                       blockData.data()) < 0)
         {
             std::cerr << "failed to read " << errorHelp << " base offset "
@@ -717,8 +716,7 @@
         {
             // In multi-area, the area offset points to the 0th record, each
             // record has 3 bytes of the header we care about.
-            if (readBlock(flag, file, address,
-                          baseOffset + static_cast<uint16_t>(areaOffset), 0x3,
+            if (readBlock(flag, file, address, baseOffset + areaOffset, 0x3,
                           blockData.data()) < 0)
             {
                 std::cerr << "failed to read " << errorHelp << " base offset "
@@ -750,10 +748,8 @@
         size_t requestLength =
             std::min(static_cast<size_t>(I2C_SMBUS_BLOCK_MAX), fruLength);
 
-        if (readBlock(flag, file, address,
-                      baseOffset + static_cast<uint16_t>(readOffset),
-                      static_cast<uint8_t>(requestLength),
-                      blockData.data()) < 0)
+        if (readBlock(flag, file, address, baseOffset + readOffset,
+                      requestLength, blockData.data()) < 0)
         {
             std::cerr << "failed to read " << errorHelp << " base offset "
                       << baseOffset << "\n";
