140e9b92eSEd Tanous // SPDX-License-Identifier: Apache-2.0 240e9b92eSEd Tanous // SPDX-FileCopyrightText: Copyright OpenBMC Authors 30ec8b83dSEd Tanous #pragma once 40ec8b83dSEd Tanous #include <nlohmann/json.hpp> 50ec8b83dSEd Tanous 60ec8b83dSEd Tanous namespace log_entry 70ec8b83dSEd Tanous { 80ec8b83dSEd Tanous // clang-format off 90ec8b83dSEd Tanous 100ec8b83dSEd Tanous enum class EventSeverity{ 110ec8b83dSEd Tanous Invalid, 120ec8b83dSEd Tanous OK, 130ec8b83dSEd Tanous Warning, 140ec8b83dSEd Tanous Critical, 150ec8b83dSEd Tanous }; 160ec8b83dSEd Tanous 170ec8b83dSEd Tanous enum class LogEntryType{ 180ec8b83dSEd Tanous Invalid, 190ec8b83dSEd Tanous Event, 200ec8b83dSEd Tanous SEL, 210ec8b83dSEd Tanous Oem, 22a8d8f9d8SEd Tanous CXL, 230ec8b83dSEd Tanous }; 240ec8b83dSEd Tanous 250ec8b83dSEd Tanous enum class LogDiagnosticDataTypes{ 260ec8b83dSEd Tanous Invalid, 270ec8b83dSEd Tanous Manager, 280ec8b83dSEd Tanous PreOS, 290ec8b83dSEd Tanous OS, 300ec8b83dSEd Tanous OEM, 310ec8b83dSEd Tanous CPER, 320ec8b83dSEd Tanous CPERSection, 33*d125652eSGunnar Mills Device, 340ec8b83dSEd Tanous }; 350ec8b83dSEd Tanous 360ec8b83dSEd Tanous enum class OriginatorTypes{ 370ec8b83dSEd Tanous Invalid, 380ec8b83dSEd Tanous Client, 390ec8b83dSEd Tanous Internal, 400ec8b83dSEd Tanous SupportingService, 410ec8b83dSEd Tanous }; 420ec8b83dSEd Tanous 43a8d8f9d8SEd Tanous enum class CXLEntryType{ 44a8d8f9d8SEd Tanous Invalid, 45a8d8f9d8SEd Tanous DynamicCapacity, 46a8d8f9d8SEd Tanous Informational, 47a8d8f9d8SEd Tanous Warning, 48a8d8f9d8SEd Tanous Failure, 49a8d8f9d8SEd Tanous Fatal, 50a8d8f9d8SEd Tanous }; 51a8d8f9d8SEd Tanous 520ec8b83dSEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(EventSeverity, { 530ec8b83dSEd Tanous {EventSeverity::Invalid, "Invalid"}, 540ec8b83dSEd Tanous {EventSeverity::OK, "OK"}, 550ec8b83dSEd Tanous {EventSeverity::Warning, "Warning"}, 560ec8b83dSEd Tanous {EventSeverity::Critical, "Critical"}, 570ec8b83dSEd Tanous }); 580ec8b83dSEd Tanous 590ec8b83dSEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(LogEntryType, { 600ec8b83dSEd Tanous {LogEntryType::Invalid, "Invalid"}, 610ec8b83dSEd Tanous {LogEntryType::Event, "Event"}, 620ec8b83dSEd Tanous {LogEntryType::SEL, "SEL"}, 630ec8b83dSEd Tanous {LogEntryType::Oem, "Oem"}, 64a8d8f9d8SEd Tanous {LogEntryType::CXL, "CXL"}, 650ec8b83dSEd Tanous }); 660ec8b83dSEd Tanous 670ec8b83dSEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(LogDiagnosticDataTypes, { 680ec8b83dSEd Tanous {LogDiagnosticDataTypes::Invalid, "Invalid"}, 690ec8b83dSEd Tanous {LogDiagnosticDataTypes::Manager, "Manager"}, 700ec8b83dSEd Tanous {LogDiagnosticDataTypes::PreOS, "PreOS"}, 710ec8b83dSEd Tanous {LogDiagnosticDataTypes::OS, "OS"}, 720ec8b83dSEd Tanous {LogDiagnosticDataTypes::OEM, "OEM"}, 730ec8b83dSEd Tanous {LogDiagnosticDataTypes::CPER, "CPER"}, 740ec8b83dSEd Tanous {LogDiagnosticDataTypes::CPERSection, "CPERSection"}, 75*d125652eSGunnar Mills {LogDiagnosticDataTypes::Device, "Device"}, 760ec8b83dSEd Tanous }); 770ec8b83dSEd Tanous 780ec8b83dSEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(OriginatorTypes, { 790ec8b83dSEd Tanous {OriginatorTypes::Invalid, "Invalid"}, 800ec8b83dSEd Tanous {OriginatorTypes::Client, "Client"}, 810ec8b83dSEd Tanous {OriginatorTypes::Internal, "Internal"}, 820ec8b83dSEd Tanous {OriginatorTypes::SupportingService, "SupportingService"}, 830ec8b83dSEd Tanous }); 840ec8b83dSEd Tanous 85a8d8f9d8SEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(CXLEntryType, { 86a8d8f9d8SEd Tanous {CXLEntryType::Invalid, "Invalid"}, 87a8d8f9d8SEd Tanous {CXLEntryType::DynamicCapacity, "DynamicCapacity"}, 88a8d8f9d8SEd Tanous {CXLEntryType::Informational, "Informational"}, 89a8d8f9d8SEd Tanous {CXLEntryType::Warning, "Warning"}, 90a8d8f9d8SEd Tanous {CXLEntryType::Failure, "Failure"}, 91a8d8f9d8SEd Tanous {CXLEntryType::Fatal, "Fatal"}, 92a8d8f9d8SEd Tanous }); 93a8d8f9d8SEd Tanous 940ec8b83dSEd Tanous } 950ec8b83dSEd Tanous // clang-format on 96