X-Git-Url: https://review.openocd.org/gitweb?p=openocd.git;a=blobdiff_plain;f=src%2Ftarget%2Fxscale.h;h=49d4c71eccf445defdb126e89ab635461ee0066a;hp=2bb2ba5ea14dee84dd66456bdc7ad747511c4543;hb=3a550e5b5fe011e526b150a5d234b48e8e2aaad6;hpb=56e01714203406b50b40dd7738983e3b019d4df2 diff --git a/src/target/xscale.h b/src/target/xscale.h index 2bb2ba5ea1..49d4c71ecc 100644 --- a/src/target/xscale.h +++ b/src/target/xscale.h @@ -23,9 +23,9 @@ #ifndef XSCALE_H #define XSCALE_H -#include -#include -#include +#include "arm.h" +#include "armv4_5_mmu.h" +#include "trace.h" #define XSCALE_COMMON_MAGIC 0x58534341 @@ -67,25 +67,31 @@ struct xscale_trace_data uint32_t chkpt0; uint32_t chkpt1; uint32_t last_instruction; + unsigned int num_checkpoints; struct xscale_trace_data *next; }; +enum trace_mode +{ + XSCALE_TRACE_DISABLED, + XSCALE_TRACE_FILL, + XSCALE_TRACE_WRAP +}; + struct xscale_trace { - trace_status_t capture_status; /* current state of capture run */ struct image *image; /* source for target opcodes */ struct xscale_trace_data *data; /* linked list of collected trace data */ - int buffer_enabled; /* whether trace buffer is enabled */ - int buffer_fill; /* maximum number of trace runs to read (-1 for wrap-around) */ - int pc_ok; - uint32_t current_pc; - arm_state_t core_state; /* current core state (ARM, Thumb, Jazelle) */ + int buffer_fill; /* maximum number of trace runs to read */ + int fill_counter; /* running count during trace collection */ + enum trace_mode mode; + enum arm_state core_state; /* current core state (ARM, Thumb) */ }; struct xscale_common { /* armv4/5 common stuff */ - struct arm armv4_5_common; + struct arm arm; int common_magic; @@ -142,7 +148,7 @@ static inline struct xscale_common * target_to_xscale(struct target *target) { return container_of(target->arch_info, struct xscale_common, - armv4_5_common); + arm); } struct xscale_reg @@ -177,6 +183,6 @@ enum XSCALE_TXRXCTRL, }; -#define ERROR_XSCALE_NO_TRACE_DATA (-1500) +#define ERROR_XSCALE_NO_TRACE_DATA (-700) #endif /* XSCALE_H */