platform-mc: Support pollForPlatFormEventMessage
Supports polling all events synchronously when the terminus sends
`pldmMessagePollEvent` with the event id. BMC will use the received
event id as input for `pollForPlatformEventMessage` command to retrieve
the event data.
Change-Id: If01f63f30d3f57f8423c863ec776e83dda8e3042
Signed-off-by: Dung Cao <dung@os.amperecomputing.com>
Signed-off-by: Thu Nguyen <thu@os.amperecomputing.com>
diff --git a/platform-mc/sensor_manager.cpp b/platform-mc/sensor_manager.cpp
index da829b0..2ffc679 100644
--- a/platform-mc/sensor_manager.cpp
+++ b/platform-mc/sensor_manager.cpp
@@ -181,6 +181,14 @@
co_return PLDM_SUCCESS;
}
+ auto& terminus = termini[tid];
+
+ if (manager && terminus->pollEvent)
+ {
+ co_await manager->pollForPlatformEvent(
+ tid, terminus->pollEventId, terminus->pollDataTransferHandle);
+ }
+
sd_event_now(event.get(), CLOCK_MONOTONIC, &t1);
auto toBeUpdated = roundRobinSensors[tid].size();
while (((t1 - t0) < pollingTimeInUsec) && (toBeUpdated > 0))