static int etm_reg_arch_type = -1;
-static int etm_get_reg(reg_t *reg);
-static int etm_read_reg_w_check(reg_t *reg,
+static int etm_get_reg(struct reg *reg);
+static int etm_read_reg_w_check(struct reg *reg,
uint8_t* check_value, uint8_t* check_mask);
static int etm_register_user_commands(struct command_context_s *cmd_ctx);
-static int etm_set_reg_w_exec(reg_t *reg, uint8_t *buf);
-static int etm_write_reg(reg_t *reg, uint32_t value);
+static int etm_set_reg_w_exec(struct reg *reg, uint8_t *buf);
+static int etm_write_reg(struct reg *reg, uint32_t value);
static command_t *etm_cmd;
/* Look up register by ID ... most ETM instances only
* support a subset of the possible registers.
*/
-static reg_t *etm_reg_lookup(etm_context_t *etm_ctx, unsigned id)
+static struct reg *etm_reg_lookup(struct etm_context *etm_ctx, unsigned id)
{
- reg_cache_t *cache = etm_ctx->reg_cache;
+ struct reg_cache *cache = etm_ctx->reg_cache;
int i;
for (i = 0; i < cache->num_regs; i++) {
- struct etm_reg_s *reg = cache->reg_list[i].arch_info;
+ struct etm_reg *reg = cache->reg_list[i].arch_info;
if (reg->reg_info->addr == id)
return &cache->reg_list[i];
return NULL;
}
-static void etm_reg_add(unsigned bcd_vers, arm_jtag_t *jtag_info,
- reg_cache_t *cache, etm_reg_t *ereg,
+static void etm_reg_add(unsigned bcd_vers, struct arm_jtag *jtag_info,
+ struct reg_cache *cache, struct etm_reg *ereg,
const struct etm_reg_info *r, unsigned nreg)
{
- reg_t *reg = cache->reg_list;
+ struct reg *reg = cache->reg_list;
reg += cache->num_regs;
ereg += cache->num_regs;
}
}
-reg_cache_t *etm_build_reg_cache(target_t *target,
- arm_jtag_t *jtag_info, etm_context_t *etm_ctx)
+struct reg_cache *etm_build_reg_cache(struct target *target,
+ struct arm_jtag *jtag_info, struct etm_context *etm_ctx)
{
- reg_cache_t *reg_cache = malloc(sizeof(reg_cache_t));
- reg_t *reg_list = NULL;
- etm_reg_t *arch_info = NULL;
+ struct reg_cache *reg_cache = malloc(sizeof(struct reg_cache));
+ struct reg *reg_list = NULL;
+ struct etm_reg *arch_info = NULL;
unsigned bcd_vers, config;
/* register a register arch-type for etm registers only once */
etm_set_reg_w_exec);
/* the actual registers are kept in two arrays */
- reg_list = calloc(128, sizeof(reg_t));
- arch_info = calloc(128, sizeof(etm_reg_t));
+ reg_list = calloc(128, sizeof(struct reg));
+ arch_info = calloc(128, sizeof(struct etm_reg));
/* fill in values for the reg cache */
reg_cache->name = "etm registers";
/* the ETM might have an ETB connected */
if (strcmp(etm_ctx->capture_driver->name, "etb") == 0)
{
- etb_t *etb = etm_ctx->capture_driver_priv;
+ struct etb *etb = etm_ctx->capture_driver_priv;
if (!etb)
{
return reg_cache;
}
-static int etm_read_reg(reg_t *reg)
+static int etm_read_reg(struct reg *reg)
{
return etm_read_reg_w_check(reg, NULL, NULL);
}
-static int etm_store_reg(reg_t *reg)
+static int etm_store_reg(struct reg *reg)
{
return etm_write_reg(reg, buf_get_u32(reg->value, 0, reg->size));
}
-int etm_setup(target_t *target)
+int etm_setup(struct target *target)
{
int retval;
uint32_t etm_ctrl_value;
struct arm *arm = target_to_arm(target);
- etm_context_t *etm_ctx = arm->etm;
- reg_t *etm_ctrl_reg;
+ struct etm_context *etm_ctx = arm->etm;
+ struct reg *etm_ctrl_reg;
etm_ctrl_reg = etm_reg_lookup(etm_ctx, ETM_CTRL);
if (!etm_ctrl_reg)
return ERROR_OK;
}
-static int etm_get_reg(reg_t *reg)
+static int etm_get_reg(struct reg *reg)
{
int retval;
return ERROR_OK;
}
-static int etm_read_reg_w_check(reg_t *reg,
+static int etm_read_reg_w_check(struct reg *reg,
uint8_t* check_value, uint8_t* check_mask)
{
- etm_reg_t *etm_reg = reg->arch_info;
+ struct etm_reg *etm_reg = reg->arch_info;
const struct etm_reg_info *r = etm_reg->reg_info;
uint8_t reg_addr = r->addr & 0x7f;
- scan_field_t fields[3];
+ struct scan_field fields[3];
if (etm_reg->reg_info->mode == WO) {
LOG_ERROR("BUG: can't read write-only register %s", r->name);
return ERROR_OK;
}
-static int etm_set_reg(reg_t *reg, uint32_t value)
+static int etm_set_reg(struct reg *reg, uint32_t value)
{
int retval;
return ERROR_OK;
}
-static int etm_set_reg_w_exec(reg_t *reg, uint8_t *buf)
+static int etm_set_reg_w_exec(struct reg *reg, uint8_t *buf)
{
int retval;
return ERROR_OK;
}
-static int etm_write_reg(reg_t *reg, uint32_t value)
+static int etm_write_reg(struct reg *reg, uint32_t value)
{
- etm_reg_t *etm_reg = reg->arch_info;
+ struct etm_reg *etm_reg = reg->arch_info;
const struct etm_reg_info *r = etm_reg->reg_info;
uint8_t reg_addr = r->addr & 0x7f;
- scan_field_t fields[3];
+ struct scan_field fields[3];
if (etm_reg->reg_info->mode == RO) {
LOG_ERROR("BUG: can't write read--only register %s", r->name);
/* ETM trace analysis functionality
*
*/
-extern etm_capture_driver_t etm_dummy_capture_driver;
+extern struct etm_capture_driver etm_dummy_capture_driver;
#if BUILD_OOCD_TRACE == 1
-extern etm_capture_driver_t oocd_trace_capture_driver;
+extern struct etm_capture_driver oocd_trace_capture_driver;
#endif
-static etm_capture_driver_t *etm_capture_drivers[] =
+static struct etm_capture_driver *etm_capture_drivers[] =
{
&etb_capture_driver,
&etm_dummy_capture_driver,
NULL
};
-static int etm_read_instruction(etm_context_t *ctx, arm_instruction_t *instruction)
+static int etm_read_instruction(struct etm_context *ctx, struct arm_instruction *instruction)
{
int i;
int section = -1;
return ERROR_OK;
}
-static int etmv1_next_packet(etm_context_t *ctx, uint8_t *packet, int apo)
+static int etmv1_next_packet(struct etm_context *ctx, uint8_t *packet, int apo)
{
while (ctx->data_index < ctx->trace_depth)
{
return -1;
}
-static int etmv1_branch_address(etm_context_t *ctx)
+static int etmv1_branch_address(struct etm_context *ctx)
{
int retval;
uint8_t packet;
return 0;
}
-static int etmv1_data(etm_context_t *ctx, int size, uint32_t *data)
+static int etmv1_data(struct etm_context *ctx, int size, uint32_t *data)
{
int j;
uint8_t buf[4];
return 0;
}
-static int etmv1_analyze_trace(etm_context_t *ctx, struct command_context_s *cmd_ctx)
+static int etmv1_analyze_trace(struct etm_context *ctx, struct command_context_s *cmd_ctx)
{
int retval;
- arm_instruction_t instruction;
+ struct arm_instruction instruction;
/* read the trace data if it wasn't read already */
if (ctx->trace_depth == 0)
COMMAND_HANDLER(handle_etm_tracemode_command)
{
- target_t *target = get_current_target(cmd_ctx);
+ struct target *target = get_current_target(cmd_ctx);
struct arm *arm = target_to_arm(target);
- struct etm *etm;
+ struct etm_context *etm;
if (!is_arm(arm)) {
command_print(cmd_ctx, "ETM: current target isn't an ARM");
/* only update ETM_CTRL register if tracemode changed */
if (etm->tracemode != tracemode)
{
- reg_t *etm_ctrl_reg;
+ struct reg *etm_ctrl_reg;
etm_ctrl_reg = etm_reg_lookup(etm, ETM_CTRL);
if (!etm_ctrl_reg)
COMMAND_HANDLER(handle_etm_config_command)
{
- target_t *target;
+ struct target *target;
struct arm *arm;
etm_portmode_t portmode = 0x0;
- struct etm *etm_ctx;
+ struct etm_context *etm_ctx;
int i;
if (argc != 5)
return ERROR_FAIL;
}
- etm_ctx = calloc(1, sizeof(etm_context_t));
+ etm_ctx = calloc(1, sizeof(struct etm_context));
if (!etm_ctx) {
LOG_DEBUG("out of memory");
return ERROR_FAIL;
COMMAND_HANDLER(handle_etm_info_command)
{
- target_t *target;
+ struct target *target;
struct arm *arm;
- etm_context_t *etm;
- reg_t *etm_sys_config_reg;
+ struct etm_context *etm;
+ struct reg *etm_sys_config_reg;
int max_port_size;
uint32_t config;
COMMAND_HANDLER(handle_etm_status_command)
{
- target_t *target;
+ struct target *target;
struct arm *arm;
- etm_context_t *etm;
+ struct etm_context *etm;
trace_status_t trace_status;
target = get_current_target(cmd_ctx);
/* ETM status */
if (etm->bcd_vers >= 0x11) {
- reg_t *reg;
+ struct reg *reg;
reg = etm_reg_lookup(etm, ETM_STATUS);
if (!reg)
COMMAND_HANDLER(handle_etm_image_command)
{
- target_t *target;
+ struct target *target;
struct arm *arm;
- etm_context_t *etm_ctx;
+ struct etm_context *etm_ctx;
if (argc < 1)
{
command_print(cmd_ctx, "previously loaded image found and closed");
}
- etm_ctx->image = malloc(sizeof(image_t));
+ etm_ctx->image = malloc(sizeof(struct image));
etm_ctx->image->base_address_set = 0;
etm_ctx->image->start_address_set = 0;
COMMAND_HANDLER(handle_etm_dump_command)
{
struct fileio file;
- target_t *target;
+ struct target *target;
struct arm *arm;
- etm_context_t *etm_ctx;
+ struct etm_context *etm_ctx;
uint32_t i;
if (argc != 1)
COMMAND_HANDLER(handle_etm_load_command)
{
struct fileio file;
- target_t *target;
+ struct target *target;
struct arm *arm;
- etm_context_t *etm_ctx;
+ struct etm_context *etm_ctx;
uint32_t i;
if (argc != 1)
fileio_read_u32(&file, &tmp); etm_ctx->tracemode = tmp;
fileio_read_u32(&file, &etm_ctx->trace_depth);
}
- etm_ctx->trace_data = malloc(sizeof(etmv1_trace_data_t) * etm_ctx->trace_depth);
+ etm_ctx->trace_data = malloc(sizeof(struct etmv1_trace_data) * etm_ctx->trace_depth);
if (etm_ctx->trace_data == NULL)
{
command_print(cmd_ctx, "not enough memory to perform operation");
COMMAND_HANDLER(handle_etm_trigger_percent_command)
{
- target_t *target;
+ struct target *target;
struct arm *arm;
- etm_context_t *etm_ctx;
+ struct etm_context *etm_ctx;
target = get_current_target(cmd_ctx);
arm = target_to_arm(target);
COMMAND_HANDLER(handle_etm_start_command)
{
- target_t *target;
+ struct target *target;
struct arm *arm;
- etm_context_t *etm_ctx;
- reg_t *etm_ctrl_reg;
+ struct etm_context *etm_ctx;
+ struct reg *etm_ctrl_reg;
target = get_current_target(cmd_ctx);
arm = target_to_arm(target);
COMMAND_HANDLER(handle_etm_stop_command)
{
- target_t *target;
+ struct target *target;
struct arm *arm;
- etm_context_t *etm_ctx;
- reg_t *etm_ctrl_reg;
+ struct etm_context *etm_ctx;
+ struct reg *etm_ctrl_reg;
target = get_current_target(cmd_ctx);
arm = target_to_arm(target);
COMMAND_HANDLER(handle_etm_analyze_command)
{
- target_t *target;
+ struct target *target;
struct arm *arm;
- etm_context_t *etm_ctx;
+ struct etm_context *etm_ctx;
int retval;
target = get_current_target(cmd_ctx);