Update analyze function to check STATUS_WORD

The STATUS_WORD PMBus command response will be the start of the power
supply fault analysis. Update the analyze() function to read its value
and process (select) fault bits.

Signed-off-by: Brandon Wyman <bjwyman@gmail.com>
Change-Id: If7274ad237c0604a56008676ae64804a5fd2854e
diff --git a/pmbus.hpp b/pmbus.hpp
index 89c3118..5e252b2 100644
--- a/pmbus.hpp
+++ b/pmbus.hpp
@@ -52,6 +52,10 @@
 // to see if the INPUT FAULT OR WARNING bit is on.
 constexpr auto INPUT_FAULT_WARN = 0x2000;
 
+// The bit mask representing the MFRSPECIFIC fault, bit 4 of STATUS_WORD high
+// byte. A manufacturer specific fault or warning has occurred.
+constexpr auto MFR_SPECIFIC_FAULT = 0x1000;
+
 // The bit mask representing the POWER_GOOD Negated bit of the STATUS_WORD.
 constexpr auto POWER_GOOD_NEGATED = 0x0800;
 
@@ -118,6 +122,8 @@
 {
   public:
     virtual ~PMBusBase() = default;
+
+    virtual uint64_t read(const std::string& name, Type type) = 0;
 };
 
 /**
@@ -233,7 +239,7 @@
      *
      * @return uint64_t - Up to 8 bytes of data read from file.
      */
-    uint64_t read(const std::string& name, Type type);
+    uint64_t read(const std::string& name, Type type) override;
 
     /**
      * Read a string from file in sysfs.