Commit 15fdeaa65af2362d94e64ddd604b68f588495a05 ("Add support to configurable rebuild rate in iprconfig.") added support to specify the array rebuild rate on command-line interface of iprconfig. Here we add the same functionality on the ncurses interface.
Signed-off-by: Guilherme G. Piccoli <gpicc...@linux.vnet.ibm.com> --- Comments on PATCH v2: Thanks for your suggestions Gabriel! I've implemented all of them. Sorry for my delay to reply this - it was hard to find a test system to me. iprconfig.c | 39 ++++++++++++++++++++++++++++++++++++++- 1 file changed, 38 insertions(+), 1 deletion(-) diff --git a/iprconfig.c b/iprconfig.c index 9fae41a..bcb13e3 100644 --- a/iprconfig.c +++ b/iprconfig.c @@ -10939,6 +10939,7 @@ struct ioa_config_attr { int active_active; int caching; int verify_array_rebuild; + int rebuild_rate; }; /** @@ -11028,6 +11029,23 @@ int ioa_config_menu(struct ioa_config_attr *ioa_config_attr, free(menu_item); free(userptr); menu_item = NULL; + } else if (ioa_config_attr->option == 6) { + rc = display_input(start_row + 1, + &ioa_config_attr->rebuild_rate); + /* (start_row + 1) to correct window location */ + + if (ioa_config_attr->rebuild_rate > 100) + ioa_config_attr->rebuild_rate = 100; + + if (ioa_config_attr->rebuild_rate < 0) + ioa_config_attr->rebuild_rate = 0; + + ioa_config_attr->rebuild_rate = + (ioa_config_attr->rebuild_rate * 15) / 100; + /* + * this constant multiplication *(15/100) it's only used to + * give the user values 0-100 even though IOA only knows 0-15 + */ } return rc; @@ -11050,7 +11068,11 @@ int change_ioa_config(i_container * i_con) i_container *temp_i_con; int found = 0; char *input; - struct ioa_config_attr ioa_config_attr[3]; + struct ioa_config_attr ioa_config_attr[6]; + /* + * For now, the above 6 is a magic number - it means the maximum + * number of options showed at screen. It should be more generic... + */ struct ioa_config_attr *config_attr = NULL; struct ipr_ioa_attr ioa_attr; int header_lines = 0, index = 0; @@ -11146,6 +11168,16 @@ int change_ioa_config(i_container * i_con) &ioa_config_attr[index++]); } + if (dev->ioa->sis64) { + body = add_line_to_body(body, _("Array rebuild rate"), "%3"); + ioa_config_attr[index].option = 6; + ioa_config_attr[index].rebuild_rate = ioa_attr.rebuild_rate; + + sprintf(pref_str, "%d", + (ioa_config_attr[index].rebuild_rate* 100) / 15); + + i_con = add_i_con(i_con, pref_str, &ioa_config_attr[index++]); + } n_change_ioa_config.body = body; while (1) { s_out = screen_driver(&n_change_ioa_config, header_lines, i_con); @@ -11194,6 +11226,11 @@ int change_ioa_config(i_container * i_con) sprintf(temp_i_con->field_data, "Disabled"); ioa_attr.disable_rebuild_verify = 1; } + } else if (config_attr->option == 6) { + sprintf( temp_i_con->field_data, "%d", + (config_attr->rebuild_rate * 100) / 15 ); + ioa_attr.rebuild_rate = + config_attr->rebuild_rate; } found++; break; -- 2.1.0 ------------------------------------------------------------------------------ _______________________________________________ Iprdd-devel mailing list Iprdd-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/iprdd-devel