Add RAS data parser handling for getting RAS data flags
In the future we will be supporting an additional 'flags'
type stored in the RAS data files for specific bits. This
adds the handling to the RAS data parser to get those flags.
Signed-off-by: Caleb Palmer <cnpalmer@us.ibm.com>
Change-Id: Ie7889135ae7a643fec287565143a8ee7edc33777
diff --git a/analyzer/ras-data/ras-data-parser.hpp b/analyzer/ras-data/ras-data-parser.hpp
index 60d9ab7..17908d4 100644
--- a/analyzer/ras-data/ras-data-parser.hpp
+++ b/analyzer/ras-data/ras-data-parser.hpp
@@ -8,7 +8,6 @@
namespace analyzer
{
-
/**
* @brief Manages the RAS data files and resolves service actions required for
* error signatures.
@@ -22,6 +21,22 @@
initDataFiles();
}
+ /** Define all RAS data flags that may be associated with a signature */
+ enum RasDataFlags
+ {
+ SUE_SOURCE,
+ SUE_SEEN,
+ CS_POSSIBLE,
+ RECOVERED_ERROR,
+ INFORMATIONAL_ONLY,
+ MNFG_INFORMATIONAL_ONLY,
+ MASK_BUT_DONT_CLEAR,
+ CRC_RELATED_ERR,
+ CRC_ROOT_CAUSE,
+ ODP_DATA_CORRUPT_SIDE_EFFECT,
+ ODP_DATA_CORRUPT_ROOT_CAUSE,
+ };
+
private:
/** @brief The RAS data files. */
std::map<libhei::ChipType_t, nlohmann::json> iv_dataFiles;
@@ -35,6 +50,16 @@
std::shared_ptr<Resolution>
getResolution(const libhei::Signature& i_signature);
+ /**
+ * @brief Initializes the signature list within the input isolation data
+ * with their appropriate flags based on the RAS data files.
+ * @param i_signature The target error signature.
+ * @param i_flag The flag to check for
+ * @return True if the flag is set for the given signature, else false.
+ */
+ bool isFlagSet(const libhei::Signature& i_signature,
+ const RasDataFlags i_flag);
+
private:
/**
* @brief Parses all of the RAS data JSON files and validates them against