/* halt will log a warning, but return ERROR_OK if the target is already halted. */
int (*halt)(struct target *target);
+ /* See target.c target_resume() for documentation. */
int (*resume)(struct target *target, int current, target_addr_t address,
int handle_breakpoints, int debug_execution);
int (*step)(struct target *target, int current, target_addr_t address,
* "halt".
*
* reset run; halt
- */
+ */
int (*deassert_reset)(struct target *target);
int (*soft_reset_halt)(struct target *target);
+ /**
+ * Target architecture for GDB.
+ *
+ * The string returned by this function will not be automatically freed;
+ * if dynamic allocation is used for this value, it must be managed by
+ * the target, ideally by caching the result for subsequent calls.
+ */
+ const char *(*get_gdb_arch)(struct target *target);
+
/**
* Target register access for GDB. Do @b not call this function
* directly, use target_get_gdb_reg_list() instead.
int (*checksum_memory)(struct target *target, target_addr_t address,
uint32_t count, uint32_t *checksum);
- int (*blank_check_memory)(struct target *target, target_addr_t address,
- uint32_t count, uint32_t *blank, uint8_t erased_value);
+ int (*blank_check_memory)(struct target *target,
+ struct target_memory_check_block *blocks, int num_blocks,
+ uint8_t erased_value);
/*
* target break-/watchpoint control
*/
int (*profiling)(struct target *target, uint32_t *samples,
uint32_t max_num_samples, uint32_t *num_samples, uint32_t seconds);
+
+ /* Return the number of address bits this target supports. This will
+ * typically be 32 for 32-bit targets, and 64 for 64-bit targets. If not
+ * implemented, it's assumed to be 32. */
+ unsigned (*address_bits)(struct target *target);
};
#endif /* OPENOCD_TARGET_TARGET_TYPE_H */