Add encode/decode pldmMessagePollEvent data

The API decodes/encodes eventData fields for pldmMessagePollEvent type
(section 16.15) of PlatformEventMessage command(0xA) which is defined
in DSP0248 Version 1.2.2.

Signed-off-by: Dung Cao <dung@os.amperecomputing.com>
Signed-off-by: Thu Nguyen <thu@os.amperecomputing.com>
Change-Id: I1934792f0ce8f339ee04c4bae0c65e3973ed38b4
diff --git a/include/libpldm/platform.h b/include/libpldm/platform.h
index ead3421..26d47c5 100644
--- a/include/libpldm/platform.h
+++ b/include/libpldm/platform.h
@@ -52,6 +52,11 @@
 #define PLDM_PLATFORM_EVENT_MESSAGE_STATE_SENSOR_STATE_REQ_BYTES 6
 #define PLDM_PLATFORM_EVENT_MESSAGE_RESP_BYTES			 2
 #define PLDM_PLATFORM_EVENT_MESSAGE_FORMAT_VERSION		 1
+#define PLDM_PLATFORM_EVENT_MESSAGE_EVENT_ID			 2
+#define PLDM_PLATFORM_EVENT_MESSAGE_TRANFER_HANDLE		 4
+
+/* Minumum length of senson event data */
+#define PLDM_MSG_POLL_EVENT_LENGTH 7
 
 /* Minumum length of senson event data */
 #define PLDM_SENSOR_EVENT_DATA_MIN_LENGTH			 5
@@ -1938,6 +1943,41 @@
 	uint8_t *event_data_format, uint8_t *number_of_change_records,
 	size_t *change_record_data_offset);
 
+/** @brief Decode pldmMessagePollEvent event data type
+ *
+ *  @param[in] event_data - event data from the response message
+ *  @param[in] event_data_length - length of the event data
+ *  @param[out] format_version - Version of the event format
+ *  @param[out] event_id - The event id
+ *  @param[out] data_transfer_handle - The data transfer handle
+ *  should be read from event data
+ *  @return pldm_completion_codes
+ *  @note  Caller is responsible for memory alloc and dealloc of param
+ *         'event_data'
+ */
+int decode_pldm_message_poll_event_data(const uint8_t *event_data,
+					size_t event_data_length,
+					uint8_t *format_version,
+					uint16_t *event_id,
+					uint32_t *data_transfer_handle);
+
+/** @brief Encode pldmMessagePollEvent event data type
+ *
+ *  @param[in] format_version - Version of the event format
+ *  @param[in] event_id - The event id
+ *  @param[in] data_transfer_handle - The data transfer handle
+ *  @param[out] event_data - event data to the response message
+ *  @param[in] event_data_length - length of the event data
+ *  @return pldm_completion_codes
+ *  @note The caller is responsible for allocating and deallocating the
+ *        event_data
+ */
+int encode_pldm_message_poll_event_data(uint8_t format_version,
+					uint16_t event_id,
+					uint32_t data_transfer_handle,
+					uint8_t *event_data,
+					size_t event_data_length);
+
 /** @brief Encode PLDM PDR Repository Change eventData
  *  @param[in] event_data_format - Format of this event data (e.g.
  * FORMAT_IS_PDR_HANDLES)