1 #include "oem/ibm/libpldm/state_set_oem_ibm.h"
2 
3 #include <libpldm/entity.h>
4 #include <libpldm/entity_oem_ibm.h>
5 
6 /** @brief PLDM OEM IBM Code Update possible state set values
7  */
8 enum pldm_oem_ibm_cu_state_set_values
9 {
10     OEM_IBM_STATE_SET_CU_START = 1,
11     OEM_IBM_STATE_SET_CU_END = 2,
12     OEM_IBM_STATE_SET_CU_FAIL = 3,
13     OEM_IBM_STATE_SET_CU_ABORT = 4,
14     OEM_IBM_STATE_SET_CU_ACCEPT = 5,
15     OEM_IBM_STATE_SET_CU_REJECT = 6,
16 };
17 
18 /** @brief PLDM OEM IBM Verification possible state set values
19  */
20 enum pldm_oem_ibm_verification_state_set_values
21 {
22     OEM_IBM_STATE_SET_VERFICATION_VALID = 0,
23     OEM_IBM_STATE_SET_VERFICATION_ENTITLEMENT_FAIL = 1,
24     OEM_IBM_STATE_SET_VERFICATION_BANNED_PLATFORM_FAIL = 2,
25     OEM_IBM_STATE_SET_VERFICATION_MIN_MIF_FAIL = 4,
26 };
27 
28 /** @brief PLDM OEM IBM system power state possible state set values
29  */
30 enum pldm_oem_ibm_sys_power_state_set_values
31 {
32     OEM_IBM_STATE_SET_SYS_PWR_STATE_RECYCLE_HARD = 1,
33 };
34 
35 /** @brief PLDM OEM IBM boot state possible state set values
36  */
37 enum pldm_oem_ibm_boot_state_set_values
38 {
39     OEM_IBM_STATE_SET_BOOT_STATE_P_SIDE = 1,
40     OEM_IBM_STATE_SET_BOOT_STATE_T_SIDE = 2,
41 };
42 
43 /** @brief Map for PLDM OEM IBM Entity Types
44  */
45 extern const std::map<uint8_t, std::string> OemIBMEntityType{
46     {PLDM_OEM_IBM_ENTITY_FIRMWARE_UPDATE, "OEM IBM Firmware Update"},
47     {PLDM_OEM_IBM_ENTITY_TPM, "OEM IBM Trusted Platform Module"}};
48 
49 /** @brief Map for PLDM OEM IBM State Sets
50  */
51 extern const std::map<uint16_t, std::string> OemIBMstateSet{
52     {PLDM_OEM_IBM_FIRMWARE_UPDATE_STATE, "OEM IBM Firmware Update State"},
53     {PLDM_OEM_IBM_BOOT_STATE, "OEM IBM Boot State"},
54     {PLDM_OEM_IBM_VERIFICATION_STATE, "OEM IBM Verification State"},
55     {PLDM_OEM_IBM_SYSTEM_POWER_STATE, "OEM IBM System Power State"}};
56 
57 /** @brief Map for PLDM OEM IBM firmware update possible state values
58  */
59 extern const std::map<uint8_t, std::string> SetOemIBMFWUpdateStateValues{
60     {OEM_IBM_STATE_SET_CU_START, "Start"},
61     {OEM_IBM_STATE_SET_CU_END, "End"},
62     {OEM_IBM_STATE_SET_CU_FAIL, "Fail"},
63     {OEM_IBM_STATE_SET_CU_ABORT, "Abort"},
64     {OEM_IBM_STATE_SET_CU_ACCEPT, "Accept"},
65     {OEM_IBM_STATE_SET_CU_REJECT, "Reject"}};
66 
67 /** @brief Map for PLDM OEM IBM verification state possible state values
68  */
69 extern const std::map<uint8_t, std::string> SetOemIBMVerStateValues{
70     {OEM_IBM_STATE_SET_VERFICATION_VALID, "Valid"},
71     {OEM_IBM_STATE_SET_VERFICATION_ENTITLEMENT_FAIL, "Entitlement Fail"},
72     {OEM_IBM_STATE_SET_VERFICATION_BANNED_PLATFORM_FAIL,
73      "Banned Platform Fail"},
74     {OEM_IBM_STATE_SET_VERFICATION_MIN_MIF_FAIL, "Minimum MIF Fail"}};
75 
76 /** @brief Map for PLDM OEM IBM systerm power state possible state values
77  */
78 extern const std::map<uint8_t, std::string> SetOemIBMSysPowerStatesValues{
79     {OEM_IBM_STATE_SET_SYS_PWR_STATE_RECYCLE_HARD, "Power Cycle Hard"}};
80 
81 /** @brief Map for PLDM OEM IBM boot state possible state values
82  */
83 extern const std::map<uint8_t, std::string> SetOemIBMBootStateValues{
84     {OEM_IBM_STATE_SET_BOOT_STATE_P_SIDE, "P Side"},
85     {OEM_IBM_STATE_SET_BOOT_STATE_T_SIDE, "T side"}};
86 
87 /** @brief Map for populating PLDM OEM IBM state sets with possible state values
88  */
89 extern const std::map<uint16_t, const std::map<uint8_t, std::string>>
90     populateOemIBMStateMaps{
91         {PLDM_OEM_IBM_VERIFICATION_STATE, SetOemIBMVerStateValues},
92         {PLDM_OEM_IBM_SYSTEM_POWER_STATE, SetOemIBMSysPowerStatesValues},
93         {PLDM_OEM_IBM_BOOT_STATE, SetOemIBMBootStateValues},
94         {PLDM_OEM_IBM_FIRMWARE_UPDATE_STATE, SetOemIBMFWUpdateStateValues},
95     };
96