Signed-off-by: Gabriel Krisman Bertazi <kris...@linux.vnet.ibm.com>
---
 iprconfig.c | 27 +++++++++++++++++++++++++++
 iprconfig.h |  2 ++
 2 files changed, 29 insertions(+)

diff --git a/iprconfig.c b/iprconfig.c
index 7355f83..4039114 100644
--- a/iprconfig.c
+++ b/iprconfig.c
@@ -11525,6 +11525,33 @@ static int update_ucode(struct ipr_dev *dev, struct 
ipr_fw_images *fw_image)
        n_download_ucode_in_progress.body = NULL;
        return rc;
 }
+/**
+ * download_all_ucode -
+ * @i_con:             i_container struct
+ *
+ * Returns:
+ *   0 if success / non-zero on failure FIXME
+ **/
+int download_all_ucode(i_container * i_con)
+{
+       struct ipr_ioa *ioa;
+       struct ipr_dev *dev;
+       struct ipr_fw_images *lfw;
+       int rc;
+
+       for_each_ioa(ioa) {
+               if (!ioa->ioa.scsi_dev_data)
+                       return;
+               for_each_dev(ioa, dev) {
+                       lfw = get_latest_fw_image(dev);
+                       if (!lfw || lfw->version <= get_fw_version(dev))
+                               continue;
+                       rc = update_ucode(dev, lfw);
+                       free(lfw);
+               }
+       }
+       return 0;
+}
 
 /**
  * process_choose_ucode -
diff --git a/iprconfig.h b/iprconfig.h
index 9e91152..5ef800d 100644
--- a/iprconfig.h
+++ b/iprconfig.h
@@ -137,6 +137,7 @@ int change_disk_config(i_container *);
 int change_ioa_config(i_container *);
 int ucode_screen(i_container *i_con);
 int download_ucode(i_container *);
+int download_all_ucode(i_container *);
 int choose_ucode(i_container *);
 int log_menu(i_container *);
 int ibm_storage_log_tail(i_container *);
@@ -1560,6 +1561,7 @@ s_node n_confirm_set_default_editor = {
 
 struct screen_opts ucode_screen_opt[] = {
        {download_ucode,      "1", __("Download microcode")},
+       {download_all_ucode,  "2", __("Download all")},
 };
 
 s_node n_ucode_screen = {
-- 
2.1.0


------------------------------------------------------------------------------
_______________________________________________
Iprdd-devel mailing list
Iprdd-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/iprdd-devel

Reply via email to