1*40e9b92eSEd Tanous // SPDX-License-Identifier: Apache-2.0 2*40e9b92eSEd Tanous // SPDX-FileCopyrightText: Copyright OpenBMC Authors 30ec8b83dSEd Tanous #pragma once 40ec8b83dSEd Tanous #include <nlohmann/json.hpp> 50ec8b83dSEd Tanous 60ec8b83dSEd Tanous namespace pcie_slots 70ec8b83dSEd Tanous { 80ec8b83dSEd Tanous // clang-format off 90ec8b83dSEd Tanous 100ec8b83dSEd Tanous enum class SlotTypes{ 110ec8b83dSEd Tanous Invalid, 120ec8b83dSEd Tanous FullLength, 130ec8b83dSEd Tanous HalfLength, 140ec8b83dSEd Tanous LowProfile, 150ec8b83dSEd Tanous Mini, 160ec8b83dSEd Tanous M2, 170ec8b83dSEd Tanous OEM, 180ec8b83dSEd Tanous OCP3Small, 190ec8b83dSEd Tanous OCP3Large, 200ec8b83dSEd Tanous U2, 210ec8b83dSEd Tanous }; 220ec8b83dSEd Tanous 230ec8b83dSEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(SlotTypes, { 240ec8b83dSEd Tanous {SlotTypes::Invalid, "Invalid"}, 250ec8b83dSEd Tanous {SlotTypes::FullLength, "FullLength"}, 260ec8b83dSEd Tanous {SlotTypes::HalfLength, "HalfLength"}, 270ec8b83dSEd Tanous {SlotTypes::LowProfile, "LowProfile"}, 280ec8b83dSEd Tanous {SlotTypes::Mini, "Mini"}, 290ec8b83dSEd Tanous {SlotTypes::M2, "M2"}, 300ec8b83dSEd Tanous {SlotTypes::OEM, "OEM"}, 310ec8b83dSEd Tanous {SlotTypes::OCP3Small, "OCP3Small"}, 320ec8b83dSEd Tanous {SlotTypes::OCP3Large, "OCP3Large"}, 330ec8b83dSEd Tanous {SlotTypes::U2, "U2"}, 340ec8b83dSEd Tanous }); 350ec8b83dSEd Tanous 360ec8b83dSEd Tanous } 370ec8b83dSEd Tanous // clang-format on 38