#define OPENOCD_TARGET_TARGET_H
#include <helper/list.h>
+#include "helper/replacements.h"
+#include "helper/system.h"
+#include <jim.h>
struct reg;
struct trace;
/*
* TARGET_UNKNOWN = 0: we don't know anything about the target yet
- * TARGET_RUNNING = 1: the target is executing user code
+ * TARGET_RUNNING = 1: the target is executing or ready to execute user code
* TARGET_HALTED = 2: the target is not executing code, and ready to talk to the
* debugger. on an xscale it means that the debug handler is executing
* TARGET_RESET = 3: the target is being held in reset (only a temporary state,
char *gdb_port_override; /* target-specific override for gdb_port */
+ int gdb_max_connections; /* max number of simultaneous gdb connections */
+
/* The semihosting information, extracted from the target. */
struct semihosting *semihosting;
};
TARGET_EVENT_RESUMED, /* target resumed to normal execution */
TARGET_EVENT_RESUME_START,
TARGET_EVENT_RESUME_END,
+ TARGET_EVENT_STEP_START,
+ TARGET_EVENT_STEP_END,
TARGET_EVENT_GDB_START, /* debugger started execution (step/run) */
TARGET_EVENT_GDB_END, /* debugger stopped execution (step/run) */
struct target_event_action {
enum target_event event;
- struct Jim_Interp *interp;
- struct Jim_Obj *body;
+ Jim_Interp *interp;
+ Jim_Obj *body;
struct target_event_action *next;
};
uint32_t entry_point, uint32_t exit_point,
void *arch_info);
+/**
+ * This routine is a wrapper for asynchronous algorithms.
+ *
+ */
+int target_run_read_async_algorithm(struct target *target,
+ uint8_t *buffer, uint32_t count, int block_size,
+ int num_mem_params, struct mem_param *mem_params,
+ int num_reg_params, struct reg_param *reg_params,
+ uint32_t buffer_start, uint32_t buffer_size,
+ uint32_t entry_point, uint32_t exit_point,
+ void *arch_info);
+
/**
* Read @a count items of @a size bytes from the memory of @a target at
* the @a address given.
struct target *target, target_addr_t address, unsigned size,
unsigned count, const uint8_t *buffer);
+int target_profiling_default(struct target *target, uint32_t *samples, uint32_t
+ max_num_samples, uint32_t *num_samples, uint32_t seconds);
+
#define ERROR_TARGET_INVALID (-300)
#define ERROR_TARGET_INIT_FAILED (-301)
#define ERROR_TARGET_TIMEOUT (-302)
#define ERROR_TARGET_NOT_RUNNING (-310)
#define ERROR_TARGET_NOT_EXAMINED (-311)
#define ERROR_TARGET_DUPLICATE_BREAKPOINT (-312)
+#define ERROR_TARGET_ALGO_EXIT (-313)
extern bool get_target_reset_nag(void);