Add PDRType in string format and mention stateSetID value
./pldmtool platform GetPDR -d 1
nextRecordHandle: 2
responseCount: 29
recordHandle: 1
PDRHeaderVersion: 1
PDRType: State Effecter PDR(11) --> latest change
recordChangeNumber: 0
dataLength: 19
PLDMTerminusHandle: 0
effecterID: 1
entityType: Virtual Machine Manager
entityInstanceNumber: 0
containerID: 0
effecterSemanticID: 0
effecterInit: noInit
effecterDescriptionPDR: false
compositeEffecterCount: 1
stateSetID: Boot Progress(196) --> latest change
possibleStatesSize: 1
possibleStates: 1 2
Signed-off-by: Sridevi Ramesh <sridevra@in.ibm.com>
Change-Id: If4cfffdcbc10d397acd1521af26bbd50fa35df5d
diff --git a/libpldm/platform.h b/libpldm/platform.h
index e1b5b23..ed175a9 100644
--- a/libpldm/platform.h
+++ b/libpldm/platform.h
@@ -120,11 +120,28 @@
/** @brief PLDM PDR types
*/
enum pldm_pdr_types {
+ PLDM_TERMINUS_LOCATOR_PDR = 1,
+ PLDM_NUMERIC_SENSOR_PDR = 2,
+ PLDM_NUMERIC_SENSOR_INITIALIZATION_PDR = 3,
PLDM_STATE_SENSOR_PDR = 4,
+ PLDM_STATE_SENSOR_INITIALIZATION_PDR = 5,
+ PLDM_SENSOR_AUXILIARY_NAMES_PDR = 6,
+ PLDM_OEM_UNIT_PDR = 7,
+ PLDM_OEM_STATE_SET_PDR = 8,
PLDM_NUMERIC_EFFECTER_PDR = 9,
+ PLDM_NUMERIC_EFFECTER_INITIALIZATION_PDR = 10,
PLDM_STATE_EFFECTER_PDR = 11,
+ PLDM_STATE_EFFECTER_INITIALIZATION_PDR = 12,
+ PLDM_EFFECTER_AUXILIARY_NAMES_PDR = 13,
+ PLDM_EFFECTER_OEM_SEMANTIC_PDR = 14,
PLDM_PDR_ENTITY_ASSOCIATION = 15,
+ PLDM_ENTITY_AUXILIARY_NAMES_PDR = 16,
+ PLDM_OEM_ENTITY_ID_PDR = 17,
+ PLDM_INTERRUPT_ASSOCIATION_PDR = 18,
+ PLDM_EVENT_LOG_PDR = 19,
PLDM_PDR_FRU_RECORD_SET = 20,
+ PLDM_OEM_DEVICE_PDR = 126,
+ PLDM_OEM_PDR = 127,
};
/** @brief PLDM effecter initialization schemes
diff --git a/pldmtool/pldm_platform_cmd.cpp b/pldmtool/pldm_platform_cmd.cpp
index 4f18a91..0e3cc58 100644
--- a/pldmtool/pldm_platform_cmd.cpp
+++ b/pldmtool/pldm_platform_cmd.cpp
@@ -110,6 +110,7 @@
{PLDM_STATE_SET_SW_TERMINATION_STATUS, "Software Termination Status"},
{PLDM_STATE_SET_BOOT_RESTART_CAUSE, "Boot/Restart Cause"},
{PLDM_STATE_SET_BOOT_PROGRESS, "Boot Progress"},
+ {PLDM_STATE_SET_SYSTEM_POWER_STATE, "System Power State"},
};
const std::array<std::string_view, 4> sensorInit = {
@@ -118,6 +119,35 @@
const std::array<std::string_view, 4> effecterInit = {
"noInit", "useInitPDR", "enableEffecter", "disableEffecter"};
+ const std::map<uint8_t, std::string> pdrType = {
+ {PLDM_TERMINUS_LOCATOR_PDR, "Terminus Locator PDR"},
+ {PLDM_NUMERIC_SENSOR_PDR, "Numeric Sensor PDR"},
+ {PLDM_NUMERIC_SENSOR_INITIALIZATION_PDR,
+ "Numeric Sensor Initialization PDR"},
+ {PLDM_STATE_SENSOR_PDR, "State Sensor PDR"},
+ {PLDM_STATE_SENSOR_INITIALIZATION_PDR,
+ "State Sensor Initialization PDR"},
+ {PLDM_SENSOR_AUXILIARY_NAMES_PDR, "Sensor Auxiliary Names PDR"},
+ {PLDM_OEM_UNIT_PDR, "OEM Unit PDR"},
+ {PLDM_OEM_STATE_SET_PDR, "OEM State Set PDR"},
+ {PLDM_NUMERIC_EFFECTER_PDR, "Numeric Effecter PDR"},
+ {PLDM_NUMERIC_EFFECTER_INITIALIZATION_PDR,
+ "Numeric Effecter Initialization PDR"},
+ {PLDM_STATE_EFFECTER_PDR, "State Effecter PDR"},
+ {PLDM_STATE_EFFECTER_INITIALIZATION_PDR,
+ "State Effecter Initialization PDR"},
+ {PLDM_EFFECTER_AUXILIARY_NAMES_PDR, "Effecter Auxiliary Names PDR"},
+ {PLDM_EFFECTER_OEM_SEMANTIC_PDR, "Effecter OEM Semantic PDR"},
+ {PLDM_PDR_ENTITY_ASSOCIATION, "Entity Association PDR"},
+ {PLDM_ENTITY_AUXILIARY_NAMES_PDR, "Entity Auxiliary Names PDR"},
+ {PLDM_OEM_ENTITY_ID_PDR, "OEM Entity ID PDR"},
+ {PLDM_INTERRUPT_ASSOCIATION_PDR, "Interrupt Association PDR"},
+ {PLDM_EVENT_LOG_PDR, "PLDM Event Log PDR"},
+ {PLDM_PDR_FRU_RECORD_SET, "FRU Record Set PDR"},
+ {PLDM_OEM_DEVICE_PDR, "OEM Device PDR"},
+ {PLDM_OEM_PDR, "OEM PDR"},
+ };
+
std::string getEntityName(pldm::pdr::EntityType type)
{
try
@@ -132,13 +162,27 @@
std::string getStateSetName(uint16_t id)
{
+ auto typeString = std::to_string(id);
try
{
- return stateSet.at(id);
+ return stateSet.at(id) + "(" + typeString + ")";
}
catch (const std::out_of_range& e)
{
- return std::to_string(id);
+ return typeString;
+ }
+ }
+
+ std::string getPDRType(uint8_t type)
+ {
+ auto typeString = std::to_string(type);
+ try
+ {
+ return pdrType.at(type) + "(" + typeString + ")";
+ }
+ catch (const std::out_of_range& e)
+ {
+ return typeString;
}
}
@@ -147,7 +191,7 @@
std::cout << "recordHandle: " << hdr->record_handle << std::endl;
std::cout << "PDRHeaderVersion: " << unsigned(hdr->version)
<< std::endl;
- std::cout << "PDRType: " << unsigned(hdr->type) << std::endl;
+ std::cout << "PDRType: " << getPDRType(hdr->type) << std::endl;
std::cout << "recordChangeNumber: " << hdr->record_change_num
<< std::endl;
std::cout << "dataLength: " << hdr->length << std::endl << std::endl;