From 17ed2ed18c774878f20fed3cf033f900794827ed Mon Sep 17 00:00:00 2001 From: Matt Spinler Date: Thu, 12 Dec 2019 14:12:23 -0600 Subject: 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 Change-Id: I34059470ee117e65c5c02b684a9d916571135bfd --- configure.ac | 7 +++++++ extensions/openpower-pels/entry_points.cpp | 9 +++++++++ 2 files changed, 16 insertions(+) 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 dataIface = std::make_unique(logManager.getBus()); +#ifndef DONT_SEND_PELS_TO_HOST + std::unique_ptr hostIface = std::make_unique( + logManager.getBus().get_event(), *(dataIface.get())); + + manager = std::make_unique(logManager, std::move(dataIface), + std::move(hostIface)); +#else manager = std::make_unique(logManager, std::move(dataIface)); +#endif } REGISTER_EXTENSION_FUNCTION(pelStartup); -- cgit v1.2.3