};
target_t *all_targets = NULL;
-target_event_callback_t *target_event_callbacks = NULL;
-target_timer_callback_t *target_timer_callbacks = NULL;
+struct target_event_callback *target_event_callbacks = NULL;
+struct target_timer_callback *target_timer_callbacks = NULL;
const Jim_Nvp nvp_assert[] = {
{ .name = "assert", NVP_ASSERT },
return target->type->soft_reset_halt_imp(target);
}
-static int target_run_algorithm_imp(struct target_s *target, int num_mem_params, mem_param_t *mem_params, int num_reg_params, reg_param_t *reg_param, uint32_t entry_point, uint32_t exit_point, int timeout_ms, void *arch_info)
+static int target_run_algorithm_imp(struct target_s *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)
{
if (!target_was_examined(target))
{
}
int target_add_watchpoint(struct target_s *target,
- struct watchpoint_s *watchpoint)
+ struct watchpoint *watchpoint)
{
return target->type->add_watchpoint(target, watchpoint);
}
int target_remove_watchpoint(struct target_s *target,
- struct watchpoint_s *watchpoint)
+ struct watchpoint *watchpoint)
{
return target->type->remove_watchpoint(target, watchpoint);
}
int target_run_algorithm(struct target_s *target,
- int num_mem_params, mem_param_t *mem_params,
- int num_reg_params, reg_param_t *reg_param,
+ 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 target_register_event_callback(int (*callback)(struct target_s *target, enum target_event event, void *priv), void *priv)
{
- target_event_callback_t **callbacks_p = &target_event_callbacks;
+ struct target_event_callback **callbacks_p = &target_event_callbacks;
if (callback == NULL)
{
callbacks_p = &((*callbacks_p)->next);
}
- (*callbacks_p) = malloc(sizeof(target_event_callback_t));
+ (*callbacks_p) = malloc(sizeof(struct target_event_callback));
(*callbacks_p)->callback = callback;
(*callbacks_p)->priv = priv;
(*callbacks_p)->next = NULL;
int target_register_timer_callback(int (*callback)(void *priv), int time_ms, int periodic, void *priv)
{
- target_timer_callback_t **callbacks_p = &target_timer_callbacks;
+ struct target_timer_callback **callbacks_p = &target_timer_callbacks;
struct timeval now;
if (callback == NULL)
callbacks_p = &((*callbacks_p)->next);
}
- (*callbacks_p) = malloc(sizeof(target_timer_callback_t));
+ (*callbacks_p) = malloc(sizeof(struct target_timer_callback));
(*callbacks_p)->callback = callback;
(*callbacks_p)->periodic = periodic;
(*callbacks_p)->time_ms = time_ms;
int target_unregister_event_callback(int (*callback)(struct target_s *target, enum target_event event, void *priv), void *priv)
{
- target_event_callback_t **p = &target_event_callbacks;
- target_event_callback_t *c = target_event_callbacks;
+ struct target_event_callback **p = &target_event_callbacks;
+ struct target_event_callback *c = target_event_callbacks;
if (callback == NULL)
{
while (c)
{
- target_event_callback_t *next = c->next;
+ struct target_event_callback *next = c->next;
if ((c->callback == callback) && (c->priv == priv))
{
*p = next;
int target_unregister_timer_callback(int (*callback)(void *priv), void *priv)
{
- target_timer_callback_t **p = &target_timer_callbacks;
- target_timer_callback_t *c = target_timer_callbacks;
+ struct target_timer_callback **p = &target_timer_callbacks;
+ struct target_timer_callback *c = target_timer_callbacks;
if (callback == NULL)
{
while (c)
{
- target_timer_callback_t *next = c->next;
+ struct target_timer_callback *next = c->next;
if ((c->callback == callback) && (c->priv == priv))
{
*p = next;
int target_call_event_callbacks(target_t *target, enum target_event event)
{
- target_event_callback_t *callback = target_event_callbacks;
- target_event_callback_t *next_callback;
+ struct target_event_callback *callback = target_event_callbacks;
+ struct target_event_callback *next_callback;
if (event == TARGET_EVENT_HALTED)
{
}
static int target_timer_callback_periodic_restart(
- target_timer_callback_t *cb, struct timeval *now)
+ struct target_timer_callback *cb, struct timeval *now)
{
int time_ms = cb->time_ms;
cb->when.tv_usec = now->tv_usec + (time_ms % 1000) * 1000;
return ERROR_OK;
}
-static int target_call_timer_callback(target_timer_callback_t *cb,
+static int target_call_timer_callback(struct target_timer_callback *cb,
struct timeval *now)
{
cb->callback(cb->priv);
struct timeval now;
gettimeofday(&now, NULL);
- target_timer_callback_t *callback = target_timer_callbacks;
+ struct target_timer_callback *callback = target_timer_callbacks;
while (callback)
{
// cleaning up may unregister and free this callback
- target_timer_callback_t *next_callback = callback->next;
+ struct target_timer_callback *next_callback = callback->next;
bool call_it = callback->callback &&
((!checktime && callback->periodic) ||
return target_call_timer_callbacks_check_time(0);
}
-int target_alloc_working_area(struct target_s *target, uint32_t size, working_area_t **area)
+int target_alloc_working_area(struct target_s *target, uint32_t size, struct working_area **area)
{
- working_area_t *c = target->working_areas;
- working_area_t *new_wa = NULL;
+ struct working_area *c = target->working_areas;
+ struct working_area *new_wa = NULL;
/* Reevaluate working area address based on MMU state*/
if (target->working_areas == NULL)
/* if not, allocate a new one */
if (!new_wa)
{
- working_area_t **p = &target->working_areas;
+ struct working_area **p = &target->working_areas;
uint32_t first_free = target->working_area;
uint32_t free_size = target->working_area_size;
LOG_DEBUG("allocated new working area at address 0x%08x", (unsigned)first_free);
- new_wa = malloc(sizeof(working_area_t));
+ new_wa = malloc(sizeof(struct working_area));
new_wa->next = NULL;
new_wa->size = size;
new_wa->address = first_free;
return ERROR_OK;
}
-int target_free_working_area_restore(struct target_s *target, working_area_t *area, int restore)
+int target_free_working_area_restore(struct target_s *target, struct working_area *area, int restore)
{
if (area->free)
return ERROR_OK;
return ERROR_OK;
}
-int target_free_working_area(struct target_s *target, working_area_t *area)
+int target_free_working_area(struct target_s *target, struct working_area *area)
{
return target_free_working_area_restore(target, area, 1);
}
*/
void target_free_all_working_areas_restore(struct target_s *target, int restore)
{
- working_area_t *c = target->working_areas;
+ struct working_area *c = target->working_areas;
while (c)
{
- working_area_t *next = c->next;
+ struct working_area *next = c->next;
target_free_working_area_restore(target, c, restore);
if (c->backup)
return retval;
}
-static int handle_targets_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc)
+COMMAND_HANDLER(handle_targets_command)
{
target_t *target = all_targets;
return retval;
}
-static int handle_reg_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc)
+COMMAND_HANDLER(handle_reg_command)
{
target_t *target;
reg_t *reg = NULL;
/* list all available registers for the current target */
if (argc == 0)
{
- reg_cache_t *cache = target->reg_cache;
+ struct reg_cache *cache = target->reg_cache;
count = 0;
while (cache)
unsigned num;
COMMAND_PARSE_NUMBER(uint, args[0], num);
- reg_cache_t *cache = target->reg_cache;
+ struct reg_cache *cache = target->reg_cache;
count = 0;
while (cache)
{
if (reg->valid == 0)
{
- reg_arch_type_t *arch_type = register_get_arch_type(reg->arch_type);
+ struct reg_arch_type *arch_type = register_get_arch_type(reg->arch_type);
arch_type->get(reg);
}
value = buf_to_str(reg->value, reg->size, 16);
uint8_t *buf = malloc(CEIL(reg->size, 8));
str_to_buf(args[1], strlen(args[1]), buf, reg->size, 0);
- reg_arch_type_t *arch_type = register_get_arch_type(reg->arch_type);
+ struct reg_arch_type *arch_type = register_get_arch_type(reg->arch_type);
arch_type->set(reg, buf);
value = buf_to_str(reg->value, reg->size, 16);
return ERROR_OK;
}
-static int handle_poll_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc)
+COMMAND_HANDLER(handle_poll_command)
{
int retval = ERROR_OK;
target_t *target = get_current_target(cmd_ctx);
return retval;
}
-static int handle_wait_halt_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc)
+COMMAND_HANDLER(handle_wait_halt_command)
{
if (argc > 1)
return ERROR_COMMAND_SYNTAX_ERROR;
int retval = parse_uint(args[0], &ms);
if (ERROR_OK != retval)
{
- command_print(cmd_ctx, "usage: %s [seconds]", cmd);
+ command_print(cmd_ctx, "usage: %s [seconds]", CMD_NAME);
return ERROR_COMMAND_SYNTAX_ERROR;
}
// convert seconds (given) to milliseconds (needed)
return ERROR_OK;
}
-static int handle_halt_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc)
+COMMAND_HANDLER(handle_halt_command)
{
LOG_DEBUG("-");
return ERROR_OK;
}
- return handle_wait_halt_command(cmd_ctx, cmd, args, argc);
+ return CALL_COMMAND_HANDLER(handle_wait_halt_command);
}
-static int handle_soft_reset_halt_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc)
+COMMAND_HANDLER(handle_soft_reset_halt_command)
{
target_t *target = get_current_target(cmd_ctx);
return ERROR_OK;
}
-static int handle_reset_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc)
+COMMAND_HANDLER(handle_reset_command)
{
if (argc > 1)
return ERROR_COMMAND_SYNTAX_ERROR;
}
-static int handle_resume_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc)
+COMMAND_HANDLER(handle_resume_command)
{
int current = 1;
if (argc > 1)
return target_resume(target, current, addr, 1, 0);
}
-static int handle_step_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc)
+COMMAND_HANDLER(handle_step_command)
{
if (argc > 1)
return ERROR_COMMAND_SYNTAX_ERROR;
}
}
-static int handle_md_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc)
+COMMAND_HANDLER(handle_md_command)
{
if (argc < 1)
return ERROR_COMMAND_SYNTAX_ERROR;
unsigned size = 0;
- switch (cmd[2]) {
+ switch (CMD_NAME[2]) {
case 'w': size = 4; break;
case 'h': size = 2; break;
case 'b': size = 1; break;
return retval;
}
-static int handle_mw_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc)
+COMMAND_HANDLER(handle_mw_command)
{
if (argc < 2)
{
target_t *target = get_current_target(cmd_ctx);
unsigned wordsize;
uint8_t value_buf[4];
- switch (cmd[2])
+ switch (CMD_NAME[2])
{
case 'w':
wordsize = 4;
}
-static int parse_load_image_command_args(struct command_context_s *cmd_ctx,
- char **args, int argc, image_t *image,
+static COMMAND_HELPER(parse_load_image_command_args, image_t *image,
uint32_t *min_address, uint32_t *max_address)
{
if (argc < 1 || argc > 5)
return ERROR_OK;
}
-static int handle_load_image_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc)
+COMMAND_HANDLER(handle_load_image_command)
{
uint8_t *buffer;
uint32_t buf_cnt;
int i;
image_t image;
- int retval = parse_load_image_command_args(cmd_ctx, args, argc,
+ int retval = CALL_COMMAND_HANDLER(parse_load_image_command_args,
&image, &min_address, &max_address);
if (ERROR_OK != retval)
return retval;
}
-static int handle_dump_image_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc)
+COMMAND_HANDLER(handle_dump_image_command)
{
- fileio_t fileio;
+ struct fileio fileio;
uint8_t buffer[560];
int retvaltemp;
return retval;
}
-static int handle_verify_image_command_internal(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc, int verify)
+static COMMAND_HELPER(handle_verify_image_command_internal, int verify)
{
uint8_t *buffer;
uint32_t buf_cnt;
return retval;
}
-static int handle_verify_image_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc)
+COMMAND_HANDLER(handle_verify_image_command)
{
- return handle_verify_image_command_internal(cmd_ctx, cmd, args, argc, 1);
+ return CALL_COMMAND_HANDLER(handle_verify_image_command_internal, 1);
}
-static int handle_test_image_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc)
+COMMAND_HANDLER(handle_test_image_command)
{
- return handle_verify_image_command_internal(cmd_ctx, cmd, args, argc, 0);
+ return CALL_COMMAND_HANDLER(handle_verify_image_command_internal, 0);
}
static int handle_bp_command_list(struct command_context_s *cmd_ctx)
return retval;
}
-static int handle_bp_command(struct command_context_s *cmd_ctx,
- char *cmd, char **args, int argc)
+COMMAND_HANDLER(handle_bp_command)
{
if (argc == 0)
return handle_bp_command_list(cmd_ctx);
return handle_bp_command_set(cmd_ctx, addr, length, hw);
}
-static int handle_rbp_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc)
+COMMAND_HANDLER(handle_rbp_command)
{
if (argc != 1)
return ERROR_COMMAND_SYNTAX_ERROR;
return ERROR_OK;
}
-static int handle_wp_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc)
+COMMAND_HANDLER(handle_wp_command)
{
target_t *target = get_current_target(cmd_ctx);
if (argc == 0)
{
- watchpoint_t *watchpoint = target->watchpoints;
+ struct watchpoint *watchpoint = target->watchpoints;
while (watchpoint)
{
return retval;
}
-static int handle_rwp_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc)
+COMMAND_HANDLER(handle_rwp_command)
{
if (argc != 1)
return ERROR_COMMAND_SYNTAX_ERROR;
* The low-level target implementation must have logged a detailed error
* which is forwarded to telnet/GDB session.
*/
-static int handle_virt2phys_command(command_context_t *cmd_ctx,
- char *cmd, char **args, int argc)
+COMMAND_HANDLER(handle_virt2phys_command)
{
if (argc != 1)
return ERROR_COMMAND_SYNTAX_ERROR;
}
/* Dump a gmon.out histogram file. */
-static void writeGmon(uint32_t *samples, uint32_t sampleNum, char *filename)
+static void writeGmon(uint32_t *samples, uint32_t sampleNum, const char *filename)
{
uint32_t i;
FILE *f = fopen(filename, "w");
}
/* profiling samples the CPU PC as quickly as OpenOCD is able, which will be used as a random sampling of PC */
-static int handle_profile_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc)
+COMMAND_HANDLER(handle_profile_command)
{
target_t *target = get_current_target(cmd_ctx);
struct timeval timeout, now;
case TCFG_CHAIN_POSITION:
if (goi->isconfigure) {
Jim_Obj *o;
- jtag_tap_t *tap;
+ struct jtag_tap *tap;
target_free_all_working_areas(target);
e = Jim_GetOpt_Obj(goi, &o);
if (e != JIM_OK) {
-static int handle_fast_load_image_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc)
+COMMAND_HANDLER(handle_fast_load_image_command)
{
uint8_t *buffer;
uint32_t buf_cnt;
image_t image;
- int retval = parse_load_image_command_args(cmd_ctx, args, argc,
+ int retval = CALL_COMMAND_HANDLER(parse_load_image_command_args,
&image, &min_address, &max_address);
if (ERROR_OK != retval)
return retval;
return retval;
}
-static int handle_fast_load_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc)
+COMMAND_HANDLER(handle_fast_load_command)
{
if (argc > 0)
return ERROR_COMMAND_SYNTAX_ERROR;