xref: /openbmc/bmcweb/redfish-core/include/generated/enums/pcie_function.hpp (revision 40e9b92ec19acffb46f83a6e55b18974da5d708e)
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_function
7 {
8 // clang-format off
9 
10 enum class DeviceClass{
11     Invalid,
12     UnclassifiedDevice,
13     MassStorageController,
14     NetworkController,
15     DisplayController,
16     MultimediaController,
17     MemoryController,
18     Bridge,
19     CommunicationController,
20     GenericSystemPeripheral,
21     InputDeviceController,
22     DockingStation,
23     Processor,
24     SerialBusController,
25     WirelessController,
26     IntelligentController,
27     SatelliteCommunicationsController,
28     EncryptionController,
29     SignalProcessingController,
30     ProcessingAccelerators,
31     NonEssentialInstrumentation,
32     Coprocessor,
33     UnassignedClass,
34     Other,
35 };
36 
37 enum class FunctionType{
38     Invalid,
39     Physical,
40     Virtual,
41 };
42 
43 enum class FunctionProtocol{
44     Invalid,
45     PCIe,
46     CXL,
47 };
48 
49 NLOHMANN_JSON_SERIALIZE_ENUM(DeviceClass, {
50     {DeviceClass::Invalid, "Invalid"},
51     {DeviceClass::UnclassifiedDevice, "UnclassifiedDevice"},
52     {DeviceClass::MassStorageController, "MassStorageController"},
53     {DeviceClass::NetworkController, "NetworkController"},
54     {DeviceClass::DisplayController, "DisplayController"},
55     {DeviceClass::MultimediaController, "MultimediaController"},
56     {DeviceClass::MemoryController, "MemoryController"},
57     {DeviceClass::Bridge, "Bridge"},
58     {DeviceClass::CommunicationController, "CommunicationController"},
59     {DeviceClass::GenericSystemPeripheral, "GenericSystemPeripheral"},
60     {DeviceClass::InputDeviceController, "InputDeviceController"},
61     {DeviceClass::DockingStation, "DockingStation"},
62     {DeviceClass::Processor, "Processor"},
63     {DeviceClass::SerialBusController, "SerialBusController"},
64     {DeviceClass::WirelessController, "WirelessController"},
65     {DeviceClass::IntelligentController, "IntelligentController"},
66     {DeviceClass::SatelliteCommunicationsController, "SatelliteCommunicationsController"},
67     {DeviceClass::EncryptionController, "EncryptionController"},
68     {DeviceClass::SignalProcessingController, "SignalProcessingController"},
69     {DeviceClass::ProcessingAccelerators, "ProcessingAccelerators"},
70     {DeviceClass::NonEssentialInstrumentation, "NonEssentialInstrumentation"},
71     {DeviceClass::Coprocessor, "Coprocessor"},
72     {DeviceClass::UnassignedClass, "UnassignedClass"},
73     {DeviceClass::Other, "Other"},
74 });
75 
76 NLOHMANN_JSON_SERIALIZE_ENUM(FunctionType, {
77     {FunctionType::Invalid, "Invalid"},
78     {FunctionType::Physical, "Physical"},
79     {FunctionType::Virtual, "Virtual"},
80 });
81 
82 NLOHMANN_JSON_SERIALIZE_ENUM(FunctionProtocol, {
83     {FunctionProtocol::Invalid, "Invalid"},
84     {FunctionProtocol::PCIe, "PCIe"},
85     {FunctionProtocol::CXL, "CXL"},
86 });
87 
88 }
89 // clang-format on
90