This is an automated email from Gerrit.

"Antonio Borneo <borneo.anto...@gmail.com>" just uploaded a new patch set to 
Gerrit, which you can find at https://review.openocd.org/c/openocd/+/7486

-- gerrit

commit eca69ee75f609f4442287b32e601c1d81d436087
Author: Antonio Borneo <borneo.anto...@gmail.com>
Date:   Sun Dec 18 16:09:02 2022 +0100

    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.anto...@gmail.com>

diff --git a/src/flash/nor/tcl.c b/src/flash/nor/tcl.c
index 4ff6d98386..ecbcf00aaa 100644
--- a/src/flash/nor/tcl.c
+++ b/src/flash/nor/tcl.c
@@ -1324,40 +1324,27 @@ COMMAND_HANDLER(handle_flash_banks_command)
        return ERROR_OK;
 }
 
-static int jim_flash_list(Jim_Interp *interp, int argc, Jim_Obj * const *argv)
+COMMAND_HANDLER(handle_flash_list)
 {
-       if (argc != 1) {
-               Jim_WrongNumArgs(interp, 1, argv,
-                       "no arguments to 'flash list' command");
-               return JIM_ERR;
-       }
-
-       Jim_Obj *list = Jim_NewListObj(interp, NULL, 0);
+       if (CMD_ARGC != 0)
+               return ERROR_COMMAND_SYNTAX_ERROR;
 
        for (struct flash_bank *p = flash_bank_list(); p; p = p->next) {
-               Jim_Obj *elem = Jim_NewListObj(interp, NULL, 0);
-
-               Jim_ListAppendElement(interp, elem, Jim_NewStringObj(interp, 
"name", -1));
-               Jim_ListAppendElement(interp, elem, Jim_NewStringObj(interp, 
p->name, -1));
-               Jim_ListAppendElement(interp, elem, Jim_NewStringObj(interp, 
"driver", -1));
-               Jim_ListAppendElement(interp, elem, Jim_NewStringObj(interp, 
p->driver->name, -1));
-               Jim_ListAppendElement(interp, elem, Jim_NewStringObj(interp, 
"base", -1));
-               Jim_ListAppendElement(interp, elem, Jim_NewIntObj(interp, 
p->base));
-               Jim_ListAppendElement(interp, elem, Jim_NewStringObj(interp, 
"size", -1));
-               Jim_ListAppendElement(interp, elem, Jim_NewIntObj(interp, 
p->size));
-               Jim_ListAppendElement(interp, elem, Jim_NewStringObj(interp, 
"bus_width", -1));
-               Jim_ListAppendElement(interp, elem, Jim_NewIntObj(interp, 
p->bus_width));
-               Jim_ListAppendElement(interp, elem, Jim_NewStringObj(interp, 
"chip_width", -1));
-               Jim_ListAppendElement(interp, elem, Jim_NewIntObj(interp, 
p->chip_width));
-               Jim_ListAppendElement(interp, elem, Jim_NewStringObj(interp, 
"target", -1));
-               Jim_ListAppendElement(interp, elem, Jim_NewStringObj(interp, 
target_name(p->target), -1));
-
-               Jim_ListAppendElement(interp, list, elem);
+               command_print(CMD,
+                       "{\n"
+                       "    name       %s\n"
+                       "    driver     %s\n"
+                       "    base       " TARGET_ADDR_FMT "\n"
+                       "    size       0x%" PRIx32 "\n"
+                       "    bus_width  %u\n"
+                       "    chip_width %u\n"
+                       "    target     %s\n"
+                       "}",
+                       p->name, p->driver->name, p->base, p->size, 
p->bus_width, p->chip_width,
+                       target_name(p->target));
        }
 
-       Jim_SetResult(interp, list);
-
-       return JIM_OK;
+       return ERROR_OK;
 }
 
 COMMAND_HANDLER(handle_flash_init_command)
@@ -1404,8 +1391,9 @@ static const struct command_registration 
flash_config_command_handlers[] = {
        {
                .name = "list",
                .mode = COMMAND_ANY,
-               .jim_handler = jim_flash_list,
+               .handler = handle_flash_list,
                .help = "Returns a list of details about the flash banks.",
+               .usage = "",
        },
        COMMAND_REGISTRATION_DONE
 };

-- 

Reply via email to