semihosting: reorganize semihosting commands
the same semihosting handlers chain is declared twice: 1. in src/target/armv4_5.c 2. in src/target/riscv/riscv.c to make it simpler we moved the declaration into 'src/target/semihosting_common.c' under semihosting_common_handlers[]. then we used this into both of armv4_5.c and riscv.c Change-Id: If813b3fd5eb2476658f1308f741c4e805141f617 Signed-off-by: Tarek BOCHKATI <tarek.bouchkati@gmail.com> Reviewed-on: http://openocd.zylin.com/5473 Tested-by: jenkins Reviewed-by: Muhammad Omair Javaid <omair.javaid@linaro.org> Reviewed-by: Tim Newsome <tim@sifive.com> Reviewed-by: Liviu Ionescu <ilg@livius.net>
This commit is contained in:
parent
123e10288d
commit
a99bf2ea94
|
@ -1098,10 +1098,7 @@ static int jim_mcrmrc(Jim_Interp *interp, int argc, Jim_Obj * const *argv)
|
|||
return JIM_OK;
|
||||
}
|
||||
|
||||
extern __COMMAND_HANDLER(handle_common_semihosting_command);
|
||||
extern __COMMAND_HANDLER(handle_common_semihosting_fileio_command);
|
||||
extern __COMMAND_HANDLER(handle_common_semihosting_resumable_exit_command);
|
||||
extern __COMMAND_HANDLER(handle_common_semihosting_cmdline);
|
||||
extern const struct command_registration semihosting_common_handlers[];
|
||||
|
||||
static const struct command_registration arm_exec_command_handlers[] = {
|
||||
{
|
||||
|
@ -1140,32 +1137,7 @@ static const struct command_registration arm_exec_command_handlers[] = {
|
|||
.usage = "cpnum op1 CRn CRm op2",
|
||||
},
|
||||
{
|
||||
.name = "semihosting",
|
||||
.handler = handle_common_semihosting_command,
|
||||
.mode = COMMAND_EXEC,
|
||||
.usage = "['enable'|'disable']",
|
||||
.help = "activate support for semihosting operations",
|
||||
},
|
||||
{
|
||||
.name = "semihosting_cmdline",
|
||||
.handler = handle_common_semihosting_cmdline,
|
||||
.mode = COMMAND_EXEC,
|
||||
.usage = "arguments",
|
||||
.help = "command line arguments to be passed to program",
|
||||
},
|
||||
{
|
||||
.name = "semihosting_fileio",
|
||||
.handler = handle_common_semihosting_fileio_command,
|
||||
.mode = COMMAND_EXEC,
|
||||
.usage = "['enable'|'disable']",
|
||||
.help = "activate support for semihosting fileio operations",
|
||||
},
|
||||
{
|
||||
.name = "semihosting_resexit",
|
||||
.handler = handle_common_semihosting_resumable_exit_command,
|
||||
.mode = COMMAND_EXEC,
|
||||
.usage = "['enable'|'disable']",
|
||||
.help = "activate support for semihosting resumable exit",
|
||||
.chain = semihosting_common_handlers,
|
||||
},
|
||||
COMMAND_REGISTRATION_DONE
|
||||
};
|
||||
|
|
|
@ -1887,11 +1887,6 @@ static const struct command_registration riscv_exec_command_handlers[] = {
|
|||
COMMAND_REGISTRATION_DONE
|
||||
};
|
||||
|
||||
extern __COMMAND_HANDLER(handle_common_semihosting_command);
|
||||
extern __COMMAND_HANDLER(handle_common_semihosting_fileio_command);
|
||||
extern __COMMAND_HANDLER(handle_common_semihosting_resumable_exit_command);
|
||||
extern __COMMAND_HANDLER(handle_common_semihosting_cmdline);
|
||||
|
||||
/*
|
||||
* To be noted that RISC-V targets use the same semihosting commands as
|
||||
* ARM targets.
|
||||
|
@ -1905,37 +1900,7 @@ extern __COMMAND_HANDLER(handle_common_semihosting_cmdline);
|
|||
* protocol, then a command like `riscv semihosting enable` will make
|
||||
* sense, but for now all semihosting commands are prefixed with `arm`.
|
||||
*/
|
||||
static const struct command_registration arm_exec_command_handlers[] = {
|
||||
{
|
||||
.name = "semihosting",
|
||||
.handler = handle_common_semihosting_command,
|
||||
.mode = COMMAND_EXEC,
|
||||
.usage = "['enable'|'disable']",
|
||||
.help = "activate support for semihosting operations",
|
||||
},
|
||||
{
|
||||
.name = "semihosting_cmdline",
|
||||
.handler = handle_common_semihosting_cmdline,
|
||||
.mode = COMMAND_EXEC,
|
||||
.usage = "arguments",
|
||||
.help = "command line arguments to be passed to program",
|
||||
},
|
||||
{
|
||||
.name = "semihosting_fileio",
|
||||
.handler = handle_common_semihosting_fileio_command,
|
||||
.mode = COMMAND_EXEC,
|
||||
.usage = "['enable'|'disable']",
|
||||
.help = "activate support for semihosting fileio operations",
|
||||
},
|
||||
{
|
||||
.name = "semihosting_resexit",
|
||||
.handler = handle_common_semihosting_resumable_exit_command,
|
||||
.mode = COMMAND_EXEC,
|
||||
.usage = "['enable'|'disable']",
|
||||
.help = "activate support for semihosting resumable exit",
|
||||
},
|
||||
COMMAND_REGISTRATION_DONE
|
||||
};
|
||||
extern const struct command_registration semihosting_common_handlers[];
|
||||
|
||||
const struct command_registration riscv_command_handlers[] = {
|
||||
{
|
||||
|
@ -1950,7 +1915,7 @@ const struct command_registration riscv_command_handlers[] = {
|
|||
.mode = COMMAND_ANY,
|
||||
.help = "ARM Command Group",
|
||||
.usage = "",
|
||||
.chain = arm_exec_command_handlers
|
||||
.chain = semihosting_common_handlers
|
||||
},
|
||||
COMMAND_REGISTRATION_DONE
|
||||
};
|
||||
|
|
|
@ -1461,7 +1461,7 @@ static void semihosting_set_field(struct target *target, uint64_t value,
|
|||
/* -------------------------------------------------------------------------
|
||||
* Common semihosting commands handlers. */
|
||||
|
||||
__COMMAND_HANDLER(handle_common_semihosting_command)
|
||||
static __COMMAND_HANDLER(handle_common_semihosting_command)
|
||||
{
|
||||
struct target *target = get_current_target(CMD_CTX);
|
||||
|
||||
|
@ -1502,8 +1502,7 @@ __COMMAND_HANDLER(handle_common_semihosting_command)
|
|||
return ERROR_OK;
|
||||
}
|
||||
|
||||
|
||||
__COMMAND_HANDLER(handle_common_semihosting_fileio_command)
|
||||
static __COMMAND_HANDLER(handle_common_semihosting_fileio_command)
|
||||
{
|
||||
struct target *target = get_current_target(CMD_CTX);
|
||||
|
||||
|
@ -1533,7 +1532,7 @@ __COMMAND_HANDLER(handle_common_semihosting_fileio_command)
|
|||
return ERROR_OK;
|
||||
}
|
||||
|
||||
__COMMAND_HANDLER(handle_common_semihosting_cmdline)
|
||||
static __COMMAND_HANDLER(handle_common_semihosting_cmdline)
|
||||
{
|
||||
struct target *target = get_current_target(CMD_CTX);
|
||||
unsigned int i;
|
||||
|
@ -1566,7 +1565,7 @@ __COMMAND_HANDLER(handle_common_semihosting_cmdline)
|
|||
return ERROR_OK;
|
||||
}
|
||||
|
||||
__COMMAND_HANDLER(handle_common_semihosting_resumable_exit_command)
|
||||
static __COMMAND_HANDLER(handle_common_semihosting_resumable_exit_command)
|
||||
{
|
||||
struct target *target = get_current_target(CMD_CTX);
|
||||
|
||||
|
@ -1595,3 +1594,35 @@ __COMMAND_HANDLER(handle_common_semihosting_resumable_exit_command)
|
|||
|
||||
return ERROR_OK;
|
||||
}
|
||||
|
||||
const struct command_registration semihosting_common_handlers[] = {
|
||||
{
|
||||
"semihosting",
|
||||
.handler = handle_common_semihosting_command,
|
||||
.mode = COMMAND_EXEC,
|
||||
.usage = "['enable'|'disable']",
|
||||
.help = "activate support for semihosting operations",
|
||||
},
|
||||
{
|
||||
"semihosting_cmdline",
|
||||
.handler = handle_common_semihosting_cmdline,
|
||||
.mode = COMMAND_EXEC,
|
||||
.usage = "arguments",
|
||||
.help = "command line arguments to be passed to program",
|
||||
},
|
||||
{
|
||||
"semihosting_fileio",
|
||||
.handler = handle_common_semihosting_fileio_command,
|
||||
.mode = COMMAND_EXEC,
|
||||
.usage = "['enable'|'disable']",
|
||||
.help = "activate support for semihosting fileio operations",
|
||||
},
|
||||
{
|
||||
"semihosting_resexit",
|
||||
.handler = handle_common_semihosting_resumable_exit_command,
|
||||
.mode = COMMAND_EXEC,
|
||||
.usage = "['enable'|'disable']",
|
||||
.help = "activate support for semihosting resumable exit",
|
||||
},
|
||||
COMMAND_REGISTRATION_DONE
|
||||
};
|
||||
|
|
Loading…
Reference in New Issue