summaryrefslogtreecommitdiff
path: root/src/target/arm720t.c
diff options
context:
space:
mode:
authoroharboe <oharboe@b42882b7-edfa-0310-969c-e2dbd0fdcd60>2008-09-01 07:20:21 +0000
committeroharboe <oharboe@b42882b7-edfa-0310-969c-e2dbd0fdcd60>2008-09-01 07:20:21 +0000
commitef1cfb23947bd32798077c6abb5c25a049460ae9 (patch)
tree678815a1db1e3d0ab37eb6ad8919b288cfb9a420 /src/target/arm720t.c
parent3c8ef2c41baea675526af28f01008fcb550f8748 (diff)
downloadopenocd_libswd-ef1cfb23947bd32798077c6abb5c25a049460ae9.tar.gz
openocd_libswd-ef1cfb23947bd32798077c6abb5c25a049460ae9.tar.bz2
openocd_libswd-ef1cfb23947bd32798077c6abb5c25a049460ae9.tar.xz
openocd_libswd-ef1cfb23947bd32798077c6abb5c25a049460ae9.zip
Duane Ellis: "target as an [tcl] object" feature.
git-svn-id: svn://svn.berlios.de/openocd/trunk@975 b42882b7-edfa-0310-969c-e2dbd0fdcd60
Diffstat (limited to 'src/target/arm720t.c')
-rw-r--r--src/target/arm720t.c35
1 files changed, 13 insertions, 22 deletions
diff --git a/src/target/arm720t.c b/src/target/arm720t.c
index fab553cf..e910af3e 100644
--- a/src/target/arm720t.c
+++ b/src/target/arm720t.c
@@ -42,7 +42,7 @@ int arm720t_handle_md_phys_command(struct command_context_s *cmd_ctx, char *cmd,
int arm720t_handle_mw_phys_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc);
/* forward declarations */
-int arm720t_target_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc, struct target_s *target);
+int arm720t_target_create(struct target_s *target,Jim_Interp *interp);
int arm720t_init_target(struct command_context_s *cmd_ctx, struct target_s *target);
int arm720t_quit(void);
int arm720t_arch_state(struct target_s *target);
@@ -81,7 +81,7 @@ target_type_t arm720t_target =
.remove_watchpoint = arm7_9_remove_watchpoint,
.register_commands = arm720t_register_commands,
- .target_command = arm720t_target_command,
+ .target_create = arm720t_target_create,
.init_target = arm720t_init_target,
.examine = arm7tdmi_examine,
.quit = arm720t_quit
@@ -436,7 +436,7 @@ int arm720t_quit(void)
return ERROR_OK;
}
-int arm720t_init_arch_info(target_t *target, arm720t_common_t *arm720t, int chain_pos, char *variant)
+int arm720t_init_arch_info(target_t *target, arm720t_common_t *arm720t, int chain_pos, const char *variant)
{
arm7tdmi_common_t *arm7tdmi = &arm720t->arm7tdmi_common;
arm7_9_common_t *arm7_9 = &arm7tdmi->arm7_9_common;
@@ -461,27 +461,11 @@ int arm720t_init_arch_info(target_t *target, arm720t_common_t *arm720t, int chai
return ERROR_OK;
}
-int arm720t_target_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc, struct target_s *target)
+int arm720t_target_create(struct target_s *target, Jim_Interp *interp)
{
- int chain_pos;
- char *variant = NULL;
- arm720t_common_t *arm720t = malloc(sizeof(arm720t_common_t));
- memset(arm720t, 0, sizeof(*arm720t));
+ arm720t_common_t *arm720t = calloc(1,sizeof(arm720t_common_t));
- if (argc < 4)
- {
- LOG_ERROR("'target arm720t' requires at least one additional argument");
- exit(-1);
- }
-
- chain_pos = strtoul(args[3], NULL, 0);
-
- if (argc >= 5)
- variant = args[4];
-
- LOG_DEBUG("chain_pos: %i, variant: %s", chain_pos, variant);
-
- arm720t_init_arch_info(target, arm720t, chain_pos, variant);
+ arm720t_init_arch_info(target, arm720t, target->chain_position, target->variant);
return ERROR_OK;
}
@@ -644,3 +628,10 @@ int arm720t_handle_mw_phys_command(command_context_t *cmd_ctx, char *cmd, char *
return armv4_5_mmu_handle_mw_phys_command(cmd_ctx, cmd, args, argc, target, &arm720t->armv4_5_mmu);
}
+
+/*
+ * Local Variables: ***
+ * c-basic-offset: 4 ***
+ * tab-width: 4 ***
+ * End: ***
+ */