35 #ifndef ARM_TRC_PKT_DECODE_ETMV4I_H_INCLUDED
36 #define ARM_TRC_PKT_DECODE_ETMV4I_H_INCLUDED
111 void SetInstrInfoInAddrISA(
const ocsd_vaddr_t addr_val,
const uint8_t isa);
112 const ocsd_isa calcISA(
const bool SF,
const uint8_t IS)
const
131 ocsd_err_t traceInstrToWP(instr_range_t &instr_range, WP_res_t &WPRes,
const bool traceToAddrNext =
false,
const ocsd_vaddr_t nextAddrMatch = 0);
133 inline const bool WPFound(WP_res_t res)
const {
return (res == WP_FOUND); };
134 inline const bool WPNacc(WP_res_t res)
const {
return (res == WP_NACC); };
139 void setElemTraceRangeInstr(
OcsdTraceElement &elemIn,
const instr_range_t &addr_range,
143 inline bool isETEConfig() {
152 uint64_t m_timestamp;
153 bool m_ete_first_ts_marker;
156 uint32_t m_context_id;
166 int m_curr_spec_depth;
167 int m_max_spec_depth;
168 int m_unseen_spec_elem;
171 #ifdef DATA_TRACE_SUPPORTED
179 int m_cond_key_max_incr;
197 processor_state_t m_curr_state;
212 const bool isElemForRes()
const {
213 return (m_elem_res.P0_commit || m_elem_res.P0_cancel ||
214 m_elem_res.mispredict || m_elem_res.discard);
217 void clearElemRes() {
218 m_elem_res.P0_commit = 0;
219 m_elem_res.P0_cancel = 0;
220 m_elem_res.mispredict =
false;
221 m_elem_res.discard =
false;
227 bool m_elem_pending_addr;
233 bool m_prev_overflow;
OcsdTraceElement & getCurrElem()
get the current element.
Generic trace element class.
ocsd_err_t mispredictAtom()
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()
bool mispredict
mispredict latest atom
ocsd_err_t handleBadPacket(const char *reason)
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
enum _ocsd_mem_space_acc_t ocsd_mem_space_acc_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.