#endif // PARPORT_USE_PPDEV
-static int amt_jtagaccel_execute_queue(void);
-static int amt_jtagaccel_register_commands(struct command_context_s *cmd_ctx);
-static int amt_jtagaccel_speed(int speed);
-static int amt_jtagaccel_init(void);
-static int amt_jtagaccel_quit(void);
-
-static int amt_jtagaccel_handle_parport_port_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc);
-static int amt_jtagaccel_handle_rtck_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc);
-
/* tap_move[i][j]: tap movement command to go from state i to state j
* 0: Test-Logic-Reset
* 1: Run-Test/Idle
};
-jtag_interface_t amt_jtagaccel_interface =
-{
- .name = "amt_jtagaccel",
-
- .execute_queue = amt_jtagaccel_execute_queue,
-
- .speed = amt_jtagaccel_speed,
- .register_commands = amt_jtagaccel_register_commands,
- .init = amt_jtagaccel_init,
- .quit = amt_jtagaccel_quit,
-};
-
-static int amt_jtagaccel_register_commands(struct command_context_s *cmd_ctx)
-{
- register_command(cmd_ctx, NULL, "parport_port", amt_jtagaccel_handle_parport_port_command,
- COMMAND_CONFIG, NULL);
- register_command(cmd_ctx, NULL, "rtck", amt_jtagaccel_handle_rtck_command,
- COMMAND_CONFIG, NULL);
-
- return ERROR_OK;
-}
-
static void amt_jtagaccel_reset(int trst, int srst)
{
if (trst == 1)
static int amt_jtagaccel_execute_queue(void)
{
- jtag_command_t *cmd = jtag_command_queue; /* currently processed command */
+ struct jtag_command *cmd = jtag_command_queue; /* currently processed command */
int scan_size;
enum scan_type type;
uint8_t *buffer;
return ERROR_OK;
}
-static int amt_jtagaccel_handle_parport_port_command(
- struct command_context_s *cmd_ctx, char *cmd, char **args, int argc)
+COMMAND_HANDLER(amt_jtagaccel_handle_parport_port_command)
{
- if (argc == 1)
+ if (CMD_ARGC == 1)
{
/* only if the port wasn't overwritten by cmdline */
if (amt_jtagaccel_port == 0)
{
- int retval = parse_u16(args[0], &amt_jtagaccel_port);
- if (ERROR_OK != retval)
- return retval;
+ uint16_t port;
+ COMMAND_PARSE_NUMBER(u16, CMD_ARGV[0], port);
+ amt_jtagaccel_port = port;
}
else
{
}
}
- command_print(cmd_ctx, "parport port = %u", amt_jtagaccel_port);
+ command_print(CMD_CTX, "parport port = %u", amt_jtagaccel_port);
return ERROR_OK;
}
-static int amt_jtagaccel_handle_rtck_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc)
+COMMAND_HANDLER(amt_jtagaccel_handle_rtck_command)
{
- if (argc == 0)
+ if (CMD_ARGC == 0)
{
- command_print(cmd_ctx, "amt_jtagaccel RTCK feature %s", (rtck_enabled) ? "enabled" : "disabled");
+ command_print(CMD_CTX, "amt_jtagaccel RTCK feature %s", (rtck_enabled) ? "enabled" : "disabled");
return ERROR_OK;
}
else
{
- if (strcmp(args[0], "enabled") == 0)
+ if (strcmp(CMD_ARGV[0], "enabled") == 0)
{
rtck_enabled = 1;
}
return ERROR_OK;
}
+
+static const struct command_registration amtjtagaccel_command_handlers[] = {
+ {
+ .name = "parport_port",
+ .handler = &amt_jtagaccel_handle_parport_port_command,
+ .mode = COMMAND_CONFIG,
+ .help = "configure the parallel port to use",
+ .usage = "<port_num>",
+ },
+ {
+ .name = "parport_port",
+ .handler = &amt_jtagaccel_handle_rtck_command,
+ .mode = COMMAND_CONFIG,
+ .help = "enable RTCK",
+ .usage = "<enable|disable>",
+ },
+ COMMAND_REGISTRATION_DONE
+};
+
+struct jtag_interface amt_jtagaccel_interface = {
+ .name = "amt_jtagaccel",
+ .commands = amtjtagaccel_command_handlers,
+ .init = &amt_jtagaccel_init,
+ .quit = &amt_jtagaccel_quit,
+ .speed = &amt_jtagaccel_speed,
+ .execute_queue = &amt_jtagaccel_execute_queue,
+ };