xref: /openbmc/bmcweb/features/redfish/include/generated/enums/memory.hpp (revision 0ec8b83db7e8629c721c0e632de702bf1018f58f)
1*0ec8b83dSEd Tanous #pragma once
2*0ec8b83dSEd Tanous #include <nlohmann/json.hpp>
3*0ec8b83dSEd Tanous 
4*0ec8b83dSEd Tanous namespace memory
5*0ec8b83dSEd Tanous {
6*0ec8b83dSEd Tanous // clang-format off
7*0ec8b83dSEd Tanous 
8*0ec8b83dSEd Tanous enum class MemoryType{
9*0ec8b83dSEd Tanous     Invalid,
10*0ec8b83dSEd Tanous     DRAM,
11*0ec8b83dSEd Tanous     NVDIMM_N,
12*0ec8b83dSEd Tanous     NVDIMM_F,
13*0ec8b83dSEd Tanous     NVDIMM_P,
14*0ec8b83dSEd Tanous     IntelOptane,
15*0ec8b83dSEd Tanous };
16*0ec8b83dSEd Tanous 
17*0ec8b83dSEd Tanous enum class MemoryDeviceType{
18*0ec8b83dSEd Tanous     Invalid,
19*0ec8b83dSEd Tanous     DDR,
20*0ec8b83dSEd Tanous     DDR2,
21*0ec8b83dSEd Tanous     DDR3,
22*0ec8b83dSEd Tanous     DDR4,
23*0ec8b83dSEd Tanous     DDR4_SDRAM,
24*0ec8b83dSEd Tanous     DDR4E_SDRAM,
25*0ec8b83dSEd Tanous     LPDDR4_SDRAM,
26*0ec8b83dSEd Tanous     DDR3_SDRAM,
27*0ec8b83dSEd Tanous     LPDDR3_SDRAM,
28*0ec8b83dSEd Tanous     DDR2_SDRAM,
29*0ec8b83dSEd Tanous     DDR2_SDRAM_FB_DIMM,
30*0ec8b83dSEd Tanous     DDR2_SDRAM_FB_DIMM_PROBE,
31*0ec8b83dSEd Tanous     DDR_SGRAM,
32*0ec8b83dSEd Tanous     DDR_SDRAM,
33*0ec8b83dSEd Tanous     ROM,
34*0ec8b83dSEd Tanous     SDRAM,
35*0ec8b83dSEd Tanous     EDO,
36*0ec8b83dSEd Tanous     FastPageMode,
37*0ec8b83dSEd Tanous     PipelinedNibble,
38*0ec8b83dSEd Tanous     Logical,
39*0ec8b83dSEd Tanous     HBM,
40*0ec8b83dSEd Tanous     HBM2,
41*0ec8b83dSEd Tanous     HBM3,
42*0ec8b83dSEd Tanous     GDDR,
43*0ec8b83dSEd Tanous     GDDR2,
44*0ec8b83dSEd Tanous     GDDR3,
45*0ec8b83dSEd Tanous     GDDR4,
46*0ec8b83dSEd Tanous     GDDR5,
47*0ec8b83dSEd Tanous     GDDR5X,
48*0ec8b83dSEd Tanous     GDDR6,
49*0ec8b83dSEd Tanous     DDR5,
50*0ec8b83dSEd Tanous     OEM,
51*0ec8b83dSEd Tanous };
52*0ec8b83dSEd Tanous 
53*0ec8b83dSEd Tanous enum class BaseModuleType{
54*0ec8b83dSEd Tanous     Invalid,
55*0ec8b83dSEd Tanous     RDIMM,
56*0ec8b83dSEd Tanous     UDIMM,
57*0ec8b83dSEd Tanous     SO_DIMM,
58*0ec8b83dSEd Tanous     LRDIMM,
59*0ec8b83dSEd Tanous     Mini_RDIMM,
60*0ec8b83dSEd Tanous     Mini_UDIMM,
61*0ec8b83dSEd Tanous     SO_RDIMM_72b,
62*0ec8b83dSEd Tanous     SO_UDIMM_72b,
63*0ec8b83dSEd Tanous     SO_DIMM_16b,
64*0ec8b83dSEd Tanous     SO_DIMM_32b,
65*0ec8b83dSEd Tanous     Die,
66*0ec8b83dSEd Tanous };
67*0ec8b83dSEd Tanous 
68*0ec8b83dSEd Tanous enum class MemoryMedia{
69*0ec8b83dSEd Tanous     Invalid,
70*0ec8b83dSEd Tanous     DRAM,
71*0ec8b83dSEd Tanous     NAND,
72*0ec8b83dSEd Tanous     Intel3DXPoint,
73*0ec8b83dSEd Tanous     Proprietary,
74*0ec8b83dSEd Tanous };
75*0ec8b83dSEd Tanous 
76*0ec8b83dSEd Tanous enum class SecurityStates{
77*0ec8b83dSEd Tanous     Invalid,
78*0ec8b83dSEd Tanous     Enabled,
79*0ec8b83dSEd Tanous     Disabled,
80*0ec8b83dSEd Tanous     Unlocked,
81*0ec8b83dSEd Tanous     Locked,
82*0ec8b83dSEd Tanous     Frozen,
83*0ec8b83dSEd Tanous     Passphraselimit,
84*0ec8b83dSEd Tanous };
85*0ec8b83dSEd Tanous 
86*0ec8b83dSEd Tanous enum class ErrorCorrection{
87*0ec8b83dSEd Tanous     Invalid,
88*0ec8b83dSEd Tanous     NoECC,
89*0ec8b83dSEd Tanous     SingleBitECC,
90*0ec8b83dSEd Tanous     MultiBitECC,
91*0ec8b83dSEd Tanous     AddressParity,
92*0ec8b83dSEd Tanous };
93*0ec8b83dSEd Tanous 
94*0ec8b83dSEd Tanous enum class MemoryClassification{
95*0ec8b83dSEd Tanous     Invalid,
96*0ec8b83dSEd Tanous     Volatile,
97*0ec8b83dSEd Tanous     ByteAccessiblePersistent,
98*0ec8b83dSEd Tanous     Block,
99*0ec8b83dSEd Tanous };
100*0ec8b83dSEd Tanous 
101*0ec8b83dSEd Tanous enum class OperatingMemoryModes{
102*0ec8b83dSEd Tanous     Invalid,
103*0ec8b83dSEd Tanous     Volatile,
104*0ec8b83dSEd Tanous     PMEM,
105*0ec8b83dSEd Tanous     Block,
106*0ec8b83dSEd Tanous };
107*0ec8b83dSEd Tanous 
108*0ec8b83dSEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(MemoryType, {
109*0ec8b83dSEd Tanous     {MemoryType::Invalid, "Invalid"},
110*0ec8b83dSEd Tanous     {MemoryType::DRAM, "DRAM"},
111*0ec8b83dSEd Tanous     {MemoryType::NVDIMM_N, "NVDIMM_N"},
112*0ec8b83dSEd Tanous     {MemoryType::NVDIMM_F, "NVDIMM_F"},
113*0ec8b83dSEd Tanous     {MemoryType::NVDIMM_P, "NVDIMM_P"},
114*0ec8b83dSEd Tanous     {MemoryType::IntelOptane, "IntelOptane"},
115*0ec8b83dSEd Tanous });
116*0ec8b83dSEd Tanous 
117*0ec8b83dSEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(MemoryDeviceType, {
118*0ec8b83dSEd Tanous     {MemoryDeviceType::Invalid, "Invalid"},
119*0ec8b83dSEd Tanous     {MemoryDeviceType::DDR, "DDR"},
120*0ec8b83dSEd Tanous     {MemoryDeviceType::DDR2, "DDR2"},
121*0ec8b83dSEd Tanous     {MemoryDeviceType::DDR3, "DDR3"},
122*0ec8b83dSEd Tanous     {MemoryDeviceType::DDR4, "DDR4"},
123*0ec8b83dSEd Tanous     {MemoryDeviceType::DDR4_SDRAM, "DDR4_SDRAM"},
124*0ec8b83dSEd Tanous     {MemoryDeviceType::DDR4E_SDRAM, "DDR4E_SDRAM"},
125*0ec8b83dSEd Tanous     {MemoryDeviceType::LPDDR4_SDRAM, "LPDDR4_SDRAM"},
126*0ec8b83dSEd Tanous     {MemoryDeviceType::DDR3_SDRAM, "DDR3_SDRAM"},
127*0ec8b83dSEd Tanous     {MemoryDeviceType::LPDDR3_SDRAM, "LPDDR3_SDRAM"},
128*0ec8b83dSEd Tanous     {MemoryDeviceType::DDR2_SDRAM, "DDR2_SDRAM"},
129*0ec8b83dSEd Tanous     {MemoryDeviceType::DDR2_SDRAM_FB_DIMM, "DDR2_SDRAM_FB_DIMM"},
130*0ec8b83dSEd Tanous     {MemoryDeviceType::DDR2_SDRAM_FB_DIMM_PROBE, "DDR2_SDRAM_FB_DIMM_PROBE"},
131*0ec8b83dSEd Tanous     {MemoryDeviceType::DDR_SGRAM, "DDR_SGRAM"},
132*0ec8b83dSEd Tanous     {MemoryDeviceType::DDR_SDRAM, "DDR_SDRAM"},
133*0ec8b83dSEd Tanous     {MemoryDeviceType::ROM, "ROM"},
134*0ec8b83dSEd Tanous     {MemoryDeviceType::SDRAM, "SDRAM"},
135*0ec8b83dSEd Tanous     {MemoryDeviceType::EDO, "EDO"},
136*0ec8b83dSEd Tanous     {MemoryDeviceType::FastPageMode, "FastPageMode"},
137*0ec8b83dSEd Tanous     {MemoryDeviceType::PipelinedNibble, "PipelinedNibble"},
138*0ec8b83dSEd Tanous     {MemoryDeviceType::Logical, "Logical"},
139*0ec8b83dSEd Tanous     {MemoryDeviceType::HBM, "HBM"},
140*0ec8b83dSEd Tanous     {MemoryDeviceType::HBM2, "HBM2"},
141*0ec8b83dSEd Tanous     {MemoryDeviceType::HBM3, "HBM3"},
142*0ec8b83dSEd Tanous     {MemoryDeviceType::GDDR, "GDDR"},
143*0ec8b83dSEd Tanous     {MemoryDeviceType::GDDR2, "GDDR2"},
144*0ec8b83dSEd Tanous     {MemoryDeviceType::GDDR3, "GDDR3"},
145*0ec8b83dSEd Tanous     {MemoryDeviceType::GDDR4, "GDDR4"},
146*0ec8b83dSEd Tanous     {MemoryDeviceType::GDDR5, "GDDR5"},
147*0ec8b83dSEd Tanous     {MemoryDeviceType::GDDR5X, "GDDR5X"},
148*0ec8b83dSEd Tanous     {MemoryDeviceType::GDDR6, "GDDR6"},
149*0ec8b83dSEd Tanous     {MemoryDeviceType::DDR5, "DDR5"},
150*0ec8b83dSEd Tanous     {MemoryDeviceType::OEM, "OEM"},
151*0ec8b83dSEd Tanous });
152*0ec8b83dSEd Tanous 
153*0ec8b83dSEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(BaseModuleType, {
154*0ec8b83dSEd Tanous     {BaseModuleType::Invalid, "Invalid"},
155*0ec8b83dSEd Tanous     {BaseModuleType::RDIMM, "RDIMM"},
156*0ec8b83dSEd Tanous     {BaseModuleType::UDIMM, "UDIMM"},
157*0ec8b83dSEd Tanous     {BaseModuleType::SO_DIMM, "SO_DIMM"},
158*0ec8b83dSEd Tanous     {BaseModuleType::LRDIMM, "LRDIMM"},
159*0ec8b83dSEd Tanous     {BaseModuleType::Mini_RDIMM, "Mini_RDIMM"},
160*0ec8b83dSEd Tanous     {BaseModuleType::Mini_UDIMM, "Mini_UDIMM"},
161*0ec8b83dSEd Tanous     {BaseModuleType::SO_RDIMM_72b, "SO_RDIMM_72b"},
162*0ec8b83dSEd Tanous     {BaseModuleType::SO_UDIMM_72b, "SO_UDIMM_72b"},
163*0ec8b83dSEd Tanous     {BaseModuleType::SO_DIMM_16b, "SO_DIMM_16b"},
164*0ec8b83dSEd Tanous     {BaseModuleType::SO_DIMM_32b, "SO_DIMM_32b"},
165*0ec8b83dSEd Tanous     {BaseModuleType::Die, "Die"},
166*0ec8b83dSEd Tanous });
167*0ec8b83dSEd Tanous 
168*0ec8b83dSEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(MemoryMedia, {
169*0ec8b83dSEd Tanous     {MemoryMedia::Invalid, "Invalid"},
170*0ec8b83dSEd Tanous     {MemoryMedia::DRAM, "DRAM"},
171*0ec8b83dSEd Tanous     {MemoryMedia::NAND, "NAND"},
172*0ec8b83dSEd Tanous     {MemoryMedia::Intel3DXPoint, "Intel3DXPoint"},
173*0ec8b83dSEd Tanous     {MemoryMedia::Proprietary, "Proprietary"},
174*0ec8b83dSEd Tanous });
175*0ec8b83dSEd Tanous 
176*0ec8b83dSEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(SecurityStates, {
177*0ec8b83dSEd Tanous     {SecurityStates::Invalid, "Invalid"},
178*0ec8b83dSEd Tanous     {SecurityStates::Enabled, "Enabled"},
179*0ec8b83dSEd Tanous     {SecurityStates::Disabled, "Disabled"},
180*0ec8b83dSEd Tanous     {SecurityStates::Unlocked, "Unlocked"},
181*0ec8b83dSEd Tanous     {SecurityStates::Locked, "Locked"},
182*0ec8b83dSEd Tanous     {SecurityStates::Frozen, "Frozen"},
183*0ec8b83dSEd Tanous     {SecurityStates::Passphraselimit, "Passphraselimit"},
184*0ec8b83dSEd Tanous });
185*0ec8b83dSEd Tanous 
186*0ec8b83dSEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(ErrorCorrection, {
187*0ec8b83dSEd Tanous     {ErrorCorrection::Invalid, "Invalid"},
188*0ec8b83dSEd Tanous     {ErrorCorrection::NoECC, "NoECC"},
189*0ec8b83dSEd Tanous     {ErrorCorrection::SingleBitECC, "SingleBitECC"},
190*0ec8b83dSEd Tanous     {ErrorCorrection::MultiBitECC, "MultiBitECC"},
191*0ec8b83dSEd Tanous     {ErrorCorrection::AddressParity, "AddressParity"},
192*0ec8b83dSEd Tanous });
193*0ec8b83dSEd Tanous 
194*0ec8b83dSEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(MemoryClassification, {
195*0ec8b83dSEd Tanous     {MemoryClassification::Invalid, "Invalid"},
196*0ec8b83dSEd Tanous     {MemoryClassification::Volatile, "Volatile"},
197*0ec8b83dSEd Tanous     {MemoryClassification::ByteAccessiblePersistent, "ByteAccessiblePersistent"},
198*0ec8b83dSEd Tanous     {MemoryClassification::Block, "Block"},
199*0ec8b83dSEd Tanous });
200*0ec8b83dSEd Tanous 
201*0ec8b83dSEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(OperatingMemoryModes, {
202*0ec8b83dSEd Tanous     {OperatingMemoryModes::Invalid, "Invalid"},
203*0ec8b83dSEd Tanous     {OperatingMemoryModes::Volatile, "Volatile"},
204*0ec8b83dSEd Tanous     {OperatingMemoryModes::PMEM, "PMEM"},
205*0ec8b83dSEd Tanous     {OperatingMemoryModes::Block, "Block"},
206*0ec8b83dSEd Tanous });
207*0ec8b83dSEd Tanous 
208*0ec8b83dSEd Tanous }
209*0ec8b83dSEd Tanous // clang-format on
210