1 #include "pel_entry.hpp" 2 3 #include "pel_types.hpp" 4 #include "repository.hpp" 5 6 #include <xyz/openbmc_project/Common/error.hpp> 7 8 namespace openpower 9 { 10 namespace pels 11 { 12 13 namespace common_error = sdbusplus::xyz::openbmc_project::Common::Error; 14 managementSystemAck(bool value)15bool PELEntry::managementSystemAck(bool value) 16 { 17 auto current = sdbusplus::server::org::open_power::logging::pel::Entry:: 18 managementSystemAck(); 19 if (value != current) 20 { 21 current = sdbusplus::server::org::open_power::logging::pel::Entry:: 22 managementSystemAck(value); 23 24 Repository::LogID id{Repository::LogID::Obmc(getMyId())}; 25 if (auto logId = _repo->getLogID(id); logId.has_value()) 26 { 27 // Update HMC acknowledge bit in PEL 28 _repo->setPELHMCTransState( 29 logId->pelID.id, 30 (value ? TransmissionState::acked : TransmissionState::newPEL)); 31 } 32 else 33 { 34 throw common_error::InvalidArgument(); 35 } 36 } 37 return current; 38 } 39 40 } // namespace pels 41 } // namespace openpower 42