X-Git-Url: https://review.openocd.org/gitweb?p=openocd.git;a=blobdiff_plain;f=src%2Fflash%2Favrf.c;h=687dd4b59ea2acf79bf263bfe9ee47532d938ae4;hp=9df254eaf8493dbe02f33657e10fbf1de8e8e761;hb=c4992c6d863d0ead91d84d19bbfe1643d720b205;hpb=96b62996d2d81b09a48bf253bc9e60e637f687bd diff --git a/src/flash/avrf.c b/src/flash/avrf.c index 9df254eaf8..687dd4b59e 100644 --- a/src/flash/avrf.c +++ b/src/flash/avrf.c @@ -184,7 +184,7 @@ FLASH_BANK_COMMAND_HANDLER(avrf_flash_bank_command) { struct avrf_flash_bank *avrf_info; - if (argc < 6) + if (CMD_ARGC < 6) { LOG_WARNING("incomplete flash_bank avr configuration"); return ERROR_FLASH_BANK_INVALID; @@ -290,7 +290,7 @@ static int avrf_probe(struct flash_bank *bank) LOG_ERROR("0x%" PRIx32 " is invalid Manufacturer for avr, 0x%X is expected", EXTRACT_MFG(device_id), 0x1F); } - for (i = 0; i < (int)(sizeof(avft_chips_info) / sizeof(avft_chips_info[0])); i++) + for (i = 0; i < (int)ARRAY_SIZE(avft_chips_info); i++) { if (avft_chips_info[i].chip_id == EXTRACT_PART(device_id)) { @@ -369,7 +369,7 @@ static int avrf_info(struct flash_bank *bank, char *buf, int buf_size) LOG_ERROR("0x%" PRIx32 " is invalid Manufacturer for avr, 0x%X is expected", EXTRACT_MFG(device_id), 0x1F); } - for (i = 0; i < (int)(sizeof(avft_chips_info) / sizeof(avft_chips_info[0])); i++) + for (i = 0; i < (int)ARRAY_SIZE(avft_chips_info); i++) { if (avft_chips_info[i].chip_id == EXTRACT_PART(device_id)) { @@ -419,14 +419,14 @@ COMMAND_HANDLER(avrf_handle_mass_erase_command) { int i; - if (argc < 1) + if (CMD_ARGC < 1) { - command_print(cmd_ctx, "avr mass_erase "); + command_print(CMD_CTX, "avr mass_erase "); return ERROR_OK; } struct flash_bank *bank; - int retval = flash_command_get_bank_by_num(cmd_ctx, args[0], &bank); + int retval = CALL_COMMAND_HANDLER(flash_command_get_bank, 0, &bank); if (ERROR_OK != retval) return retval; @@ -438,32 +438,39 @@ COMMAND_HANDLER(avrf_handle_mass_erase_command) bank->sectors[i].is_erased = 1; } - command_print(cmd_ctx, "avr mass erase complete"); + command_print(CMD_CTX, "avr mass erase complete"); } else { - command_print(cmd_ctx, "avr mass erase failed"); + command_print(CMD_CTX, "avr mass erase failed"); } LOG_DEBUG("%s", __FUNCTION__); return ERROR_OK; } -static int avrf_register_commands(struct command_context_s *cmd_ctx) -{ - command_t *avr_cmd = register_command(cmd_ctx, NULL, "avr", - NULL, COMMAND_ANY, "avr flash specific commands"); - - register_command(cmd_ctx, avr_cmd, "mass_erase", - avrf_handle_mass_erase_command, COMMAND_EXEC, - "mass erase device"); - - return ERROR_OK; -} +static const struct command_registration avrf_exec_command_handlers[] = { + { + .name = "mass_erase", + .handler = &avrf_handle_mass_erase_command, + .mode = COMMAND_EXEC, + .help = "erase entire device", + }, + COMMAND_REGISTRATION_DONE +}; +static const struct command_registration avrf_command_handlers[] = { + { + .name = "avrf", + .mode = COMMAND_ANY, + .help = "AVR flash command group", + .chain = avrf_exec_command_handlers, + }, + COMMAND_REGISTRATION_DONE +}; struct flash_driver avr_flash = { .name = "avr", - .register_commands = &avrf_register_commands, + .commands = avrf_command_handlers, .flash_bank_command = &avrf_flash_bank_command, .erase = &avrf_erase, .protect = &avrf_protect,