refactor handle_flash_bank_command

Move variables to point of first use, reducing their scope.
Add driver_name temporary to help arguments be changed later.

Eliminates the useless 'found' variable, changing the code to terminate
the loop immediate and return its success.
This commit is contained in:
Zachary T Welch 2009-11-17 13:52:43 -08:00
parent ff25e76bad
commit dd44ae18b4
1 changed files with 13 additions and 17 deletions
src/flash

View File

@ -239,25 +239,24 @@ COMMAND_HELPER(flash_command_get_bank, unsigned name_index,
COMMAND_HANDLER(handle_flash_bank_command) COMMAND_HANDLER(handle_flash_bank_command)
{ {
int retval;
int i;
int found = 0;
struct target *target;
if (CMD_ARGC < 6) if (CMD_ARGC < 6)
{ {
LOG_ERROR("usage: flash bank <driver> "
"<base> <size> <chip_width> <bus_width>");
return ERROR_COMMAND_SYNTAX_ERROR; return ERROR_COMMAND_SYNTAX_ERROR;
} }
struct target *target;
if ((target = get_target(CMD_ARGV[5])) == NULL) if ((target = get_target(CMD_ARGV[5])) == NULL)
{ {
LOG_ERROR("target '%s' not defined", CMD_ARGV[5]); LOG_ERROR("target '%s' not defined", CMD_ARGV[5]);
return ERROR_FAIL; return ERROR_FAIL;
} }
for (i = 0; flash_drivers[i]; i++) const char *driver_name = CMD_ARGV[0];
for (unsigned i = 0; flash_drivers[i]; i++)
{ {
if (strcmp(CMD_ARGV[0], flash_drivers[i]->name) != 0) if (strcmp(driver_name, flash_drivers[i]->name) != 0)
continue; continue;
struct flash_bank *p, *c; struct flash_bank *p, *c;
@ -265,7 +264,7 @@ COMMAND_HANDLER(handle_flash_bank_command)
/* register flash specific commands */ /* register flash specific commands */
if (flash_drivers[i]->register_commands(CMD_CTX) != ERROR_OK) if (flash_drivers[i]->register_commands(CMD_CTX) != ERROR_OK)
{ {
LOG_ERROR("couldn't register '%s' commands", CMD_ARGV[0]); LOG_ERROR("couldn't register '%s' commands", driver_name);
return ERROR_FAIL; return ERROR_FAIL;
} }
@ -281,10 +280,12 @@ COMMAND_HANDLER(handle_flash_bank_command)
c->sectors = NULL; c->sectors = NULL;
c->next = NULL; c->next = NULL;
int retval;
retval = CALL_COMMAND_HANDLER(flash_drivers[i]->flash_bank_command, c); retval = CALL_COMMAND_HANDLER(flash_drivers[i]->flash_bank_command, c);
if (ERROR_OK != retval) if (ERROR_OK != retval)
{ {
LOG_ERROR("'%s' driver rejected flash bank at 0x%8.8" PRIx32 , CMD_ARGV[0], c->base); LOG_ERROR("'%s' driver rejected flash bank at 0x%8.8" PRIx32,
driver_name, c->base);
free(c); free(c);
return retval; return retval;
} }
@ -305,17 +306,12 @@ COMMAND_HANDLER(handle_flash_bank_command)
c->bank_number = 0; c->bank_number = 0;
} }
found = 1; return ERROR_OK;
} }
/* no matching flash driver found */ /* no matching flash driver found */
if (!found) LOG_ERROR("flash driver '%s' not found", driver_name);
{ return ERROR_FAIL;
LOG_ERROR("flash driver '%s' not found", CMD_ARGV[0]);
return ERROR_FAIL;
}
return ERROR_OK;
} }
COMMAND_HANDLER(handle_flash_info_command) COMMAND_HANDLER(handle_flash_info_command)