Log a PEL for communication, presence mismatch, and safe state errors

Add code to log a PEL in various error scenarios. Refactor some of the
error handling to get the return code out of the driver.

Signed-off-by: Eddie James <eajames@linux.ibm.com>
Change-Id: Ifd91cfc063718e484ec8886df8357d115c6b41e3
diff --git a/occ_status.hpp b/occ_status.hpp
index fa9d2d9..224a534 100644
--- a/occ_status.hpp
+++ b/occ_status.hpp
@@ -184,8 +184,11 @@
     /** @brief Read OCC state (will trigger kernel to poll the OCC) */
     void readOccState();
 
-    /** @brief Called when device errors are detected */
-    void deviceError();
+    /** @brief Called when device errors are detected
+     *
+     * @param[in] d - description of the error that occurred
+     */
+    void deviceError(Error::Descriptor d = Error::Descriptor());
 
 #ifdef POWER10
     /** @brief Handle additional tasks when the OCCs reach active state */