Skip to content

Commit 80fc9fa

Browse files
committed
flash: nor: rewrite command 'flash list' as COMMAND_HANDLER
The mixed use of jim commands and OpenOCD commands is error prone due to handling of errors through JIM_xx and ERROR_yy. Rewrite the jim command 'flash list' as OpenOCD command. While there: - format in a human readable way the output dictionary list, while preserving the structure of its TCL data; - add the mandatory 'usage' field. Change-Id: I1ee69870d3ab3c1cfc46cd2b8ec03de6b2300bd6 Signed-off-by: Antonio Borneo <borneo.antonio@gmail.com> Reviewed-on: https://review.openocd.org/c/openocd/+/7486 Reviewed-by: Tomas Vanek <vanekt@fbl.cz> Tested-by: jenkins
1 parent d05c686 commit 80fc9fa

1 file changed

Lines changed: 18 additions & 30 deletions

File tree

src/flash/nor/tcl.c

Lines changed: 18 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1324,40 +1324,27 @@ COMMAND_HANDLER(handle_flash_banks_command)
13241324
return ERROR_OK;
13251325
}
13261326

1327-
static int jim_flash_list(Jim_Interp *interp, int argc, Jim_Obj * const *argv)
1327+
COMMAND_HANDLER(handle_flash_list)
13281328
{
1329-
if (argc != 1) {
1330-
Jim_WrongNumArgs(interp, 1, argv,
1331-
"no arguments to 'flash list' command");
1332-
return JIM_ERR;
1333-
}
1334-
1335-
Jim_Obj *list = Jim_NewListObj(interp, NULL, 0);
1329+
if (CMD_ARGC != 0)
1330+
return ERROR_COMMAND_SYNTAX_ERROR;
13361331

13371332
for (struct flash_bank *p = flash_bank_list(); p; p = p->next) {
1338-
Jim_Obj *elem = Jim_NewListObj(interp, NULL, 0);
1339-
1340-
Jim_ListAppendElement(interp, elem, Jim_NewStringObj(interp, "name", -1));
1341-
Jim_ListAppendElement(interp, elem, Jim_NewStringObj(interp, p->name, -1));
1342-
Jim_ListAppendElement(interp, elem, Jim_NewStringObj(interp, "driver", -1));
1343-
Jim_ListAppendElement(interp, elem, Jim_NewStringObj(interp, p->driver->name, -1));
1344-
Jim_ListAppendElement(interp, elem, Jim_NewStringObj(interp, "base", -1));
1345-
Jim_ListAppendElement(interp, elem, Jim_NewIntObj(interp, p->base));
1346-
Jim_ListAppendElement(interp, elem, Jim_NewStringObj(interp, "size", -1));
1347-
Jim_ListAppendElement(interp, elem, Jim_NewIntObj(interp, p->size));
1348-
Jim_ListAppendElement(interp, elem, Jim_NewStringObj(interp, "bus_width", -1));
1349-
Jim_ListAppendElement(interp, elem, Jim_NewIntObj(interp, p->bus_width));
1350-
Jim_ListAppendElement(interp, elem, Jim_NewStringObj(interp, "chip_width", -1));
1351-
Jim_ListAppendElement(interp, elem, Jim_NewIntObj(interp, p->chip_width));
1352-
Jim_ListAppendElement(interp, elem, Jim_NewStringObj(interp, "target", -1));
1353-
Jim_ListAppendElement(interp, elem, Jim_NewStringObj(interp, target_name(p->target), -1));
1354-
1355-
Jim_ListAppendElement(interp, list, elem);
1333+
command_print(CMD,
1334+
"{\n"
1335+
" name %s\n"
1336+
" driver %s\n"
1337+
" base " TARGET_ADDR_FMT "\n"
1338+
" size 0x%" PRIx32 "\n"
1339+
" bus_width %u\n"
1340+
" chip_width %u\n"
1341+
" target %s\n"
1342+
"}",
1343+
p->name, p->driver->name, p->base, p->size, p->bus_width, p->chip_width,
1344+
target_name(p->target));
13561345
}
13571346

1358-
Jim_SetResult(interp, list);
1359-
1360-
return JIM_OK;
1347+
return ERROR_OK;
13611348
}
13621349

13631350
COMMAND_HANDLER(handle_flash_init_command)
@@ -1404,8 +1391,9 @@ static const struct command_registration flash_config_command_handlers[] = {
14041391
{
14051392
.name = "list",
14061393
.mode = COMMAND_ANY,
1407-
.jim_handler = jim_flash_list,
1394+
.handler = handle_flash_list,
14081395
.help = "Returns a list of details about the flash banks.",
1396+
.usage = "",
14091397
},
14101398
COMMAND_REGISTRATION_DONE
14111399
};

0 commit comments

Comments
 (0)