remove target_type register_command callback
Uses chaining of command_registration structures to eliminate all target_type register_callback routines. Exports the command_handler registration arrays for those target types that are used by others.__archive__
parent
144e3678bd
commit
66ee303456
|
@ -1616,6 +1616,12 @@ static const struct command_registration arm11_any_command_handlers[] = {
|
||||||
COMMAND_REGISTRATION_DONE
|
COMMAND_REGISTRATION_DONE
|
||||||
};
|
};
|
||||||
static const struct command_registration arm11_command_handlers[] = {
|
static const struct command_registration arm11_command_handlers[] = {
|
||||||
|
{
|
||||||
|
.chain = arm_command_handlers,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
.chain = etm_command_handlers,
|
||||||
|
},
|
||||||
{
|
{
|
||||||
.name = "arm11",
|
.name = "arm11",
|
||||||
.mode = COMMAND_ANY,
|
.mode = COMMAND_ANY,
|
||||||
|
@ -1625,13 +1631,6 @@ static const struct command_registration arm11_command_handlers[] = {
|
||||||
COMMAND_REGISTRATION_DONE
|
COMMAND_REGISTRATION_DONE
|
||||||
};
|
};
|
||||||
|
|
||||||
static int arm11_register_commands(struct command_context *cmd_ctx)
|
|
||||||
{
|
|
||||||
armv4_5_register_commands(cmd_ctx);
|
|
||||||
etm_register_commands(cmd_ctx);
|
|
||||||
return register_commands(cmd_ctx, NULL, arm11_command_handlers);
|
|
||||||
}
|
|
||||||
|
|
||||||
/** Holds methods for ARM11xx targets. */
|
/** Holds methods for ARM11xx targets. */
|
||||||
struct target_type arm11_target = {
|
struct target_type arm11_target = {
|
||||||
.name = "arm11",
|
.name = "arm11",
|
||||||
|
@ -1666,7 +1665,7 @@ struct target_type arm11_target = {
|
||||||
|
|
||||||
.run_algorithm = armv4_5_run_algorithm,
|
.run_algorithm = armv4_5_run_algorithm,
|
||||||
|
|
||||||
.register_commands = arm11_register_commands,
|
.commands = arm11_command_handlers,
|
||||||
.target_create = arm11_target_create,
|
.target_create = arm11_target_create,
|
||||||
.init_target = arm11_init_target,
|
.init_target = arm11_init_target,
|
||||||
.examine = arm11_examine,
|
.examine = arm11_examine,
|
||||||
|
|
|
@ -503,6 +503,9 @@ static const struct command_registration arm720t_exec_command_handlers[] = {
|
||||||
};
|
};
|
||||||
|
|
||||||
static const struct command_registration arm720t_command_handlers[] = {
|
static const struct command_registration arm720t_command_handlers[] = {
|
||||||
|
{
|
||||||
|
.chain = arm7_9_command_handlers,
|
||||||
|
},
|
||||||
{
|
{
|
||||||
.name = "arm720t",
|
.name = "arm720t",
|
||||||
.mode = COMMAND_ANY,
|
.mode = COMMAND_ANY,
|
||||||
|
@ -512,12 +515,6 @@ static const struct command_registration arm720t_command_handlers[] = {
|
||||||
COMMAND_REGISTRATION_DONE
|
COMMAND_REGISTRATION_DONE
|
||||||
};
|
};
|
||||||
|
|
||||||
static int arm720t_register_commands(struct command_context *cmd_ctx)
|
|
||||||
{
|
|
||||||
arm7_9_register_commands(cmd_ctx);
|
|
||||||
return register_commands(cmd_ctx, NULL, arm720t_command_handlers);
|
|
||||||
}
|
|
||||||
|
|
||||||
/** Holds methods for ARM720 targets. */
|
/** Holds methods for ARM720 targets. */
|
||||||
struct target_type arm720t_target =
|
struct target_type arm720t_target =
|
||||||
{
|
{
|
||||||
|
@ -555,7 +552,7 @@ struct target_type arm720t_target =
|
||||||
.add_watchpoint = arm7_9_add_watchpoint,
|
.add_watchpoint = arm7_9_add_watchpoint,
|
||||||
.remove_watchpoint = arm7_9_remove_watchpoint,
|
.remove_watchpoint = arm7_9_remove_watchpoint,
|
||||||
|
|
||||||
.register_commands = arm720t_register_commands,
|
.commands = arm720t_command_handlers,
|
||||||
.target_create = arm720t_target_create,
|
.target_create = arm720t_target_create,
|
||||||
.init_target = arm720t_init_target,
|
.init_target = arm720t_init_target,
|
||||||
.examine = arm7_9_examine,
|
.examine = arm7_9_examine,
|
||||||
|
|
|
@ -2873,7 +2873,13 @@ static const struct command_registration arm7_9_any_command_handlers[] = {
|
||||||
},
|
},
|
||||||
COMMAND_REGISTRATION_DONE
|
COMMAND_REGISTRATION_DONE
|
||||||
};
|
};
|
||||||
static const struct command_registration arm7_9_command_handlers[] = {
|
const struct command_registration arm7_9_command_handlers[] = {
|
||||||
|
{
|
||||||
|
.chain = arm_command_handlers,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
.chain = etm_command_handlers,
|
||||||
|
},
|
||||||
{
|
{
|
||||||
.name = "arm7_9",
|
.name = "arm7_9",
|
||||||
.mode = COMMAND_ANY,
|
.mode = COMMAND_ANY,
|
||||||
|
@ -2882,10 +2888,3 @@ static const struct command_registration arm7_9_command_handlers[] = {
|
||||||
},
|
},
|
||||||
COMMAND_REGISTRATION_DONE
|
COMMAND_REGISTRATION_DONE
|
||||||
};
|
};
|
||||||
|
|
||||||
int arm7_9_register_commands(struct command_context *cmd_ctx)
|
|
||||||
{
|
|
||||||
armv4_5_register_commands(cmd_ctx);
|
|
||||||
etm_register_commands(cmd_ctx);
|
|
||||||
return register_commands(cmd_ctx, NULL, arm7_9_command_handlers);
|
|
||||||
}
|
|
||||||
|
|
|
@ -120,7 +120,7 @@ static inline bool is_arm7_9(struct arm7_9_common *arm7_9)
|
||||||
return arm7_9->common_magic == ARM7_9_COMMON_MAGIC;
|
return arm7_9->common_magic == ARM7_9_COMMON_MAGIC;
|
||||||
}
|
}
|
||||||
|
|
||||||
int arm7_9_register_commands(struct command_context *cmd_ctx);
|
extern const struct command_registration arm7_9_command_handlers[];
|
||||||
|
|
||||||
int arm7_9_poll(struct target *target);
|
int arm7_9_poll(struct target *target);
|
||||||
|
|
||||||
|
|
|
@ -747,7 +747,7 @@ struct target_type arm7tdmi_target =
|
||||||
.add_watchpoint = arm7_9_add_watchpoint,
|
.add_watchpoint = arm7_9_add_watchpoint,
|
||||||
.remove_watchpoint = arm7_9_remove_watchpoint,
|
.remove_watchpoint = arm7_9_remove_watchpoint,
|
||||||
|
|
||||||
.register_commands = arm7_9_register_commands,
|
.commands = arm7_9_command_handlers,
|
||||||
.target_create = arm7tdmi_target_create,
|
.target_create = arm7tdmi_target_create,
|
||||||
.init_target = arm7tdmi_init_target,
|
.init_target = arm7tdmi_init_target,
|
||||||
.examine = arm7_9_examine,
|
.examine = arm7_9_examine,
|
||||||
|
|
|
@ -1396,7 +1396,10 @@ static const struct command_registration arm920t_exec_command_handlers[] = {
|
||||||
},
|
},
|
||||||
COMMAND_REGISTRATION_DONE
|
COMMAND_REGISTRATION_DONE
|
||||||
};
|
};
|
||||||
static const struct command_registration arm920t_command_handlers[] = {
|
const struct command_registration arm920t_command_handlers[] = {
|
||||||
|
{
|
||||||
|
.chain = arm9tdmi_command_handlers,
|
||||||
|
},
|
||||||
{
|
{
|
||||||
.name = "arm920t",
|
.name = "arm920t",
|
||||||
.mode = COMMAND_ANY,
|
.mode = COMMAND_ANY,
|
||||||
|
@ -1406,13 +1409,6 @@ static const struct command_registration arm920t_command_handlers[] = {
|
||||||
COMMAND_REGISTRATION_DONE
|
COMMAND_REGISTRATION_DONE
|
||||||
};
|
};
|
||||||
|
|
||||||
/** Registers commands to access coprocessor, cache, and MMU resources. */
|
|
||||||
int arm920t_register_commands(struct command_context *cmd_ctx)
|
|
||||||
{
|
|
||||||
arm9tdmi_register_commands(cmd_ctx);
|
|
||||||
return register_commands(cmd_ctx, NULL, arm920t_command_handlers);
|
|
||||||
}
|
|
||||||
|
|
||||||
/** Holds methods for ARM920 targets. */
|
/** Holds methods for ARM920 targets. */
|
||||||
struct target_type arm920t_target =
|
struct target_type arm920t_target =
|
||||||
{
|
{
|
||||||
|
@ -1452,7 +1448,7 @@ struct target_type arm920t_target =
|
||||||
.add_watchpoint = arm7_9_add_watchpoint,
|
.add_watchpoint = arm7_9_add_watchpoint,
|
||||||
.remove_watchpoint = arm7_9_remove_watchpoint,
|
.remove_watchpoint = arm7_9_remove_watchpoint,
|
||||||
|
|
||||||
.register_commands = arm920t_register_commands,
|
.commands = arm920t_command_handlers,
|
||||||
.target_create = arm920t_target_create,
|
.target_create = arm920t_target_create,
|
||||||
.init_target = arm9tdmi_init_target,
|
.init_target = arm9tdmi_init_target,
|
||||||
.examine = arm7_9_examine,
|
.examine = arm7_9_examine,
|
||||||
|
|
|
@ -71,6 +71,7 @@ void arm920t_disable_mmu_caches(struct target *target,
|
||||||
int mmu, int d_u_cache, int i_cache);
|
int mmu, int d_u_cache, int i_cache);
|
||||||
void arm920t_enable_mmu_caches(struct target *target,
|
void arm920t_enable_mmu_caches(struct target *target,
|
||||||
int mmu, int d_u_cache, int i_cache);
|
int mmu, int d_u_cache, int i_cache);
|
||||||
int arm920t_register_commands(struct command_context *cmd_ctx);
|
|
||||||
|
extern const struct command_registration arm920t_command_handlers[];
|
||||||
|
|
||||||
#endif /* ARM920T_H */
|
#endif /* ARM920T_H */
|
||||||
|
|
|
@ -766,7 +766,10 @@ static const struct command_registration arm926ejs_exec_command_handlers[] = {
|
||||||
},
|
},
|
||||||
COMMAND_REGISTRATION_DONE
|
COMMAND_REGISTRATION_DONE
|
||||||
};
|
};
|
||||||
static const struct command_registration arm926ejs_command_handlers[] = {
|
const struct command_registration arm926ejs_command_handlers[] = {
|
||||||
|
{
|
||||||
|
.chain = arm9tdmi_command_handlers,
|
||||||
|
},
|
||||||
{
|
{
|
||||||
.name = "arm926ejs",
|
.name = "arm926ejs",
|
||||||
.mode = COMMAND_ANY,
|
.mode = COMMAND_ANY,
|
||||||
|
@ -776,13 +779,6 @@ static const struct command_registration arm926ejs_command_handlers[] = {
|
||||||
COMMAND_REGISTRATION_DONE
|
COMMAND_REGISTRATION_DONE
|
||||||
};
|
};
|
||||||
|
|
||||||
/** Registers commands to access coprocessor, cache, and debug resources. */
|
|
||||||
int arm926ejs_register_commands(struct command_context *cmd_ctx)
|
|
||||||
{
|
|
||||||
arm9tdmi_register_commands(cmd_ctx);
|
|
||||||
return register_commands(cmd_ctx, NULL, arm926ejs_command_handlers);
|
|
||||||
}
|
|
||||||
|
|
||||||
/** Holds methods for ARM926 targets. */
|
/** Holds methods for ARM926 targets. */
|
||||||
struct target_type arm926ejs_target =
|
struct target_type arm926ejs_target =
|
||||||
{
|
{
|
||||||
|
@ -817,7 +813,7 @@ struct target_type arm926ejs_target =
|
||||||
.add_watchpoint = arm7_9_add_watchpoint,
|
.add_watchpoint = arm7_9_add_watchpoint,
|
||||||
.remove_watchpoint = arm7_9_remove_watchpoint,
|
.remove_watchpoint = arm7_9_remove_watchpoint,
|
||||||
|
|
||||||
.register_commands = arm926ejs_register_commands,
|
.commands = arm926ejs_command_handlers,
|
||||||
.target_create = arm926ejs_target_create,
|
.target_create = arm926ejs_target_create,
|
||||||
.init_target = arm9tdmi_init_target,
|
.init_target = arm9tdmi_init_target,
|
||||||
.examine = arm7_9_examine,
|
.examine = arm7_9_examine,
|
||||||
|
|
|
@ -48,10 +48,11 @@ target_to_arm926(struct target *target)
|
||||||
|
|
||||||
int arm926ejs_init_arch_info(struct target *target,
|
int arm926ejs_init_arch_info(struct target *target,
|
||||||
struct arm926ejs_common *arm926ejs, struct jtag_tap *tap);
|
struct arm926ejs_common *arm926ejs, struct jtag_tap *tap);
|
||||||
int arm926ejs_register_commands(struct command_context *cmd_ctx);
|
|
||||||
int arm926ejs_arch_state(struct target *target);
|
int arm926ejs_arch_state(struct target *target);
|
||||||
int arm926ejs_write_memory(struct target *target,
|
int arm926ejs_write_memory(struct target *target,
|
||||||
uint32_t address, uint32_t size, uint32_t count, uint8_t *buffer);
|
uint32_t address, uint32_t size, uint32_t count, uint8_t *buffer);
|
||||||
int arm926ejs_soft_reset_halt(struct target *target);
|
int arm926ejs_soft_reset_halt(struct target *target);
|
||||||
|
|
||||||
|
extern const struct command_registration arm926ejs_command_handlers[];
|
||||||
|
|
||||||
#endif /* ARM926EJS_H */
|
#endif /* ARM926EJS_H */
|
||||||
|
|
|
@ -232,7 +232,10 @@ static const struct command_registration arm966e_exec_command_handlers[] = {
|
||||||
COMMAND_REGISTRATION_DONE
|
COMMAND_REGISTRATION_DONE
|
||||||
};
|
};
|
||||||
|
|
||||||
static const struct command_registration arm966e_command_handlers[] = {
|
const struct command_registration arm966e_command_handlers[] = {
|
||||||
|
{
|
||||||
|
.chain = arm9tdmi_command_handlers,
|
||||||
|
},
|
||||||
{
|
{
|
||||||
.name = "arm966e",
|
.name = "arm966e",
|
||||||
.mode = COMMAND_ANY,
|
.mode = COMMAND_ANY,
|
||||||
|
@ -242,13 +245,6 @@ static const struct command_registration arm966e_command_handlers[] = {
|
||||||
COMMAND_REGISTRATION_DONE
|
COMMAND_REGISTRATION_DONE
|
||||||
};
|
};
|
||||||
|
|
||||||
/** Registers commands used to access coprocessor resources. */
|
|
||||||
int arm966e_register_commands(struct command_context *cmd_ctx)
|
|
||||||
{
|
|
||||||
arm9tdmi_register_commands(cmd_ctx);
|
|
||||||
return register_commands(cmd_ctx, NULL, arm966e_command_handlers);
|
|
||||||
}
|
|
||||||
|
|
||||||
/** Holds methods for ARM966 targets. */
|
/** Holds methods for ARM966 targets. */
|
||||||
struct target_type arm966e_target =
|
struct target_type arm966e_target =
|
||||||
{
|
{
|
||||||
|
@ -283,7 +279,7 @@ struct target_type arm966e_target =
|
||||||
.add_watchpoint = arm7_9_add_watchpoint,
|
.add_watchpoint = arm7_9_add_watchpoint,
|
||||||
.remove_watchpoint = arm7_9_remove_watchpoint,
|
.remove_watchpoint = arm7_9_remove_watchpoint,
|
||||||
|
|
||||||
.register_commands = arm966e_register_commands,
|
.commands = arm966e_command_handlers,
|
||||||
.target_create = arm966e_target_create,
|
.target_create = arm966e_target_create,
|
||||||
.init_target = arm9tdmi_init_target,
|
.init_target = arm9tdmi_init_target,
|
||||||
.examine = arm7_9_examine,
|
.examine = arm7_9_examine,
|
||||||
|
|
|
@ -43,7 +43,8 @@ target_to_arm966(struct target *target)
|
||||||
|
|
||||||
int arm966e_init_arch_info(struct target *target,
|
int arm966e_init_arch_info(struct target *target,
|
||||||
struct arm966e_common *arm966e, struct jtag_tap *tap);
|
struct arm966e_common *arm966e, struct jtag_tap *tap);
|
||||||
int arm966e_register_commands(struct command_context *cmd_ctx);
|
|
||||||
int arm966e_write_cp15(struct target *target, int reg_addr, uint32_t value);
|
int arm966e_write_cp15(struct target *target, int reg_addr, uint32_t value);
|
||||||
|
|
||||||
|
extern const struct command_registration arm966e_command_handlers[];
|
||||||
|
|
||||||
#endif /* ARM966E_H */
|
#endif /* ARM966E_H */
|
||||||
|
|
|
@ -917,7 +917,10 @@ static const struct command_registration arm9tdmi_exec_command_handlers[] = {
|
||||||
},
|
},
|
||||||
COMMAND_REGISTRATION_DONE
|
COMMAND_REGISTRATION_DONE
|
||||||
};
|
};
|
||||||
static const struct command_registration arm9tdmi_command_handlers[] = {
|
const struct command_registration arm9tdmi_command_handlers[] = {
|
||||||
|
{
|
||||||
|
.chain = arm7_9_command_handlers,
|
||||||
|
},
|
||||||
{
|
{
|
||||||
.name = "arm9tdmi",
|
.name = "arm9tdmi",
|
||||||
.mode = COMMAND_ANY,
|
.mode = COMMAND_ANY,
|
||||||
|
@ -927,12 +930,6 @@ static const struct command_registration arm9tdmi_command_handlers[] = {
|
||||||
COMMAND_REGISTRATION_DONE
|
COMMAND_REGISTRATION_DONE
|
||||||
};
|
};
|
||||||
|
|
||||||
int arm9tdmi_register_commands(struct command_context *cmd_ctx)
|
|
||||||
{
|
|
||||||
arm7_9_register_commands(cmd_ctx);
|
|
||||||
return register_commands(cmd_ctx, NULL, arm9tdmi_command_handlers);
|
|
||||||
}
|
|
||||||
|
|
||||||
/** Holds methods for ARM9TDMI targets. */
|
/** Holds methods for ARM9TDMI targets. */
|
||||||
struct target_type arm9tdmi_target =
|
struct target_type arm9tdmi_target =
|
||||||
{
|
{
|
||||||
|
@ -967,7 +964,7 @@ struct target_type arm9tdmi_target =
|
||||||
.add_watchpoint = arm7_9_add_watchpoint,
|
.add_watchpoint = arm7_9_add_watchpoint,
|
||||||
.remove_watchpoint = arm7_9_remove_watchpoint,
|
.remove_watchpoint = arm7_9_remove_watchpoint,
|
||||||
|
|
||||||
.register_commands = arm9tdmi_register_commands,
|
.commands = arm9tdmi_command_handlers,
|
||||||
.target_create = arm9tdmi_target_create,
|
.target_create = arm9tdmi_target_create,
|
||||||
.init_target = arm9tdmi_init_target,
|
.init_target = arm9tdmi_init_target,
|
||||||
.examine = arm7_9_examine,
|
.examine = arm7_9_examine,
|
||||||
|
|
|
@ -29,7 +29,7 @@ int arm9tdmi_init_target(struct command_context *cmd_ctx,
|
||||||
struct target *target);
|
struct target *target);
|
||||||
int arm9tdmi_init_arch_info(struct target *target,
|
int arm9tdmi_init_arch_info(struct target *target,
|
||||||
struct arm7_9_common *arm7_9, struct jtag_tap *tap);
|
struct arm7_9_common *arm7_9, struct jtag_tap *tap);
|
||||||
int arm9tdmi_register_commands(struct command_context *cmd_ctx);
|
extern const struct command_registration arm9tdmi_command_handlers[];
|
||||||
|
|
||||||
int arm9tdmi_clock_out(struct arm_jtag *jtag_info,
|
int arm9tdmi_clock_out(struct arm_jtag *jtag_info,
|
||||||
uint32_t instr, uint32_t out, uint32_t *in, int sysspeed);
|
uint32_t instr, uint32_t out, uint32_t *in, int sysspeed);
|
||||||
|
|
|
@ -809,7 +809,7 @@ static const struct command_registration arm_exec_command_handlers[] = {
|
||||||
},
|
},
|
||||||
COMMAND_REGISTRATION_DONE
|
COMMAND_REGISTRATION_DONE
|
||||||
};
|
};
|
||||||
static const struct command_registration arm_command_handlers[] = {
|
const struct command_registration arm_command_handlers[] = {
|
||||||
{
|
{
|
||||||
.name = "arm",
|
.name = "arm",
|
||||||
.mode = COMMAND_ANY,
|
.mode = COMMAND_ANY,
|
||||||
|
@ -819,11 +819,6 @@ static const struct command_registration arm_command_handlers[] = {
|
||||||
COMMAND_REGISTRATION_DONE
|
COMMAND_REGISTRATION_DONE
|
||||||
};
|
};
|
||||||
|
|
||||||
int armv4_5_register_commands(struct command_context *cmd_ctx)
|
|
||||||
{
|
|
||||||
return register_commands(cmd_ctx, NULL, arm_command_handlers);
|
|
||||||
}
|
|
||||||
|
|
||||||
int armv4_5_get_gdb_reg_list(struct target *target, struct reg **reg_list[], int *reg_list_size)
|
int armv4_5_get_gdb_reg_list(struct target *target, struct reg **reg_list[], int *reg_list_size)
|
||||||
{
|
{
|
||||||
struct arm *armv4_5 = target_to_armv4_5(target);
|
struct arm *armv4_5 = target_to_armv4_5(target);
|
||||||
|
|
|
@ -27,6 +27,8 @@
|
||||||
#define ARMV4_5_H
|
#define ARMV4_5_H
|
||||||
|
|
||||||
#include "target.h"
|
#include "target.h"
|
||||||
|
#include "command.h"
|
||||||
|
|
||||||
|
|
||||||
typedef enum armv4_5_mode
|
typedef enum armv4_5_mode
|
||||||
{
|
{
|
||||||
|
@ -155,7 +157,8 @@ int armv4_5_arch_state(struct target *target);
|
||||||
int armv4_5_get_gdb_reg_list(struct target *target,
|
int armv4_5_get_gdb_reg_list(struct target *target,
|
||||||
struct reg **reg_list[], int *reg_list_size);
|
struct reg **reg_list[], int *reg_list_size);
|
||||||
|
|
||||||
int armv4_5_register_commands(struct command_context *cmd_ctx);
|
extern const struct command_registration arm_command_handlers[];
|
||||||
|
|
||||||
int armv4_5_init_arch_info(struct target *target, struct arm *armv4_5);
|
int armv4_5_init_arch_info(struct target *target, struct arm *armv4_5);
|
||||||
|
|
||||||
int armv4_5_run_algorithm(struct target *target,
|
int armv4_5_run_algorithm(struct target *target,
|
||||||
|
|
|
@ -181,7 +181,7 @@ static const struct command_registration armv7a_exec_command_handlers[] = {
|
||||||
},
|
},
|
||||||
COMMAND_REGISTRATION_DONE
|
COMMAND_REGISTRATION_DONE
|
||||||
};
|
};
|
||||||
static const struct command_registration armv7a_command_handlers[] = {
|
const struct command_registration armv7a_command_handlers[] = {
|
||||||
{
|
{
|
||||||
.name = "dap",
|
.name = "dap",
|
||||||
.mode = COMMAND_ANY,
|
.mode = COMMAND_ANY,
|
||||||
|
@ -191,7 +191,3 @@ static const struct command_registration armv7a_command_handlers[] = {
|
||||||
COMMAND_REGISTRATION_DONE
|
COMMAND_REGISTRATION_DONE
|
||||||
};
|
};
|
||||||
|
|
||||||
int armv7a_register_commands(struct command_context *cmd_ctx)
|
|
||||||
{
|
|
||||||
return register_commands(cmd_ctx, NULL, armv7a_command_handlers);
|
|
||||||
}
|
|
||||||
|
|
|
@ -103,7 +103,8 @@ struct armv7a_core_reg
|
||||||
int armv7a_arch_state(struct target *target);
|
int armv7a_arch_state(struct target *target);
|
||||||
struct reg_cache *armv7a_build_reg_cache(struct target *target,
|
struct reg_cache *armv7a_build_reg_cache(struct target *target,
|
||||||
struct armv7a_common *armv7a_common);
|
struct armv7a_common *armv7a_common);
|
||||||
int armv7a_register_commands(struct command_context *cmd_ctx);
|
|
||||||
int armv7a_init_arch_info(struct target *target, struct armv7a_common *armv7a);
|
int armv7a_init_arch_info(struct target *target, struct armv7a_common *armv7a);
|
||||||
|
|
||||||
|
extern const struct command_registration armv7a_command_handlers[];
|
||||||
|
|
||||||
#endif /* ARMV4_5_H */
|
#endif /* ARMV4_5_H */
|
||||||
|
|
|
@ -832,7 +832,7 @@ static const struct command_registration armv7m_exec_command_handlers[] = {
|
||||||
},
|
},
|
||||||
COMMAND_REGISTRATION_DONE
|
COMMAND_REGISTRATION_DONE
|
||||||
};
|
};
|
||||||
static const struct command_registration armv7m_command_handlers[] = {
|
const struct command_registration armv7m_command_handlers[] = {
|
||||||
{
|
{
|
||||||
.name = "dap",
|
.name = "dap",
|
||||||
.mode = COMMAND_ANY,
|
.mode = COMMAND_ANY,
|
||||||
|
@ -841,8 +841,3 @@ static const struct command_registration armv7m_command_handlers[] = {
|
||||||
},
|
},
|
||||||
COMMAND_REGISTRATION_DONE
|
COMMAND_REGISTRATION_DONE
|
||||||
};
|
};
|
||||||
|
|
||||||
int armv7m_register_commands(struct command_context *cmd_ctx)
|
|
||||||
{
|
|
||||||
return register_commands(cmd_ctx, NULL, armv7m_command_handlers);
|
|
||||||
}
|
|
||||||
|
|
|
@ -143,7 +143,6 @@ int armv7m_arch_state(struct target *target);
|
||||||
int armv7m_get_gdb_reg_list(struct target *target,
|
int armv7m_get_gdb_reg_list(struct target *target,
|
||||||
struct reg **reg_list[], int *reg_list_size);
|
struct reg **reg_list[], int *reg_list_size);
|
||||||
|
|
||||||
int armv7m_register_commands(struct command_context *cmd_ctx);
|
|
||||||
int armv7m_init_arch_info(struct target *target, struct armv7m_common *armv7m);
|
int armv7m_init_arch_info(struct target *target, struct armv7m_common *armv7m);
|
||||||
|
|
||||||
int armv7m_run_algorithm(struct target *target,
|
int armv7m_run_algorithm(struct target *target,
|
||||||
|
@ -161,6 +160,8 @@ int armv7m_checksum_memory(struct target *target,
|
||||||
int armv7m_blank_check_memory(struct target *target,
|
int armv7m_blank_check_memory(struct target *target,
|
||||||
uint32_t address, uint32_t count, uint32_t* blank);
|
uint32_t address, uint32_t count, uint32_t* blank);
|
||||||
|
|
||||||
|
extern const struct command_registration armv7m_command_handlers[];
|
||||||
|
|
||||||
/* Thumb mode instructions
|
/* Thumb mode instructions
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
|
@ -28,9 +28,6 @@
|
||||||
|
|
||||||
#define AVR_JTAG_INS_LEN 4
|
#define AVR_JTAG_INS_LEN 4
|
||||||
|
|
||||||
/* cli handling */
|
|
||||||
int avr_register_commands(struct command_context *cmd_ctx);
|
|
||||||
|
|
||||||
/* forward declarations */
|
/* forward declarations */
|
||||||
int avr_target_create(struct target *target, Jim_Interp *interp);
|
int avr_target_create(struct target *target, Jim_Interp *interp);
|
||||||
int avr_init_target(struct command_context *cmd_ctx, struct target *target);
|
int avr_init_target(struct command_context *cmd_ctx, struct target *target);
|
||||||
|
@ -91,17 +88,10 @@ struct target_type avr_target =
|
||||||
.add_watchpoint = avr_add_watchpoint,
|
.add_watchpoint = avr_add_watchpoint,
|
||||||
.remove_watchpoint = avr_remove_watchpoint,
|
.remove_watchpoint = avr_remove_watchpoint,
|
||||||
*/
|
*/
|
||||||
.register_commands = avr_register_commands,
|
|
||||||
.target_create = avr_target_create,
|
.target_create = avr_target_create,
|
||||||
.init_target = avr_init_target,
|
.init_target = avr_init_target,
|
||||||
};
|
};
|
||||||
|
|
||||||
int avr_register_commands(struct command_context *cmd_ctx)
|
|
||||||
{
|
|
||||||
LOG_DEBUG("%s", __FUNCTION__);
|
|
||||||
return ERROR_OK;
|
|
||||||
}
|
|
||||||
|
|
||||||
int avr_target_create(struct target *target, Jim_Interp *interp)
|
int avr_target_create(struct target *target, Jim_Interp *interp)
|
||||||
{
|
{
|
||||||
struct avr_common *avr = calloc(1, sizeof(struct avr_common));
|
struct avr_common *avr = calloc(1, sizeof(struct avr_common));
|
||||||
|
|
|
@ -1641,6 +1641,12 @@ static const struct command_registration cortex_a8_exec_command_handlers[] = {
|
||||||
COMMAND_REGISTRATION_DONE
|
COMMAND_REGISTRATION_DONE
|
||||||
};
|
};
|
||||||
static const struct command_registration cortex_a8_command_handlers[] = {
|
static const struct command_registration cortex_a8_command_handlers[] = {
|
||||||
|
{
|
||||||
|
.chain = arm_command_handlers,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
.chain = armv7a_command_handlers,
|
||||||
|
},
|
||||||
{
|
{
|
||||||
.name = "cortex_a8",
|
.name = "cortex_a8",
|
||||||
.mode = COMMAND_ANY,
|
.mode = COMMAND_ANY,
|
||||||
|
@ -1650,13 +1656,6 @@ static const struct command_registration cortex_a8_command_handlers[] = {
|
||||||
COMMAND_REGISTRATION_DONE
|
COMMAND_REGISTRATION_DONE
|
||||||
};
|
};
|
||||||
|
|
||||||
static int cortex_a8_register_commands(struct command_context *cmd_ctx)
|
|
||||||
{
|
|
||||||
armv4_5_register_commands(cmd_ctx);
|
|
||||||
armv7a_register_commands(cmd_ctx);
|
|
||||||
return register_commands(cmd_ctx, NULL, cortex_a8_command_handlers);
|
|
||||||
}
|
|
||||||
|
|
||||||
struct target_type cortexa8_target = {
|
struct target_type cortexa8_target = {
|
||||||
.name = "cortex_a8",
|
.name = "cortex_a8",
|
||||||
|
|
||||||
|
@ -1689,7 +1688,7 @@ struct target_type cortexa8_target = {
|
||||||
.add_watchpoint = NULL,
|
.add_watchpoint = NULL,
|
||||||
.remove_watchpoint = NULL,
|
.remove_watchpoint = NULL,
|
||||||
|
|
||||||
.register_commands = cortex_a8_register_commands,
|
.commands = cortex_a8_command_handlers,
|
||||||
.target_create = cortex_a8_target_create,
|
.target_create = cortex_a8_target_create,
|
||||||
.init_target = cortex_a8_init_target,
|
.init_target = cortex_a8_init_target,
|
||||||
.examine = cortex_a8_examine,
|
.examine = cortex_a8_examine,
|
||||||
|
|
|
@ -1937,6 +1937,12 @@ static const struct command_registration cortex_m3_exec_command_handlers[] = {
|
||||||
COMMAND_REGISTRATION_DONE
|
COMMAND_REGISTRATION_DONE
|
||||||
};
|
};
|
||||||
static const struct command_registration cortex_m3_command_handlers[] = {
|
static const struct command_registration cortex_m3_command_handlers[] = {
|
||||||
|
{
|
||||||
|
.chain = arm_command_handlers,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
.chain = armv7m_command_handlers,
|
||||||
|
},
|
||||||
{
|
{
|
||||||
.name = "cortex_m3",
|
.name = "cortex_m3",
|
||||||
.mode = COMMAND_ANY,
|
.mode = COMMAND_ANY,
|
||||||
|
@ -1946,12 +1952,6 @@ static const struct command_registration cortex_m3_command_handlers[] = {
|
||||||
COMMAND_REGISTRATION_DONE
|
COMMAND_REGISTRATION_DONE
|
||||||
};
|
};
|
||||||
|
|
||||||
static int cortex_m3_register_commands(struct command_context *cmd_ctx)
|
|
||||||
{
|
|
||||||
armv7m_register_commands(cmd_ctx);
|
|
||||||
return register_commands(cmd_ctx, NULL, cortex_m3_command_handlers);
|
|
||||||
}
|
|
||||||
|
|
||||||
struct target_type cortexm3_target =
|
struct target_type cortexm3_target =
|
||||||
{
|
{
|
||||||
.name = "cortex_m3",
|
.name = "cortex_m3",
|
||||||
|
@ -1984,7 +1984,7 @@ struct target_type cortexm3_target =
|
||||||
.add_watchpoint = cortex_m3_add_watchpoint,
|
.add_watchpoint = cortex_m3_add_watchpoint,
|
||||||
.remove_watchpoint = cortex_m3_remove_watchpoint,
|
.remove_watchpoint = cortex_m3_remove_watchpoint,
|
||||||
|
|
||||||
.register_commands = cortex_m3_register_commands,
|
.commands = cortex_m3_command_handlers,
|
||||||
.target_create = cortex_m3_target_create,
|
.target_create = cortex_m3_target_create,
|
||||||
.init_target = cortex_m3_init_target,
|
.init_target = cortex_m3_init_target,
|
||||||
.examine = cortex_m3_examine,
|
.examine = cortex_m3_examine,
|
||||||
|
|
|
@ -2103,7 +2103,7 @@ static const struct command_registration etm_config_command_handlers[] = {
|
||||||
},
|
},
|
||||||
COMMAND_REGISTRATION_DONE
|
COMMAND_REGISTRATION_DONE
|
||||||
};
|
};
|
||||||
static const struct command_registration etm_command_handlers[] = {
|
const struct command_registration etm_command_handlers[] = {
|
||||||
{
|
{
|
||||||
.name = "etm",
|
.name = "etm",
|
||||||
.mode = COMMAND_ANY,
|
.mode = COMMAND_ANY,
|
||||||
|
@ -2113,11 +2113,6 @@ static const struct command_registration etm_command_handlers[] = {
|
||||||
COMMAND_REGISTRATION_DONE
|
COMMAND_REGISTRATION_DONE
|
||||||
};
|
};
|
||||||
|
|
||||||
int etm_register_commands(struct command_context *cmd_ctx)
|
|
||||||
{
|
|
||||||
return register_commands(cmd_ctx, NULL, etm_command_handlers);
|
|
||||||
}
|
|
||||||
|
|
||||||
static const struct command_registration etm_exec_command_handlers[] = {
|
static const struct command_registration etm_exec_command_handlers[] = {
|
||||||
{
|
{
|
||||||
.name = "tracemode", handle_etm_tracemode_command,
|
.name = "tracemode", handle_etm_tracemode_command,
|
||||||
|
|
|
@ -212,7 +212,7 @@ struct reg_cache* etm_build_reg_cache(struct target *target,
|
||||||
|
|
||||||
int etm_setup(struct target *target);
|
int etm_setup(struct target *target);
|
||||||
|
|
||||||
int etm_register_commands(struct command_context *cmd_ctx);
|
extern const struct command_registration etm_command_handlers[];
|
||||||
|
|
||||||
#define ERROR_ETM_INVALID_DRIVER (-1300)
|
#define ERROR_ETM_INVALID_DRIVER (-1300)
|
||||||
#define ERROR_ETM_PORTMODE_NOT_SUPPORTED (-1301)
|
#define ERROR_ETM_PORTMODE_NOT_SUPPORTED (-1301)
|
||||||
|
|
|
@ -385,7 +385,7 @@ struct target_type fa526_target =
|
||||||
.add_watchpoint = arm7_9_add_watchpoint,
|
.add_watchpoint = arm7_9_add_watchpoint,
|
||||||
.remove_watchpoint = arm7_9_remove_watchpoint,
|
.remove_watchpoint = arm7_9_remove_watchpoint,
|
||||||
|
|
||||||
.register_commands = arm920t_register_commands,
|
.commands = arm920t_command_handlers,
|
||||||
.target_create = fa526_target_create,
|
.target_create = fa526_target_create,
|
||||||
.init_target = arm9tdmi_init_target,
|
.init_target = arm9tdmi_init_target,
|
||||||
.examine = arm7_9_examine,
|
.examine = arm7_9_examine,
|
||||||
|
|
|
@ -709,7 +709,7 @@ struct target_type feroceon_target =
|
||||||
.add_watchpoint = arm7_9_add_watchpoint,
|
.add_watchpoint = arm7_9_add_watchpoint,
|
||||||
.remove_watchpoint = arm7_9_remove_watchpoint,
|
.remove_watchpoint = arm7_9_remove_watchpoint,
|
||||||
|
|
||||||
.register_commands = arm926ejs_register_commands,
|
.commands = arm926ejs_command_handlers,
|
||||||
.target_create = feroceon_target_create,
|
.target_create = feroceon_target_create,
|
||||||
.init_target = feroceon_init_target,
|
.init_target = feroceon_init_target,
|
||||||
.examine = feroceon_examine,
|
.examine = feroceon_examine,
|
||||||
|
@ -748,7 +748,7 @@ struct target_type dragonite_target =
|
||||||
.add_watchpoint = arm7_9_add_watchpoint,
|
.add_watchpoint = arm7_9_add_watchpoint,
|
||||||
.remove_watchpoint = arm7_9_remove_watchpoint,
|
.remove_watchpoint = arm7_9_remove_watchpoint,
|
||||||
|
|
||||||
.register_commands = arm966e_register_commands,
|
.commands = arm966e_command_handlers,
|
||||||
.target_create = dragonite_target_create,
|
.target_create = dragonite_target_create,
|
||||||
.init_target = feroceon_init_target,
|
.init_target = feroceon_init_target,
|
||||||
.examine = feroceon_examine,
|
.examine = feroceon_examine,
|
||||||
|
|
|
@ -320,11 +320,6 @@ int mips32_init_arch_info(struct target *target, struct mips32_common *mips32, s
|
||||||
return ERROR_OK;
|
return ERROR_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
int mips32_register_commands(struct command_context *cmd_ctx)
|
|
||||||
{
|
|
||||||
return ERROR_OK;
|
|
||||||
}
|
|
||||||
|
|
||||||
int mips32_run_algorithm(struct target *target, int num_mem_params, struct mem_param *mem_params, int num_reg_params, struct reg_param *reg_params, uint32_t entry_point, uint32_t exit_point, int timeout_ms, void *arch_info)
|
int mips32_run_algorithm(struct target *target, int num_mem_params, struct mem_param *mem_params, int num_reg_params, struct reg_param *reg_params, uint32_t entry_point, uint32_t exit_point, int timeout_ms, void *arch_info)
|
||||||
{
|
{
|
||||||
/*TODO*/
|
/*TODO*/
|
||||||
|
|
|
@ -41,7 +41,6 @@ int mips_m4k_resume(struct target *target, int current, uint32_t address, int ha
|
||||||
int mips_m4k_step(struct target *target, int current, uint32_t address, int handle_breakpoints);
|
int mips_m4k_step(struct target *target, int current, uint32_t address, int handle_breakpoints);
|
||||||
int mips_m4k_read_memory(struct target *target, uint32_t address, uint32_t size, uint32_t count, uint8_t *buffer);
|
int mips_m4k_read_memory(struct target *target, uint32_t address, uint32_t size, uint32_t count, uint8_t *buffer);
|
||||||
int mips_m4k_write_memory(struct target *target, uint32_t address, uint32_t size, uint32_t count, uint8_t *buffer);
|
int mips_m4k_write_memory(struct target *target, uint32_t address, uint32_t size, uint32_t count, uint8_t *buffer);
|
||||||
int mips_m4k_register_commands(struct command_context *cmd_ctx);
|
|
||||||
int mips_m4k_init_target(struct command_context *cmd_ctx, struct target *target);
|
int mips_m4k_init_target(struct command_context *cmd_ctx, struct target *target);
|
||||||
int mips_m4k_target_create(struct target *target, Jim_Interp *interp);
|
int mips_m4k_target_create(struct target *target, Jim_Interp *interp);
|
||||||
|
|
||||||
|
@ -82,7 +81,6 @@ struct target_type mips_m4k_target =
|
||||||
.add_watchpoint = mips_m4k_add_watchpoint,
|
.add_watchpoint = mips_m4k_add_watchpoint,
|
||||||
.remove_watchpoint = mips_m4k_remove_watchpoint,
|
.remove_watchpoint = mips_m4k_remove_watchpoint,
|
||||||
|
|
||||||
.register_commands = mips_m4k_register_commands,
|
|
||||||
.target_create = mips_m4k_target_create,
|
.target_create = mips_m4k_target_create,
|
||||||
.init_target = mips_m4k_init_target,
|
.init_target = mips_m4k_init_target,
|
||||||
.examine = mips_m4k_examine,
|
.examine = mips_m4k_examine,
|
||||||
|
@ -902,14 +900,6 @@ int mips_m4k_write_memory(struct target *target, uint32_t address, uint32_t size
|
||||||
return mips32_dmaacc_write_mem(ejtag_info, address, size, count, (void *)buffer);
|
return mips32_dmaacc_write_mem(ejtag_info, address, size, count, (void *)buffer);
|
||||||
}
|
}
|
||||||
|
|
||||||
int mips_m4k_register_commands(struct command_context *cmd_ctx)
|
|
||||||
{
|
|
||||||
int retval;
|
|
||||||
|
|
||||||
retval = mips32_register_commands(cmd_ctx);
|
|
||||||
return retval;
|
|
||||||
}
|
|
||||||
|
|
||||||
int mips_m4k_init_target(struct command_context *cmd_ctx, struct target *target)
|
int mips_m4k_init_target(struct command_context *cmd_ctx, struct target *target)
|
||||||
{
|
{
|
||||||
mips32_build_reg_cache(target);
|
mips32_build_reg_cache(target);
|
||||||
|
|
|
@ -4353,9 +4353,14 @@ static int target_create(Jim_GetOptInfo *goi)
|
||||||
if (!target->variant)
|
if (!target->variant)
|
||||||
target->variant = strdup("");
|
target->variant = strdup("");
|
||||||
|
|
||||||
|
cp = Jim_GetString(new_cmd, NULL);
|
||||||
|
target->cmd_name = strdup(cp);
|
||||||
|
|
||||||
/* create the target specific commands */
|
/* create the target specific commands */
|
||||||
if (target->type->register_commands) {
|
if (target->type->commands) {
|
||||||
(*(target->type->register_commands))(cmd_ctx);
|
e = register_commands(cmd_ctx, NULL, target->type->commands);
|
||||||
|
if (ERROR_OK != e)
|
||||||
|
LOG_ERROR("unable to register '%s' commands", cp);
|
||||||
}
|
}
|
||||||
if (target->type->target_create) {
|
if (target->type->target_create) {
|
||||||
(*(target->type->target_create))(target, goi->interp);
|
(*(target->type->target_create))(target, goi->interp);
|
||||||
|
@ -4371,9 +4376,6 @@ static int target_create(Jim_GetOptInfo *goi)
|
||||||
*tpp = target;
|
*tpp = target;
|
||||||
}
|
}
|
||||||
|
|
||||||
cp = Jim_GetString(new_cmd, NULL);
|
|
||||||
target->cmd_name = strdup(cp);
|
|
||||||
|
|
||||||
/* now - create the new target name command */
|
/* now - create the new target name command */
|
||||||
e = Jim_CreateCommand(goi->interp,
|
e = Jim_CreateCommand(goi->interp,
|
||||||
/* name */
|
/* name */
|
||||||
|
|
|
@ -148,7 +148,7 @@ struct target_type
|
||||||
*/
|
*/
|
||||||
int (*run_algorithm)(struct target *target, int num_mem_params, struct mem_param *mem_params, int num_reg_params, struct reg_param *reg_param, uint32_t entry_point, uint32_t exit_point, int timeout_ms, void *arch_info);
|
int (*run_algorithm)(struct target *target, int num_mem_params, struct mem_param *mem_params, int num_reg_params, struct reg_param *reg_param, uint32_t entry_point, uint32_t exit_point, int timeout_ms, void *arch_info);
|
||||||
|
|
||||||
int (*register_commands)(struct command_context *cmd_ctx);
|
const struct command_registration *commands;
|
||||||
|
|
||||||
/* called when target is created */
|
/* called when target is created */
|
||||||
int (*target_create)(struct target *target, Jim_Interp *interp);
|
int (*target_create)(struct target *target, Jim_Interp *interp);
|
||||||
|
|
|
@ -3652,6 +3652,9 @@ static const struct command_registration xscale_any_command_handlers[] = {
|
||||||
COMMAND_REGISTRATION_DONE
|
COMMAND_REGISTRATION_DONE
|
||||||
};
|
};
|
||||||
static const struct command_registration xscale_command_handlers[] = {
|
static const struct command_registration xscale_command_handlers[] = {
|
||||||
|
{
|
||||||
|
.chain = arm_command_handlers,
|
||||||
|
},
|
||||||
{
|
{
|
||||||
.name = "xscale",
|
.name = "xscale",
|
||||||
.mode = COMMAND_ANY,
|
.mode = COMMAND_ANY,
|
||||||
|
@ -3661,14 +3664,6 @@ static const struct command_registration xscale_command_handlers[] = {
|
||||||
COMMAND_REGISTRATION_DONE
|
COMMAND_REGISTRATION_DONE
|
||||||
};
|
};
|
||||||
|
|
||||||
static int xscale_register_commands(struct command_context *cmd_ctx)
|
|
||||||
{
|
|
||||||
|
|
||||||
armv4_5_register_commands(cmd_ctx);
|
|
||||||
|
|
||||||
return ERROR_OK;
|
|
||||||
}
|
|
||||||
|
|
||||||
struct target_type xscale_target =
|
struct target_type xscale_target =
|
||||||
{
|
{
|
||||||
.name = "xscale",
|
.name = "xscale",
|
||||||
|
@ -3702,7 +3697,7 @@ struct target_type xscale_target =
|
||||||
.add_watchpoint = xscale_add_watchpoint,
|
.add_watchpoint = xscale_add_watchpoint,
|
||||||
.remove_watchpoint = xscale_remove_watchpoint,
|
.remove_watchpoint = xscale_remove_watchpoint,
|
||||||
|
|
||||||
.register_commands = xscale_register_commands,
|
.commands = xscale_command_handlers,
|
||||||
.target_create = xscale_target_create,
|
.target_create = xscale_target_create,
|
||||||
.init_target = xscale_init_target,
|
.init_target = xscale_init_target,
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue