]> git.sur5r.net Git - openocd/blobdiff - src/target/etb.c
xscale: use register_commands()
[openocd] / src / target / etb.c
index 859ebaf12e3878f9468c7c3f5b274754dd92708c..63dee18bc4ec1770fbd09773a296eea602439b6c 100644 (file)
@@ -354,30 +354,30 @@ COMMAND_HANDLER(handle_etb_config_command)
        struct jtag_tap *tap;
        struct arm *arm;
 
-       if (argc != 2)
+       if (CMD_ARGC != 2)
        {
                return ERROR_COMMAND_SYNTAX_ERROR;
        }
 
-       target = get_target(args[0]);
+       target = get_target(CMD_ARGV[0]);
 
        if (!target)
        {
-               LOG_ERROR("ETB: target '%s' not defined", args[0]);
+               LOG_ERROR("ETB: target '%s' not defined", CMD_ARGV[0]);
                return ERROR_FAIL;
        }
 
        arm = target_to_arm(target);
        if (!is_arm(arm))
        {
-               command_print(cmd_ctx, "ETB: '%s' isn't an ARM", args[0]);
+               command_print(CMD_CTX, "ETB: '%s' isn't an ARM", CMD_ARGV[0]);
                return ERROR_FAIL;
        }
 
-       tap = jtag_tap_by_string(args[1]);
+       tap = jtag_tap_by_string(CMD_ARGV[1]);
        if (tap == NULL)
        {
-               command_print(cmd_ctx, "ETB: TAP %s does not exist", args[1]);
+               command_print(CMD_CTX, "ETB: TAP %s does not exist", CMD_ARGV[1]);
                return ERROR_FAIL;
        }
 
@@ -402,16 +402,28 @@ COMMAND_HANDLER(handle_etb_config_command)
        return ERROR_OK;
 }
 
+static const struct command_registration etb_config_command_handlers[] = {
+       {
+               .name = "config",
+               .handler = &handle_etb_config_command,
+               .mode = COMMAND_CONFIG,
+               .usage = "<target> <tap>",
+       },
+       COMMAND_REGISTRATION_DONE
+};
+static const struct command_registration etb_command_handlers[] = {
+       {
+               .name = "etb",
+               .mode = COMMAND_ANY,
+               .help = "Emebdded Trace Buffer command group",
+               .chain = etb_config_command_handlers,
+       },
+       COMMAND_REGISTRATION_DONE
+};
+
 static int etb_register_commands(struct command_context *cmd_ctx)
 {
-       struct command *etb_cmd = register_command(cmd_ctx, NULL, "etb",
-                       NULL, COMMAND_ANY, "Embedded Trace Buffer");
-
-       register_command(cmd_ctx, etb_cmd, "config",
-                       handle_etb_config_command, COMMAND_CONFIG,
-                       NULL);
-
-       return ERROR_OK;
+       return register_commands(cmd_ctx, NULL, etb_command_handlers);
 }
 
 static int etb_init(struct etm_context *etm_ctx)