* Copyright (C) 2005 by Dominic Rath *
* Dominic.Rath@gmx.de *
* *
- * Copyright (C) 2007,2008 Øyvind Harboe *
+ * Copyright (C) 2007,2008,2009 Øyvind Harboe *
* oyvind.harboe@zylin.com *
* *
* Copyright (C) 2008 by Spencer Oliver *
* However, this method can be invoked on unresponsive targets.
*/
int (*remove_breakpoint)(struct target_s *target, breakpoint_t *breakpoint);
- int (*add_watchpoint)(struct target_s *target, watchpoint_t *watchpoint);
+ int (*add_watchpoint)(struct target_s *target, struct watchpoint *watchpoint);
/* remove watchpoint. hw will only be updated if the target is currently halted.
* However, this method can be invoked on unresponsive targets.
*/
- int (*remove_watchpoint)(struct target_s *target, watchpoint_t *watchpoint);
+ int (*remove_watchpoint)(struct target_s *target, struct watchpoint *watchpoint);
/* target algorithm support */
- int (*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);
+ int (*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);
/**
* Target algorithm support. Do @b not call this method directly,
* use target_run_algorithm() instead.
*/
- int (*run_algorithm)(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);
+ int (*run_algorithm)(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);
int (*register_commands)(struct command_context_s *cmd_ctx);
* before the JTAG chain has been examined/verified
* */
int (*init_target)(struct command_context_s *cmd_ctx, struct target_s *target);
- int (*quit)(void);
/* translate from virtual to physical address. Default implementation is successful
* no-op(i.e. virtual==physical).
int (*mmu)(struct target_s *target, int *enabled);
+ /* Read coprocessor - arm specific. Default implementation returns error. */
+ int (*mrc)(struct target_s *target, int cpnum, uint32_t op1, uint32_t op2, uint32_t CRn, uint32_t CRm, uint32_t *value);
+
+ /* Write coprocessor. Default implementation returns error. */
+ int (*mcr)(struct target_s *target, int cpnum, uint32_t op1, uint32_t op2, uint32_t CRn, uint32_t CRm, uint32_t value);
};
#endif // TARGET_TYPE_H