1 // SPDX-License-Identifier: Apache-2.0 2 // SPDX-FileCopyrightText: Copyright OpenBMC Authors 3 #pragma once 4 #include <nlohmann/json.hpp> 5 6 namespace storage_controller 7 { 8 // clang-format off 9 10 enum class NVMeControllerType{ 11 Invalid, 12 Admin, 13 Discovery, 14 IO, 15 }; 16 17 enum class ANAAccessState{ 18 Invalid, 19 Optimized, 20 NonOptimized, 21 Inaccessible, 22 PersistentLoss, 23 }; 24 25 NLOHMANN_JSON_SERIALIZE_ENUM(NVMeControllerType, { 26 {NVMeControllerType::Invalid, "Invalid"}, 27 {NVMeControllerType::Admin, "Admin"}, 28 {NVMeControllerType::Discovery, "Discovery"}, 29 {NVMeControllerType::IO, "IO"}, 30 }); 31 32 NLOHMANN_JSON_SERIALIZE_ENUM(ANAAccessState, { 33 {ANAAccessState::Invalid, "Invalid"}, 34 {ANAAccessState::Optimized, "Optimized"}, 35 {ANAAccessState::NonOptimized, "NonOptimized"}, 36 {ANAAccessState::Inaccessible, "Inaccessible"}, 37 {ANAAccessState::PersistentLoss, "PersistentLoss"}, 38 }); 39 40 } 41 // clang-format on 42