]> git.sur5r.net Git - openocd/blobdiff - src/target/arm9tdmi.c
armv7m: use register_commands()
[openocd] / src / target / arm9tdmi.c
index 3492c2a94240d5dba76c5020b11f53a764f6052c..87ace05606fc0dd3e8b831297a99c184823d328d 100644 (file)
@@ -664,7 +664,7 @@ static void arm9tdmi_branch_resume_thumb(struct target *target)
        LOG_DEBUG("-");
 
        struct arm7_9_common *arm7_9 = target_to_arm7_9(target);
-       struct armv4_5_common_s *armv4_5 = &arm7_9->armv4_5_common;
+       struct arm *armv4_5 = &arm7_9->armv4_5_common;
        struct arm_jtag *jtag_info = &arm7_9->jtag_info;
        struct reg *dbg_stat = &arm7_9->eice_cache->reg_list[EICE_DBG_STAT];
 
@@ -751,10 +751,9 @@ void arm9tdmi_disable_single_step(struct target *target)
 static void arm9tdmi_build_reg_cache(struct target *target)
 {
        struct reg_cache **cache_p = register_get_last_cache_p(&target->reg_cache);
-       struct armv4_5_common_s *armv4_5 = target_to_armv4_5(target);
+       struct arm *armv4_5 = target_to_armv4_5(target);
 
        (*cache_p) = armv4_5_build_reg_cache(target, armv4_5);
-       armv4_5->core_cache = (*cache_p);
 }
 
 int arm9tdmi_init_target(struct command_context *cmd_ctx,
@@ -831,7 +830,7 @@ static int arm9tdmi_target_create(struct target *target, Jim_Interp *interp)
 
 COMMAND_HANDLER(handle_arm9tdmi_catch_vectors_command)
 {
-       struct target *target = get_current_target(cmd_ctx);
+       struct target *target = get_current_target(CMD_CTX);
        struct arm7_9_common *arm7_9 = target_to_arm7_9(target);
        struct reg *vector_catch;
        uint32_t vector_catch_value;
@@ -839,7 +838,7 @@ COMMAND_HANDLER(handle_arm9tdmi_catch_vectors_command)
        /* it's uncommon, but some ARM7 chips can support this */
        if (arm7_9->common_magic != ARM7_9_COMMON_MAGIC
                        || !arm7_9->has_vector_catch) {
-               command_print(cmd_ctx, "target doesn't have EmbeddedICE "
+               command_print(CMD_CTX, "target doesn't have EmbeddedICE "
                                "with vector_catch");
                return ERROR_TARGET_INVALID;
        }
@@ -853,26 +852,26 @@ COMMAND_HANDLER(handle_arm9tdmi_catch_vectors_command)
        /* get the current setting */
        vector_catch_value = buf_get_u32(vector_catch->value, 0, 8);
 
-       if (argc > 0)
+       if (CMD_ARGC > 0)
        {
                vector_catch_value = 0x0;
-               if (strcmp(args[0], "all") == 0)
+               if (strcmp(CMD_ARGV[0], "all") == 0)
                {
                        vector_catch_value = 0xdf;
                }
-               else if (strcmp(args[0], "none") == 0)
+               else if (strcmp(CMD_ARGV[0], "none") == 0)
                {
                        /* do nothing */
                }
                else
                {
-                       for (unsigned i = 0; i < argc; i++)
+                       for (unsigned i = 0; i < CMD_ARGC; i++)
                        {
                                /* go through list of vectors */
                                unsigned j;
                                for (j = 0; arm9tdmi_vectors[j].name; j++)
                                {
-                                       if (strcmp(args[i], arm9tdmi_vectors[j].name) == 0)
+                                       if (strcmp(CMD_ARGV[i], arm9tdmi_vectors[j].name) == 0)
                                        {
                                                vector_catch_value |= arm9tdmi_vectors[j].value;
                                                break;
@@ -882,7 +881,7 @@ COMMAND_HANDLER(handle_arm9tdmi_catch_vectors_command)
                                /* complain if vector wasn't found */
                                if (!arm9tdmi_vectors[j].name)
                                {
-                                       command_print(cmd_ctx, "vector '%s' not found, leaving current setting unchanged", args[i]);
+                                       command_print(CMD_CTX, "vector '%s' not found, leaving current setting unchanged", CMD_ARGV[i]);
 
                                        /* reread current setting */
                                        vector_catch_value = buf_get_u32(
@@ -901,7 +900,7 @@ COMMAND_HANDLER(handle_arm9tdmi_catch_vectors_command)
 
        /* output current settings */
        for (unsigned i = 0; arm9tdmi_vectors[i].name; i++) {
-               command_print(cmd_ctx, "%s: %s", arm9tdmi_vectors[i].name,
+               command_print(CMD_CTX, "%s: %s", arm9tdmi_vectors[i].name,
                        (vector_catch_value & arm9tdmi_vectors[i].value)
                                ? "catch" : "don't catch");
        }
@@ -909,20 +908,29 @@ COMMAND_HANDLER(handle_arm9tdmi_catch_vectors_command)
        return ERROR_OK;
 }
 
+static const struct command_registration arm9tdmi_exec_command_handlers[] = {
+       {
+               .name = "vector_catch",
+               .handler = handle_arm9tdmi_catch_vectors_command,
+               .mode = COMMAND_EXEC,
+               .usage = "[all|none|reset|undef|swi|pabt|dabt|irq|fiq] ...",
+       },
+       COMMAND_REGISTRATION_DONE
+};
+static const struct command_registration arm9tdmi_command_handlers[] = {
+       {
+               .name = "arm9tdmi",
+               .mode = COMMAND_ANY,
+               .help = "arm9tdmi command group",
+               .chain = arm9tdmi_exec_command_handlers,
+       },
+       COMMAND_REGISTRATION_DONE
+};
+
 int arm9tdmi_register_commands(struct command_context *cmd_ctx)
 {
-       int retval;
-       struct command *arm9tdmi_cmd;
-
-       retval = arm7_9_register_commands(cmd_ctx);
-       arm9tdmi_cmd = register_command(cmd_ctx, NULL, "arm9",
-                       NULL, COMMAND_ANY,
-                       "arm9 specific commands");
-       register_command(cmd_ctx, arm9tdmi_cmd, "vector_catch",
-                       handle_arm9tdmi_catch_vectors_command, COMMAND_EXEC,
-                       "arm9 vector_catch [all|none|reset|undef|swi|pabt|dabt|irq|fiq] ...");
-
-       return retval;
+       arm7_9_register_commands(cmd_ctx);
+       return register_commands(cmd_ctx, NULL, arm9tdmi_command_handlers);
 }
 
 /** Holds methods for ARM9TDMI targets. */