1*40e9b92eSEd Tanous // SPDX-License-Identifier: Apache-2.0 2*40e9b92eSEd Tanous // SPDX-FileCopyrightText: Copyright OpenBMC Authors 3853c0dc5SEd Tanous #pragma once 4853c0dc5SEd Tanous #include <nlohmann/json.hpp> 5853c0dc5SEd Tanous 6853c0dc5SEd Tanous namespace memory_chunks 7853c0dc5SEd Tanous { 8853c0dc5SEd Tanous // clang-format off 9853c0dc5SEd Tanous 10853c0dc5SEd Tanous enum class AddressRangeType{ 11853c0dc5SEd Tanous Invalid, 12853c0dc5SEd Tanous Volatile, 13853c0dc5SEd Tanous PMEM, 14853c0dc5SEd Tanous Block, 15853c0dc5SEd Tanous }; 16853c0dc5SEd Tanous 17a8d8f9d8SEd Tanous enum class MediaLocation{ 18a8d8f9d8SEd Tanous Invalid, 19a8d8f9d8SEd Tanous Local, 20a8d8f9d8SEd Tanous Remote, 21a8d8f9d8SEd Tanous Mixed, 22a8d8f9d8SEd Tanous }; 23a8d8f9d8SEd Tanous 24a8d8f9d8SEd Tanous enum class OperationalState{ 25a8d8f9d8SEd Tanous Invalid, 26a8d8f9d8SEd Tanous Online, 27a8d8f9d8SEd Tanous Offline, 28a8d8f9d8SEd Tanous }; 29a8d8f9d8SEd Tanous 30853c0dc5SEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(AddressRangeType, { 31853c0dc5SEd Tanous {AddressRangeType::Invalid, "Invalid"}, 32853c0dc5SEd Tanous {AddressRangeType::Volatile, "Volatile"}, 33853c0dc5SEd Tanous {AddressRangeType::PMEM, "PMEM"}, 34853c0dc5SEd Tanous {AddressRangeType::Block, "Block"}, 35853c0dc5SEd Tanous }); 36853c0dc5SEd Tanous 37a8d8f9d8SEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(MediaLocation, { 38a8d8f9d8SEd Tanous {MediaLocation::Invalid, "Invalid"}, 39a8d8f9d8SEd Tanous {MediaLocation::Local, "Local"}, 40a8d8f9d8SEd Tanous {MediaLocation::Remote, "Remote"}, 41a8d8f9d8SEd Tanous {MediaLocation::Mixed, "Mixed"}, 42a8d8f9d8SEd Tanous }); 43a8d8f9d8SEd Tanous 44a8d8f9d8SEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(OperationalState, { 45a8d8f9d8SEd Tanous {OperationalState::Invalid, "Invalid"}, 46a8d8f9d8SEd Tanous {OperationalState::Online, "Online"}, 47a8d8f9d8SEd Tanous {OperationalState::Offline, "Offline"}, 48a8d8f9d8SEd Tanous }); 49a8d8f9d8SEd Tanous 50853c0dc5SEd Tanous } 51853c0dc5SEd Tanous // clang-format on 52