12fb10211SVijay Lobo #include "pel_entry.hpp" 22fb10211SVijay Lobo 32fb10211SVijay Lobo #include <xyz/openbmc_project/Common/error.hpp> 42fb10211SVijay Lobo 52fb10211SVijay Lobo namespace openpower 62fb10211SVijay Lobo { 72fb10211SVijay Lobo namespace pels 82fb10211SVijay Lobo { 92fb10211SVijay Lobo 102fb10211SVijay Lobo namespace common_error = sdbusplus::xyz::openbmc_project::Common::Error; 112fb10211SVijay Lobo managementSystemAck(bool value)122fb10211SVijay Lobobool PELEntry::managementSystemAck(bool value) 132fb10211SVijay Lobo { 14*6ddbf69eSWilly Tu auto current = sdbusplus::server::org::open_power::logging::pel::Entry:: 152fb10211SVijay Lobo managementSystemAck(); 162fb10211SVijay Lobo if (value != current) 172fb10211SVijay Lobo { 18*6ddbf69eSWilly Tu current = sdbusplus::server::org::open_power::logging::pel::Entry:: 192fb10211SVijay Lobo managementSystemAck(value); 202fb10211SVijay Lobo 212fb10211SVijay Lobo Repository::LogID id{Repository::LogID::Obmc(getMyId())}; 222fb10211SVijay Lobo if (auto logId = _repo->getLogID(id); logId.has_value()) 232fb10211SVijay Lobo { 242fb10211SVijay Lobo // Update HMC acknowledge bit in PEL 252fb10211SVijay Lobo _repo->setPELHMCTransState( 262fb10211SVijay Lobo logId->pelID.id, 272fb10211SVijay Lobo (value ? TransmissionState::acked : TransmissionState::newPEL)); 282fb10211SVijay Lobo } 292fb10211SVijay Lobo else 302fb10211SVijay Lobo { 312fb10211SVijay Lobo throw common_error::InvalidArgument(); 322fb10211SVijay Lobo } 332fb10211SVijay Lobo } 342fb10211SVijay Lobo return current; 352fb10211SVijay Lobo } 362fb10211SVijay Lobo 372fb10211SVijay Lobo } // namespace pels 382fb10211SVijay Lobo } // namespace openpower 39