PEL: Let Callout object ctor take a MRU list
A list of MRUs (Manufacturing Replaceable Units) can now be passed into
the Callout object constructor. There is also a new MRU object
constructor that will build that object with a MRU list as well.
This will be used in the future when someone wants to add MRUs to a
callout.
Signed-off-by: Matt Spinler <spinler@us.ibm.com>
Change-Id: Ic0e93e081a91ffc47dfd6642a34f02fd9a6edb8e
diff --git a/extensions/openpower-pels/mru.hpp b/extensions/openpower-pels/mru.hpp
index e2293f1..db66e3b 100644
--- a/extensions/openpower-pels/mru.hpp
+++ b/extensions/openpower-pels/mru.hpp
@@ -57,6 +57,15 @@
explicit MRU(Stream& pel);
/**
+ * @brief Constructor
+ *
+ * Creates the object using the passed in MRUs
+ *
+ * @param[in] mrus - The MRUs
+ */
+ explicit MRU(const std::vector<MRUCallout>& mrus);
+
+ /**
* @brief Flatten the object into the stream
*
* @param[in] stream - The stream to write to
@@ -84,6 +93,26 @@
}
/**
+ * @brief Returns the size field
+ *
+ * @return size_t - The size of the MRU substructure
+ */
+ size_t size() const
+ {
+ return _size;
+ }
+
+ /**
+ * @brief Returns the flags field
+ *
+ * @return uint8_t - The flags
+ */
+ uint8_t flags() const
+ {
+ return _flags;
+ }
+
+ /**
* @brief The type identifier value of this structure.
*/
static const uint16_t substructureType = 0x4D52; // "MR"