35 #ifndef ARM_TRC_PKT_DECODE_ETMV4I_H_INCLUDED
36 #define ARM_TRC_PKT_DECODE_ETMV4I_H_INCLUDED
117 void SetInstrInfoInAddrISA(
const ocsd_vaddr_t addr_val,
const uint8_t isa);
118 const ocsd_isa calcISA(
const bool SF,
const uint8_t IS)
const
137 ocsd_err_t traceInstrToWP(instr_range_t &instr_range, WP_res_t &WPRes,
const bool traceToAddrNext =
false,
const ocsd_vaddr_t nextAddrMatch = 0);
139 inline const bool WPFound(WP_res_t res)
const {
return (res == WP_FOUND); };
140 inline const bool WPNacc(WP_res_t res)
const {
return (res == WP_NACC); };
145 void setElemTraceRangeInstr(
OcsdTraceElement &elemIn,
const instr_range_t &addr_range,
149 inline bool isETEConfig() {
158 uint64_t m_timestamp;
159 bool m_ete_first_ts_marker;
162 uint32_t m_context_id;
172 int m_curr_spec_depth;
173 int m_max_spec_depth;
174 int m_unseen_spec_elem;
177 #ifdef DATA_TRACE_SUPPORTED
185 int m_cond_key_max_incr;
203 processor_state_t m_curr_state;
218 const bool isElemForRes()
const {
219 return (m_elem_res.P0_commit || m_elem_res.P0_cancel ||
220 m_elem_res.mispredict || m_elem_res.discard);
223 void clearElemRes() {
224 m_elem_res.P0_commit = 0;
225 m_elem_res.P0_cancel = 0;
226 m_elem_res.mispredict =
false;
227 m_elem_res.discard =
false;
233 bool m_elem_pending_addr;
239 bool m_prev_overflow;
OcsdTraceElement & getCurrElem()
get the current element.
Generic trace element class.
ocsd_err_t mispredictAtom()
ocsd_err_t handleBadPacket(const char *reason, ocsd_trc_index_t index=OCSD_BAD_TRC_INDEX)
ocsd_err_t handlePacketSeqErr(ocsd_err_t err, ocsd_trc_index_t index, const char *reason)
int P0_commit
number of elements to commit
TrcPktDecodeEtmV4I(int instIDNum)
ocsd_err_t cancelElements()
ocsd_err_t commitElemOnEOT()
ocsd_err_t processAtom(const ocsd_atm_val atom)
virtual ocsd_datapath_resp_t onEOT()
ocsd_err_t processTransElem(TrcStackElem *pElem)
ocsd_err_t processTS_CC_EventElem(TrcStackElem *pElem)
ocsd_err_t addElemCC(TrcStackElemParam *pParamElem)
ocsd_err_t discardElements()
ocsd_err_t commitElements()
ocsd_err_t processQElement()
bool discard
discard elements
virtual const uint8_t getCoreSightTraceID()
ocsd_err_t handlePacketErr(ocsd_err_t err, ocsd_err_severity_t sev, ocsd_trc_index_t index, const char *reason)
bool mispredict
mispredict latest atom
virtual ocsd_datapath_resp_t onReset()
ocsd_err_t decodePacket()
ocsd_datapath_resp_t resolveElements()
virtual ocsd_datapath_resp_t onFlush()
virtual ocsd_err_t onProtocolConfig()
virtual void onFirstInitOK()
ocsd_err_t processMarkerElem(TrcStackElem *pElem)
ocsd_err_t processSourceAddress()
void updateContext(TrcStackElemCtxt *pCtxtElem, OcsdTraceElement &elem)
int P0_cancel
elements to cancel
ocsd_err_t addElemTS(TrcStackElemParam *pParamElem, bool withCC)
ocsd_err_t processException()
ocsd_err_t addElemEvent(TrcStackElemParam *pParamElem)
virtual ~TrcPktDecodeEtmV4I()
virtual ocsd_datapath_resp_t processPacket()
enum _unsync_info_t unsync_info_t
uint32_t ocsd_trc_index_t
enum _ocsd_datapath_resp_t ocsd_datapath_resp_t
#define OCSD_BAD_TRC_INDEX
enum _ocsd_mem_space_acc_t ocsd_mem_space_acc_t
enum _ocsd_err_severity_t ocsd_err_severity_t
enum _ocsd_err_t ocsd_err_t
const uint8_t MajVersion() const
enum _ocsd_atm_val ocsd_atm_val
OpenCSD : Decoder Generic trace element output class.
OpenCSD : Trace Packet decoder base class.