diff options
author | Matt Spinler <spinler@us.ibm.com> | 2019-12-12 14:12:23 -0600 |
---|---|---|
committer | Matt Spinler <spinler@us.ibm.com> | 2020-01-27 08:25:12 -0600 |
commit | 17ed2ed18c774878f20fed3cf033f900794827ed (patch) | |
tree | e0c55eff0d9ba625da0e9b0fa58bc7172d1ae966 | |
parent | 5c350fdfb1a92ebdf33d960cc69ac16413974889 (diff) | |
download | phosphor-logging-17ed2ed18c774878f20fed3cf033f900794827ed.tar.gz phosphor-logging-17ed2ed18c774878f20fed3cf033f900794827ed.zip |
PEL: Create the PLDMInterface class
Create the PLDMInterface class and pass it into the constructor
of the Manager class. This is done at this level so that it
can be easily mocked for testing.
Add a --enable-dont-send-pels-to-host configure option for systems
that don't need PELs sent to the host. If this is set, then don't
create and pass in the PLDMInterface class, and then the Manager
class won't create a HostNotifier class to do the sending.
Signed-off-by: Matt Spinler <spinler@us.ibm.com>
Change-Id: I34059470ee117e65c5c02b684a9d916571135bfd
-rw-r--r-- | configure.ac | 7 | ||||
-rw-r--r-- | extensions/openpower-pels/entry_points.cpp | 9 |
2 files changed, 16 insertions, 0 deletions
diff --git a/configure.ac b/configure.ac index 8481175..657424d 100644 --- a/configure.ac +++ b/configure.ac @@ -172,6 +172,13 @@ AS_IF([test "x$enable_openpower_pel_extension" == "xyes"], AX_PKG_CHECK_MODULES([LIBPLDM], [libpldm])] ) +AC_ARG_ENABLE([dont-send-pels-to-host], + AS_HELP_STRING([--enable-dont-send-pels-to-host], + [Do not send PELs to the host. \ + Only applies when PELs are enabled.]), + [AX_APPEND_COMPILE_FLAGS([-DDONT_SEND_PELS_TO_HOST])] +) + AC_CONFIG_HEADERS([config.h]) AC_CONFIG_FILES([Makefile test/Makefile phosphor-rsyslog-config/Makefile]) AC_CONFIG_FILES([phosphor-logging.pc]) diff --git a/extensions/openpower-pels/entry_points.cpp b/extensions/openpower-pels/entry_points.cpp index b454d37..5c6e714 100644 --- a/extensions/openpower-pels/entry_points.cpp +++ b/extensions/openpower-pels/entry_points.cpp @@ -17,6 +17,7 @@ #include "elog_entry.hpp" #include "extensions.hpp" #include "manager.hpp" +#include "pldm_interface.hpp" namespace openpower { @@ -32,7 +33,15 @@ void pelStartup(internal::Manager& logManager) std::unique_ptr<DataInterfaceBase> dataIface = std::make_unique<DataInterface>(logManager.getBus()); +#ifndef DONT_SEND_PELS_TO_HOST + std::unique_ptr<HostInterface> hostIface = std::make_unique<PLDMInterface>( + logManager.getBus().get_event(), *(dataIface.get())); + + manager = std::make_unique<Manager>(logManager, std::move(dataIface), + std::move(hostIface)); +#else manager = std::make_unique<Manager>(logManager, std::move(dataIface)); +#endif } REGISTER_EXTENSION_FUNCTION(pelStartup); |