1 // SPDX-License-Identifier: Apache-2.0 2 // SPDX-FileCopyrightText: Copyright OpenBMC Authors 3 #pragma once 4 #include <nlohmann/json.hpp> 5 6 namespace pcie_slots 7 { 8 // clang-format off 9 10 enum class SlotTypes{ 11 Invalid, 12 FullLength, 13 HalfLength, 14 LowProfile, 15 Mini, 16 M2, 17 OEM, 18 OCP3Small, 19 OCP3Large, 20 U2, 21 }; 22 23 NLOHMANN_JSON_SERIALIZE_ENUM(SlotTypes, { 24 {SlotTypes::Invalid, "Invalid"}, 25 {SlotTypes::FullLength, "FullLength"}, 26 {SlotTypes::HalfLength, "HalfLength"}, 27 {SlotTypes::LowProfile, "LowProfile"}, 28 {SlotTypes::Mini, "Mini"}, 29 {SlotTypes::M2, "M2"}, 30 {SlotTypes::OEM, "OEM"}, 31 {SlotTypes::OCP3Small, "OCP3Small"}, 32 {SlotTypes::OCP3Large, "OCP3Large"}, 33 {SlotTypes::U2, "U2"}, 34 }); 35 36 } 37 // clang-format on 38