Converts callback to an array of command_registration records. Moves oocd_trace driver definition to end of file to eliminate useless forward declaration.tags/v0.4.0-rc1
@@ -421,11 +421,6 @@ static const struct command_registration etb_command_handlers[] = { | |||||
COMMAND_REGISTRATION_DONE | COMMAND_REGISTRATION_DONE | ||||
}; | }; | ||||
static int etb_register_commands(struct command_context *cmd_ctx) | |||||
{ | |||||
return register_commands(cmd_ctx, NULL, etb_command_handlers); | |||||
} | |||||
static int etb_init(struct etm_context *etm_ctx) | static int etb_init(struct etm_context *etm_ctx) | ||||
{ | { | ||||
struct etb *etb = etm_ctx->capture_driver_priv; | struct etb *etb = etm_ctx->capture_driver_priv; | ||||
@@ -696,7 +691,7 @@ static int etb_stop_capture(struct etm_context *etm_ctx) | |||||
struct etm_capture_driver etb_capture_driver = | struct etm_capture_driver etb_capture_driver = | ||||
{ | { | ||||
.name = "etb", | .name = "etb", | ||||
.register_commands = etb_register_commands, | |||||
.commands = etb_command_handlers, | |||||
.init = etb_init, | .init = etb_init, | ||||
.status = etb_status, | .status = etb_status, | ||||
.start_capture = etb_start_capture, | .start_capture = etb_start_capture, | ||||
@@ -1471,8 +1471,9 @@ COMMAND_HANDLER(handle_etm_config_command) | |||||
{ | { | ||||
if (strcmp(CMD_ARGV[4], etm_capture_drivers[i]->name) == 0) | if (strcmp(CMD_ARGV[4], etm_capture_drivers[i]->name) == 0) | ||||
{ | { | ||||
int retval; | |||||
if ((retval = etm_capture_drivers[i]->register_commands(CMD_CTX)) != ERROR_OK) | |||||
int retval = register_commands(CMD_CTX, NULL, | |||||
etm_capture_drivers[i]->commands); | |||||
if (ERROR_OK != retval) | |||||
{ | { | ||||
free(etm_ctx); | free(etm_ctx); | ||||
return retval; | return retval; | ||||
@@ -126,7 +126,7 @@ struct etm_context; | |||||
struct etm_capture_driver | struct etm_capture_driver | ||||
{ | { | ||||
char *name; | char *name; | ||||
int (*register_commands)(struct command_context *cmd_ctx); | |||||
const struct command_registration *commands; | |||||
int (*init)(struct etm_context *etm_ctx); | int (*init)(struct etm_context *etm_ctx); | ||||
trace_status_t (*status)(struct etm_context *etm_ctx); | trace_status_t (*status)(struct etm_context *etm_ctx); | ||||
int (*read_trace)(struct etm_context *etm_ctx); | int (*read_trace)(struct etm_context *etm_ctx); | ||||
@@ -77,11 +77,6 @@ static const struct command_registration etm_dummy_command_handlers[] = { | |||||
COMMAND_REGISTRATION_DONE | COMMAND_REGISTRATION_DONE | ||||
}; | }; | ||||
static int etm_dummy_register_commands(struct command_context *cmd_ctx) | |||||
{ | |||||
return register_commands(cmd_ctx, NULL, etm_dummy_command_handlers); | |||||
} | |||||
static int etm_dummy_init(struct etm_context *etm_ctx) | static int etm_dummy_init(struct etm_context *etm_ctx) | ||||
{ | { | ||||
return ERROR_OK; | return ERROR_OK; | ||||
@@ -110,7 +105,7 @@ static int etm_dummy_stop_capture(struct etm_context *etm_ctx) | |||||
struct etm_capture_driver etm_dummy_capture_driver = | struct etm_capture_driver etm_dummy_capture_driver = | ||||
{ | { | ||||
.name = "dummy", | .name = "dummy", | ||||
.register_commands = etm_dummy_register_commands, | |||||
.commands = etm_dummy_command_handlers, | |||||
.init = etm_dummy_init, | .init = etm_dummy_init, | ||||
.status = etm_dummy_status, | .status = etm_dummy_status, | ||||
.start_capture = etm_dummy_start_capture, | .start_capture = etm_dummy_start_capture, | ||||
@@ -30,8 +30,6 @@ | |||||
*/ | */ | ||||
static int oocd_trace_register_commands(struct command_context *cmd_ctx); | |||||
static int oocd_trace_read_reg(struct oocd_trace *oocd_trace, int reg, uint32_t *value) | static int oocd_trace_read_reg(struct oocd_trace *oocd_trace, int reg, uint32_t *value) | ||||
{ | { | ||||
size_t bytes_written, bytes_read, bytes_to_read; | size_t bytes_written, bytes_read, bytes_to_read; | ||||
@@ -278,17 +276,6 @@ static int oocd_trace_stop_capture(struct etm_context *etm_ctx) | |||||
return ERROR_OK; | return ERROR_OK; | ||||
} | } | ||||
struct etm_capture_driver oocd_trace_capture_driver = | |||||
{ | |||||
.name = "oocd_trace", | |||||
.register_commands = oocd_trace_register_commands, | |||||
.init = oocd_trace_init, | |||||
.status = oocd_trace_status, | |||||
.start_capture = oocd_trace_start_capture, | |||||
.stop_capture = oocd_trace_stop_capture, | |||||
.read_trace = oocd_trace_read_trace, | |||||
}; | |||||
COMMAND_HANDLER(handle_oocd_trace_config_command) | COMMAND_HANDLER(handle_oocd_trace_config_command) | ||||
{ | { | ||||
struct target *target; | struct target *target; | ||||
@@ -438,7 +425,15 @@ static const struct command_registration oocd_trace_command_handlers[] = { | |||||
COMMAND_REGISTRATION_DONE | COMMAND_REGISTRATION_DONE | ||||
}; | }; | ||||
int oocd_trace_register_commands(struct command_context *cmd_ctx) | |||||
struct etm_capture_driver oocd_trace_capture_driver = | |||||
{ | { | ||||
return register_commands(cmd_ctx, NULL, oocd_trace_command_handlers); | |||||
} | |||||
.name = "oocd_trace", | |||||
.commands = oocd_trace_command_handlers, | |||||
.init = oocd_trace_init, | |||||
.status = oocd_trace_status, | |||||
.start_capture = oocd_trace_start_capture, | |||||
.stop_capture = oocd_trace_stop_capture, | |||||
.read_trace = oocd_trace_read_trace, | |||||
}; | |||||