libpldm: Enhance decode of GetFirmwareParameters response

- Return the pointer/length of component parameter table
- Additional error handling
- Expand the unit test cases for the API

Signed-off-by: Tom Joseph <rushtotom@gmail.com>
Change-Id: I4c57d8944e61583db38ab130d792ce4251192b4e
diff --git a/libpldm/firmware_update.h b/libpldm/firmware_update.h
index 44a2850..97a13fb 100644
--- a/libpldm/firmware_update.h
+++ b/libpldm/firmware_update.h
@@ -109,7 +109,7 @@
 

 /** @struct pldm_get_firmware_parameters_resp

  *

- *  Structure representing get firmware parameters response.

+ *  Structure representing the fixed part of GetFirmwareParameters response

  */

 struct pldm_get_firmware_parameters_resp {

 	uint8_t completion_code;

@@ -220,24 +220,25 @@
 				       size_t payload_length,

 				       struct pldm_msg *msg);

 

-/** @brief Decode GetFirmwareParameters response parameters except the

- *         ComponentParameterTable

+/** @brief Decode GetFirmwareParameters response

  *

  *  @param[in] msg - Response message

  *  @param[in] payload_length - Length of response message payload

  *  @param[out] resp_data - Pointer to get firmware parameters response

  *  @param[out] active_comp_image_set_ver_str - Pointer to active component

- * image set version string

+ *                                              image set version string

  *  @param[out] pending_comp_image_set_ver_str - Pointer to pending component

- * image set version string

+ *                                               image set version string

+ *  @param[out] comp_parameter_table - Pointer to component parameter table

  *

  *  @return pldm_completion_codes

  */

-int decode_get_firmware_parameters_resp_comp_set_info(

+int decode_get_firmware_parameters_resp(

     const struct pldm_msg *msg, size_t payload_length,

     struct pldm_get_firmware_parameters_resp *resp_data,

     struct variable_field *active_comp_image_set_ver_str,

-    struct variable_field *pending_comp_image_set_ver_str);

+    struct variable_field *pending_comp_image_set_ver_str,

+    struct variable_field *comp_parameter_table);

 

 /** @brief Decode component entries in the component parameter table which is

  *         part of the response of GetFirmwareParameters command