fru-device: use off_t/size_t for FRU IO offsets & lengths

While the 8-bit and 16-bit types that had been used for these were
adequate for the small devices typically used for most FRU EEPROMs, some
do get within striking distance of the limits of 16-bit types, and we
might as well use the more "natural" types that are intended for these
sorts of parameters, which avoid the risk of range problems and signal
intent more clearly & explicitly.

Tested: on an ASRock Rack romed8hm3, fru-device successfully recognizes
and parses the baseboard FRU EEPROM as it did prior to this patch.

Signed-off-by: Zev Weiss <zev@bewilderbeest.net>
Change-Id: I38251fec2857923356d324e01af77795186560eb
diff --git a/include/FruUtils.hpp b/include/FruUtils.hpp
index beab032..8d94876 100644
--- a/include/FruUtils.hpp
+++ b/include/FruUtils.hpp
@@ -84,8 +84,8 @@
 }
 
 using ReadBlockFunc =
-    std::function<int64_t(int flag, int file, uint16_t address, uint16_t offset,
-                          uint8_t length, uint8_t* outBuf)>;
+    std::function<ssize_t(int flag, int file, uint16_t address, off_t offset,
+                          size_t length, uint8_t* outBuf)>;
 
 inline const std::string& getFruAreaName(fruAreas area)
 {
@@ -145,7 +145,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);
 
 /// \brief Read and validate FRU contents.
 /// \param flag the flag required for raw i2c