summaryrefslogtreecommitdiffstats
path: root/src/usr/dump/dumpCollect.H
diff options
context:
space:
mode:
Diffstat (limited to 'src/usr/dump/dumpCollect.H')
-rw-r--r--src/usr/dump/dumpCollect.H109
1 files changed, 109 insertions, 0 deletions
diff --git a/src/usr/dump/dumpCollect.H b/src/usr/dump/dumpCollect.H
new file mode 100644
index 000000000..282a13886
--- /dev/null
+++ b/src/usr/dump/dumpCollect.H
@@ -0,0 +1,109 @@
+/* IBM_PROLOG_BEGIN_TAG */
+/* This is an automatically generated prolog. */
+/* */
+/* $Source: src/usr/dump/dumpCollect.H $ */
+/* */
+/* IBM CONFIDENTIAL */
+/* */
+/* COPYRIGHT International Business Machines Corp. 2012,2013 */
+/* */
+/* p1 */
+/* */
+/* Object Code Only (OCO) source materials */
+/* Licensed Internal Code Source Materials */
+/* IBM HostBoot Licensed Internal Code */
+/* */
+/* The source code for this program is not published or otherwise */
+/* divested of its trade secrets, irrespective of what has been */
+/* deposited with the U.S. Copyright Office. */
+/* */
+/* Origin: 30 */
+/* */
+/* IBM_PROLOG_END_TAG */
+#ifndef __DUMPCOLLECT_H
+#define __DUMPCOLLECT_H
+
+#include <errl/errlentry.H>
+
+/** @file dumpCollect.H
+ * @brief Provides the interfaces to copy dump data from src to destination
+ */
+
+namespace DUMP
+{
+
+ //These structures are defined in the HDAT spec
+ //The MDST and MDDT have this format.
+ struct dumpEntry
+ {
+ uint64_t dataAddr;
+ uint64_t dataSize;
+ };
+
+
+ //The MDRT has this format.
+ struct resultsEntry
+ {
+ uint64_t srcAddr;
+ uint64_t destAddr;
+ uint64_t dataSize;
+ };
+
+
+ /**
+ * @brief This function is a wrapper function that calls
+ * getHostDataPtrs to get the MDDT, MDST, MDRT pointers
+ * and then passes those values to the copySrcToDest
+ * routine that performs the copy
+ *
+ * @param[in] void
+ *
+ * @return errlHndl_t
+ */
+ errlHndl_t doDumpCollect(void);
+
+ /**
+ * @brief This function copies the data and sizes retrieved from the
+ * MDST(source table) to the addresses indicated by the MDDT(destination
+ * table). Each write is then logged in the MDRT (results table) with
+ * source addr, destination addr and size
+ *
+ * @param[in] srcTableEntry Ptr to the first MDST entry
+ * @param[in] srcTableSize Size of the entire MDST
+ *
+ * @param[in] destTableAddr Ptr to the first MDDT entry
+ * @param[in] destTableSize Size of the entire MDDT
+ *
+ * @param[in] resultsTableAddr Ptr to the first MDRT entry
+ * @param[in] resultsTableSize Size of the entire MDRT
+ *
+ * @return errlHndl_t
+ */
+ errlHndl_t copySrcToDest(dumpEntry *srcTableEntry, uint64_t srcTableSize,
+ dumpEntry *destTableEntry, uint64_t destTableSize,
+ resultsEntry *resultsTableEntry, uint64_t resultsTableSize);
+
+ /**
+ * @brief This routine retrieves first entry of the MDST, MDDT and
+ * MDRT and the size of each of those tables.
+ *
+ * @param[out] srcTableEntry Ptr to the first MDST entry
+ * @param[out] srcTableSize Size of the entire MDST
+ *
+ * @param[out] destTableAddr Ptr to the first MDDT entry
+ * @param[out] destTableSize Size of the entire MDDT
+ *
+ * @param[out] resultsTableAddr Ptr to the first MDRT entry
+ * @param[out] resultsTableSize Size of the entire MDRT
+
+ * @return errlHndl_t
+ */
+ errlHndl_t getHostDataPtrs(dumpEntry *srcTableEntry, uint64_t &srcTableSize,
+ dumpEntry *destTableEntry, uint64_t &destTableSize,
+ resultsEntry *resultsTableEntry,uint64_t &resultsTableSize);
+
+
+}
+
+
+#endif
OpenPOWER on IntegriCloud