summaryrefslogtreecommitdiffstats
path: root/src/usr/diag/prdf/common/rule/prdfPluginMap.H
diff options
context:
space:
mode:
authorZane Shelley <zshelle@us.ibm.com>2016-03-07 17:09:21 -0600
committerDaniel M. Crowell <dcrowell@us.ibm.com>2016-03-25 12:24:28 -0400
commit4dea56a10f144a1b0acb8aa9cc027870fd3c8d41 (patch)
treea015e5aa25d9d2753bdf6a01ab82e4de2527591a /src/usr/diag/prdf/common/rule/prdfPluginMap.H
parent3ce1f242a85719ac94315bedb17d00536e1bf8cf (diff)
downloadtalos-hostboot-4dea56a10f144a1b0acb8aa9cc027870fd3c8d41.tar.gz
talos-hostboot-4dea56a10f144a1b0acb8aa9cc027870fd3c8d41.zip
PRD: moved rule/ out of framework/
Change-Id: I4ddfa567abb576f7949bf8a9c4ab5ee530eed70e RTC: 140081 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/21860 Tested-by: Jenkins Server Reviewed-by: Caleb N. Palmer <cnpalmer@us.ibm.com> Reviewed-by: Benjamin J. Weisenbeck <bweisenb@us.ibm.com> Reviewed-by: William G. Hoffa <wghoffa@us.ibm.com> Reviewed-by: Zane C. Shelley <zshelle@us.ibm.com> Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/22137 Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
Diffstat (limited to 'src/usr/diag/prdf/common/rule/prdfPluginMap.H')
-rwxr-xr-xsrc/usr/diag/prdf/common/rule/prdfPluginMap.H82
1 files changed, 82 insertions, 0 deletions
diff --git a/src/usr/diag/prdf/common/rule/prdfPluginMap.H b/src/usr/diag/prdf/common/rule/prdfPluginMap.H
new file mode 100755
index 000000000..3d8c2b5d2
--- /dev/null
+++ b/src/usr/diag/prdf/common/rule/prdfPluginMap.H
@@ -0,0 +1,82 @@
+/* IBM_PROLOG_BEGIN_TAG */
+/* This is an automatically generated prolog. */
+/* */
+/* $Source: src/usr/diag/prdf/common/rule/prdfPluginMap.H $ */
+/* */
+/* OpenPOWER HostBoot Project */
+/* */
+/* Contributors Listed Below - COPYRIGHT 2016 */
+/* [+] International Business Machines Corp. */
+/* */
+/* */
+/* Licensed under the Apache License, Version 2.0 (the "License"); */
+/* you may not use this file except in compliance with the License. */
+/* You may obtain a copy of the License at */
+/* */
+/* http://www.apache.org/licenses/LICENSE-2.0 */
+/* */
+/* Unless required by applicable law or agreed to in writing, software */
+/* distributed under the License is distributed on an "AS IS" BASIS, */
+/* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or */
+/* implied. See the License for the specific language governing */
+/* permissions and limitations under the License. */
+/* */
+/* IBM_PROLOG_END_TAG */
+
+#ifndef __PRDFPLUGINMAP_H
+#define __PRDFPLUGINMAP_H
+
+#include <map>
+#include <prdfPluginDef.H>
+#include <string.h>
+#include <functional>
+
+namespace PRDF
+{
+
+class ExtensibleChip;
+
+/**
+ * @brief custom comparison functor to pass to a map container
+ * that uses char* as the key
+ */
+struct StrCompare : public std::binary_function<const char*, const char*, bool>
+{
+ public:
+ bool operator() (const char* str1, const char* str2) const
+ {
+ return strcmp(str1, str2) < 0;
+ }
+};
+
+typedef std::map<const char *, ExtensibleFunctionType *, StrCompare> PluginMap;
+
+class PluginGlobalMap;
+PluginGlobalMap & getPluginGlobalMap();
+
+class PluginGlobalMap
+{
+ private:
+ std::map<const char *, PluginMap, StrCompare> cv_globalMap;
+
+ public:
+ PluginGlobalMap() : cv_globalMap() {};
+
+ void registerPlugin(const char * i_chipName,
+ const char * i_pluginName,
+ ExtensibleFunctionType * i_plugin);
+
+ PluginMap & getPlugins(const char * i_chipName);
+};
+
+class PluginRegisterClass
+{
+ public:
+ PluginRegisterClass(const char * i_chipName,
+ const char * i_pluginName,
+ ExtensibleFunctionType * i_plugin);
+};
+
+} // end namespace PRDF
+
+#endif
OpenPOWER on IntegriCloud