target/arc_cmd: Improve argument checks for commands
authorEvgeniy Didin <didin@synopsys.com>
Thu, 12 Mar 2020 16:05:37 +0000 (19:05 +0300)
committerOleksij Rempel <linux@rempel-privat.de>
Fri, 27 Mar 2020 07:09:41 +0000 (07:09 +0000)
Add more argument check for "add-reg" command.

Changes since first revision:
-Removed arguments limitation(50 maximum) for "arc_set_reg_exists".

Changes:
25.03:
Removed inconsistency in "add-reg" function. Actually
"-type" option is optional and if it is not set,
register type is "int".

Change-Id: Ia21e6baf4fbda162f7811cd0fe305fc86ddafcfd
Signed-off-by: Evgeniy Didin <didin@synopsys.com>
Reviewed-on: http://openocd.zylin.com/5523
Tested-by: jenkins
Reviewed-by: Antonio Borneo <borneo.antonio@gmail.com>
Reviewed-by: Oleksij Rempel <linux@rempel-privat.de>
src/target/arc_cmd.c

index 3475762f4c9389c5b7e7a0d7afb8a450f68adf60..a8c3bb43a713a5bd87c71ff6daae190ed8dd3e01 100644 (file)
@@ -678,13 +678,15 @@ static int jim_arc_add_reg(Jim_Interp *interp, int argc, Jim_Obj * const *argv)
        int type_name_len = strlen(type_name);
        int e = ERROR_OK;
 
-       /* At least we need to specify 4 parameters: name, number, type and gdb_feature,
-        * which means there should be 8 arguments */
-       if (goi.argc < 8) {
+       /* At least we need to specify 4 parameters: name, number and gdb_feature,
+        * which means there should be 6 arguments. Also there can be additional paramters
+        * "-type <type>", "-g" and  "-core" or "-bcr" which makes maximum 10 parameters. */
+       if (goi.argc < 6 || goi.argc > 10) {
                free_reg_desc(reg);
                Jim_SetResultFormatted(goi.interp,
-                       "Should be at least 8 argnuments: -name <name> "
-                       "-num <num> -type <type> -feature <gdb_feature>.");
+                       "Should be at least 6 argnuments and not greater than 10: "
+                       " -name <name> -num <num> -feature <gdb_feature> "
+                       " [-type <type_name>] [-core|-bcr] [-g].");
                return JIM_ERR;
        }