10ec8b83dSEd Tanous #pragma once 20ec8b83dSEd Tanous #include <nlohmann/json.hpp> 30ec8b83dSEd Tanous 40ec8b83dSEd Tanous namespace log_entry 50ec8b83dSEd Tanous { 60ec8b83dSEd Tanous // clang-format off 70ec8b83dSEd Tanous 80ec8b83dSEd Tanous enum class EventSeverity{ 90ec8b83dSEd Tanous Invalid, 100ec8b83dSEd Tanous OK, 110ec8b83dSEd Tanous Warning, 120ec8b83dSEd Tanous Critical, 130ec8b83dSEd Tanous }; 140ec8b83dSEd Tanous 150ec8b83dSEd Tanous enum class LogEntryType{ 160ec8b83dSEd Tanous Invalid, 170ec8b83dSEd Tanous Event, 180ec8b83dSEd Tanous SEL, 190ec8b83dSEd Tanous Oem, 20*a8d8f9d8SEd Tanous CXL, 210ec8b83dSEd Tanous }; 220ec8b83dSEd Tanous 230ec8b83dSEd Tanous enum class LogDiagnosticDataTypes{ 240ec8b83dSEd Tanous Invalid, 250ec8b83dSEd Tanous Manager, 260ec8b83dSEd Tanous PreOS, 270ec8b83dSEd Tanous OS, 280ec8b83dSEd Tanous OEM, 290ec8b83dSEd Tanous CPER, 300ec8b83dSEd Tanous CPERSection, 310ec8b83dSEd Tanous }; 320ec8b83dSEd Tanous 330ec8b83dSEd Tanous enum class OriginatorTypes{ 340ec8b83dSEd Tanous Invalid, 350ec8b83dSEd Tanous Client, 360ec8b83dSEd Tanous Internal, 370ec8b83dSEd Tanous SupportingService, 380ec8b83dSEd Tanous }; 390ec8b83dSEd Tanous 40*a8d8f9d8SEd Tanous enum class CXLEntryType{ 41*a8d8f9d8SEd Tanous Invalid, 42*a8d8f9d8SEd Tanous DynamicCapacity, 43*a8d8f9d8SEd Tanous Informational, 44*a8d8f9d8SEd Tanous Warning, 45*a8d8f9d8SEd Tanous Failure, 46*a8d8f9d8SEd Tanous Fatal, 47*a8d8f9d8SEd Tanous }; 48*a8d8f9d8SEd Tanous 490ec8b83dSEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(EventSeverity, { 500ec8b83dSEd Tanous {EventSeverity::Invalid, "Invalid"}, 510ec8b83dSEd Tanous {EventSeverity::OK, "OK"}, 520ec8b83dSEd Tanous {EventSeverity::Warning, "Warning"}, 530ec8b83dSEd Tanous {EventSeverity::Critical, "Critical"}, 540ec8b83dSEd Tanous }); 550ec8b83dSEd Tanous 560ec8b83dSEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(LogEntryType, { 570ec8b83dSEd Tanous {LogEntryType::Invalid, "Invalid"}, 580ec8b83dSEd Tanous {LogEntryType::Event, "Event"}, 590ec8b83dSEd Tanous {LogEntryType::SEL, "SEL"}, 600ec8b83dSEd Tanous {LogEntryType::Oem, "Oem"}, 61*a8d8f9d8SEd Tanous {LogEntryType::CXL, "CXL"}, 620ec8b83dSEd Tanous }); 630ec8b83dSEd Tanous 640ec8b83dSEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(LogDiagnosticDataTypes, { 650ec8b83dSEd Tanous {LogDiagnosticDataTypes::Invalid, "Invalid"}, 660ec8b83dSEd Tanous {LogDiagnosticDataTypes::Manager, "Manager"}, 670ec8b83dSEd Tanous {LogDiagnosticDataTypes::PreOS, "PreOS"}, 680ec8b83dSEd Tanous {LogDiagnosticDataTypes::OS, "OS"}, 690ec8b83dSEd Tanous {LogDiagnosticDataTypes::OEM, "OEM"}, 700ec8b83dSEd Tanous {LogDiagnosticDataTypes::CPER, "CPER"}, 710ec8b83dSEd Tanous {LogDiagnosticDataTypes::CPERSection, "CPERSection"}, 720ec8b83dSEd Tanous }); 730ec8b83dSEd Tanous 740ec8b83dSEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(OriginatorTypes, { 750ec8b83dSEd Tanous {OriginatorTypes::Invalid, "Invalid"}, 760ec8b83dSEd Tanous {OriginatorTypes::Client, "Client"}, 770ec8b83dSEd Tanous {OriginatorTypes::Internal, "Internal"}, 780ec8b83dSEd Tanous {OriginatorTypes::SupportingService, "SupportingService"}, 790ec8b83dSEd Tanous }); 800ec8b83dSEd Tanous 81*a8d8f9d8SEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(CXLEntryType, { 82*a8d8f9d8SEd Tanous {CXLEntryType::Invalid, "Invalid"}, 83*a8d8f9d8SEd Tanous {CXLEntryType::DynamicCapacity, "DynamicCapacity"}, 84*a8d8f9d8SEd Tanous {CXLEntryType::Informational, "Informational"}, 85*a8d8f9d8SEd Tanous {CXLEntryType::Warning, "Warning"}, 86*a8d8f9d8SEd Tanous {CXLEntryType::Failure, "Failure"}, 87*a8d8f9d8SEd Tanous {CXLEntryType::Fatal, "Fatal"}, 88*a8d8f9d8SEd Tanous }); 89*a8d8f9d8SEd Tanous 900ec8b83dSEd Tanous } 910ec8b83dSEd Tanous // clang-format on 92