MIPS: pracc access tweaks
[fw/openocd] / src / target / arm966e.c
index ffc65cde50b3ad7cd4bcbfab65eb49e9cc8f33df..82be73801e5a23af91a74bd53af419c4357ef541 100644 (file)
@@ -26,6 +26,7 @@
 
 #include "arm966e.h"
 #include "target_type.h"
+#include "arm_opcodes.h"
 
 
 #if 0
@@ -165,16 +166,16 @@ int arm966e_write_cp15(struct target *target, int reg_addr, uint32_t value)
 COMMAND_HANDLER(arm966e_handle_cp15_command)
 {
        int retval;
-       struct target *target = get_current_target(cmd_ctx);
+       struct target *target = get_current_target(CMD_CTX);
        struct arm966e_common *arm966e = target_to_arm966(target);
 
-       retval = arm966e_verify_pointer(cmd_ctx, arm966e);
+       retval = arm966e_verify_pointer(CMD_CTX, arm966e);
        if (retval != ERROR_OK)
                return retval;
 
        if (target->state != TARGET_HALTED)
        {
-               command_print(cmd_ctx, "target must be stopped for \"%s\" command", CMD_NAME);
+               command_print(CMD_CTX, "target must be stopped for \"%s\" command", CMD_NAME);
                return ERROR_OK;
        }
 
@@ -189,7 +190,7 @@ COMMAND_HANDLER(arm966e_handle_cp15_command)
                        uint32_t value;
                        if ((retval = arm966e_read_cp15(target, address, &value)) != ERROR_OK)
                        {
-                               command_print(cmd_ctx,
+                               command_print(CMD_CTX,
                                                "couldn't access reg %" PRIi32,
                                                address);
                                return ERROR_OK;
@@ -199,7 +200,7 @@ COMMAND_HANDLER(arm966e_handle_cp15_command)
                                return retval;
                        }
 
-                       command_print(cmd_ctx, "%" PRIi32 ": %8.8" PRIx32,
+                       command_print(CMD_CTX, "%" PRIi32 ": %8.8" PRIx32,
                                        address, value);
                }
                else if (CMD_ARGC == 2)
@@ -208,12 +209,12 @@ COMMAND_HANDLER(arm966e_handle_cp15_command)
                        COMMAND_PARSE_NUMBER(u32, CMD_ARGV[1], value);
                        if ((retval = arm966e_write_cp15(target, address, value)) != ERROR_OK)
                        {
-                               command_print(cmd_ctx,
+                               command_print(CMD_CTX,
                                                "couldn't access reg %" PRIi32,
                                                address);
                                return ERROR_OK;
                        }
-                       command_print(cmd_ctx, "%" PRIi32 ": %8.8" PRIx32,
+                       command_print(CMD_CTX, "%" PRIi32 ": %8.8" PRIx32,
                                        address, value);
                }
        }
@@ -221,22 +222,29 @@ COMMAND_HANDLER(arm966e_handle_cp15_command)
        return ERROR_OK;
 }
 
-/** Registers commands used to access coprocessor resources. */
-int arm966e_register_commands(struct command_context *cmd_ctx)
-{
-       int retval;
-       struct command *arm966e_cmd;
-
-       retval = arm9tdmi_register_commands(cmd_ctx);
-       arm966e_cmd = register_command(cmd_ctx, NULL, "arm966e",
-                       NULL, COMMAND_ANY,
-                       "arm966e specific commands");
-       register_command(cmd_ctx, arm966e_cmd, "cp15",
-                       arm966e_handle_cp15_command, COMMAND_EXEC,
-                       "display/modify cp15 register <num> [value]");
+static const struct command_registration arm966e_exec_command_handlers[] = {
+       {
+               .name = "cp15",
+               .handler = arm966e_handle_cp15_command,
+               .mode = COMMAND_EXEC,
+               .usage = "<opcode> [value]",
+               .help = "display/modify cp15 register",
+       },
+       COMMAND_REGISTRATION_DONE
+};
 
-       return retval;
-}
+const struct command_registration arm966e_command_handlers[] = {
+       {
+               .chain = arm9tdmi_command_handlers,
+       },
+       {
+               .name = "arm966e",
+               .mode = COMMAND_ANY,
+               .help = "arm966e command group",
+               .chain = arm966e_exec_command_handlers,
+       },
+       COMMAND_REGISTRATION_DONE
+};
 
 /** Holds methods for ARM966 targets. */
 struct target_type arm966e_target =
@@ -244,7 +252,7 @@ struct target_type arm966e_target =
        .name = "arm966e",
 
        .poll = arm7_9_poll,
-       .arch_state = armv4_5_arch_state,
+       .arch_state = arm_arch_state,
 
        .target_request_data = arm7_9_target_request_data,
 
@@ -256,7 +264,7 @@ struct target_type arm966e_target =
        .deassert_reset = arm7_9_deassert_reset,
        .soft_reset_halt = arm7_9_soft_reset_halt,
 
-       .get_gdb_reg_list = armv4_5_get_gdb_reg_list,
+       .get_gdb_reg_list = arm_get_gdb_reg_list,
 
        .read_memory = arm7_9_read_memory,
        .write_memory = arm7_9_write_memory,
@@ -272,7 +280,7 @@ struct target_type arm966e_target =
        .add_watchpoint = arm7_9_add_watchpoint,
        .remove_watchpoint = arm7_9_remove_watchpoint,
 
-       .register_commands = arm966e_register_commands,
+       .commands = arm966e_command_handlers,
        .target_create = arm966e_target_create,
        .init_target = arm9tdmi_init_target,
        .examine = arm7_9_examine,