Move simple firmware related queries into HardwareInterface.

This change moves the following functions from utils to
HardwareInterface:
    GetHardwareClass()
    GetFirmwareVersion()
    GetECVersion()

BUG=None
TEST=unit tests

Change-Id: I20047a3fac8cca3c36730fef305751e6da3c2bb5
Reviewed-on: https://chromium-review.googlesource.com/174930
Commit-Queue: Richard Barnette <jrbarnette@chromium.org>
Tested-by: Richard Barnette <jrbarnette@chromium.org>
Reviewed-by: Chris Sosa <sosa@chromium.org>
diff --git a/hardware_interface.h b/hardware_interface.h
index 2329f64..55f19ea 100644
--- a/hardware_interface.h
+++ b/hardware_interface.h
@@ -22,9 +22,19 @@
   // or something with equivalent funcionality to interpret those.
   virtual const std::string BootDevice() = 0;
 
-  // TODO(deymo): Move other hardware-dependant functions to this interface:
-  // GetECVersion, GetFirmwareVersion, GetHardwareClass, IsNormalBootMode and
-  // IsOfficialBuild.
+  // TODO(deymo): Move other hardware-dependent functions to this interface:
+  // IsNormalBootMode and IsOfficialBuild.
+
+  // Returns the HWID or an empty string on error.
+  virtual std::string GetHardwareClass() = 0;
+
+  // Returns the firmware version or an empty string if the system is
+  // not running chrome os firmware.
+  virtual std::string GetFirmwareVersion() = 0;
+
+  // Returns the ec version or an empty string if the system is not
+  // running a custom chrome os ec.
+  virtual std::string GetECVersion() = 0;
 
   virtual ~HardwareInterface() {}
 };