1 // SPDX-License-Identifier: Apache-2.0 2 // SPDX-FileCopyrightText: Copyright OpenBMC Authors 3 #pragma once 4 #include <nlohmann/json.hpp> 5 6 namespace memory_chunks 7 { 8 // clang-format off 9 10 enum class AddressRangeType{ 11 Invalid, 12 Volatile, 13 PMEM, 14 Block, 15 }; 16 17 enum class MediaLocation{ 18 Invalid, 19 Local, 20 Remote, 21 Mixed, 22 }; 23 24 enum class OperationalState{ 25 Invalid, 26 Online, 27 Offline, 28 }; 29 30 NLOHMANN_JSON_SERIALIZE_ENUM(AddressRangeType, { 31 {AddressRangeType::Invalid, "Invalid"}, 32 {AddressRangeType::Volatile, "Volatile"}, 33 {AddressRangeType::PMEM, "PMEM"}, 34 {AddressRangeType::Block, "Block"}, 35 }); 36 37 NLOHMANN_JSON_SERIALIZE_ENUM(MediaLocation, { 38 {MediaLocation::Invalid, "Invalid"}, 39 {MediaLocation::Local, "Local"}, 40 {MediaLocation::Remote, "Remote"}, 41 {MediaLocation::Mixed, "Mixed"}, 42 }); 43 44 NLOHMANN_JSON_SERIALIZE_ENUM(OperationalState, { 45 {OperationalState::Invalid, "Invalid"}, 46 {OperationalState::Online, "Online"}, 47 {OperationalState::Offline, "Offline"}, 48 }); 49 50 } 51 // clang-format on 52