Created primary API wrappers for the Isolator class
This is an attempt to abstract the internal workings of the isolator
class from the user application.
Change-Id: Ic898b202da6a0ddb368411c11218ca019d1f23fd
Signed-off-by: Zane Shelley <zshelle@us.ibm.com>
diff --git a/src/hei_isolation_data.hpp b/src/hei_isolation_data.hpp
index 57344bd..66de234 100644
--- a/src/hei_isolation_data.hpp
+++ b/src/hei_isolation_data.hpp
@@ -1,6 +1,7 @@
#pragma once
-#include "hei_includes.hpp"
+#include <hei_includes.hpp>
+#include <chip_data/hei_chip_data.hpp>
namespace libhei
{
@@ -14,8 +15,17 @@
{
public:
- /** @brief Default constructor. */
- IsolationData() = default;
+ /**
+ * @brief Default constructor.
+ * @param i_chip See iv_chip.
+ * @param i_chipType See iv_chipType.
+ */
+ IsolationData( void * i_chip, ChipType_t i_chipType ) :
+ iv_chip(i_chip), iv_chipType(i_chipType)
+ {}
+
+ /** @brief Destructor. */
+ ~IsolationData() = default;
/** @brief Copy constructor. */
IsolationData( const IsolationData & ) = default;
@@ -23,11 +33,35 @@
/** @brief Assignment operator. */
IsolationData & operator=( const IsolationData & ) = default;
- /** @brief Destructor. */
- ~IsolationData() = default;
+ /** @return The target chip pointer. */
+ void * getChip() const { return iv_chip; }
+
+ /** @return The target chip type. */
+ ChipType_t getChipType() const { return iv_chipType; }
+
+ /** @brief Flushes the data to ensure a clean slate for next isolation. */
+ void clear() {}
private:
+ /**
+ * This is simply a pointer to a user application object that represents
+ * the target chip. The isolator does not know anything about this object
+ * nor how to use it. This parameter's only purpose is to eventually get
+ * passed back to the user application in a hardware access operation, which
+ * will be defined by the user application.
+ */
+ void * const iv_chip;
+
+ /**
+ * Each Chip Data File contains a unique chip type identifier. The user
+ * application will need to input this value so that the isolator will know
+ * which set of the isolation objects to reference.
+ */
+ const ChipType_t iv_chipType;
+
+ // TODO: add error signature list and register dump.
+
}; // end class IsolationData
} // end namespace libhei