oem_ibm: Add Slot enable infrastructure in BMC
With this commit PDRs are created for each of these
PCIe slots and adapters which have a corresponding
entry in the entity associate map. The sensor/effector
states are monitored and accordingly D-Bus calls are
sent for enabling a slot, process property change
of a PCIe slot, etc.
Tested By: SIMICS power on/off and reset reload.
Signed-off-by: Manojkiran Eda <manojkiran.eda@gmail.com>
Change-Id: I51b79b75c909ddf2cc29872fec6aa01c2d56b418
diff --git a/libpldmresponder/platform.cpp b/libpldmresponder/platform.cpp
index 0a0de64..d04bb1e 100644
--- a/libpldmresponder/platform.cpp
+++ b/libpldmresponder/platform.cpp
@@ -789,13 +789,15 @@
uint16_t entityType{};
uint16_t entityInstance{};
uint16_t stateSetId{};
+ uint16_t containerId{};
if (isOemStateSensor(*this, sensorId, sensorRearmCount, comSensorCnt,
- entityType, entityInstance, stateSetId) &&
- oemPlatformHandler != nullptr && !sensorDbusObjMaps.contains(sensorId))
+ entityType, entityInstance, stateSetId, containerId) &&
+ oemPlatformHandler && !sensorDbusObjMaps.contains(sensorId))
{
rc = oemPlatformHandler->getOemStateSensorReadingsHandler(
- entityType, entityInstance, stateSetId, comSensorCnt, stateField);
+ entityType, entityInstance, containerId, stateSetId, comSensorCnt,
+ sensorId, stateField);
}
else
{
@@ -835,7 +837,7 @@
bool isOemStateSensor(Handler& handler, uint16_t sensorId,
uint8_t sensorRearmCount, uint8_t& compSensorCnt,
uint16_t& entityType, uint16_t& entityInstance,
- uint16_t& stateSetId)
+ uint16_t& stateSetId, uint16_t& containerId)
{
pldm_state_sensor_pdr* pdr = nullptr;
@@ -868,6 +870,7 @@
}
auto tmpEntityType = pdr->entity_type;
auto tmpEntityInstance = pdr->entity_instance;
+ auto tmpEntityContainerId = pdr->container_id;
auto tmpCompSensorCnt = pdr->composite_sensor_count;
auto tmpPossibleStates =
reinterpret_cast<state_sensor_possible_states*>(
@@ -892,6 +895,7 @@
entityInstance = tmpEntityInstance;
stateSetId = tmpStateSetId;
compSensorCnt = tmpCompSensorCnt;
+ containerId = tmpEntityContainerId;
return true;
}
else