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;
248 #endif // ARM_TRC_PKT_DECODE_ETMV4I_H_INCLUDED ocsd_err_t commitElements()
ocsd_err_t addElemEvent(TrcStackElemParam *pParamElem)
ocsd_err_t processException()
bool mispredict
mispredict latest atom
ocsd_err_t mispredictAtom()
ocsd_err_t handleBadPacket(const char *reason, ocsd_trc_index_t index=OCSD_BAD_TRC_INDEX)
enum _unsync_info_t unsync_info_t
enum _ocsd_datapath_resp_t ocsd_datapath_resp_t
ocsd_err_t handlePacketSeqErr(ocsd_err_t err, ocsd_trc_index_t index, const char *reason)
ocsd_err_t decodePacket()
virtual ~TrcPktDecodeEtmV4I()
virtual ocsd_err_t onProtocolConfig()
ocsd_err_t cancelElements()
ocsd_err_t handlePacketErr(ocsd_err_t err, ocsd_err_severity_t sev, ocsd_trc_index_t index, const char *reason)
enum _ocsd_atm_val ocsd_atm_val
void updateContext(TrcStackElemCtxt *pCtxtElem, OcsdTraceElement &elem)
ocsd_err_t commitElemOnEOT()
int P0_commit
number of elements to commit
virtual void onFirstInitOK()
enum _ocsd_err_t ocsd_err_t
virtual ocsd_datapath_resp_t processPacket()
ocsd_err_t discardElements()
virtual ocsd_datapath_resp_t onFlush()
ocsd_err_t processSourceAddress()
OpenCSD : Trace Packet decoder base class.
Generic trace element class.
ocsd_datapath_resp_t resolveElements()
ocsd_err_t processTransElem(TrcStackElem *pElem)
enum _ocsd_mem_space_acc_t ocsd_mem_space_acc_t
ocsd_err_t processMarkerElem(TrcStackElem *pElem)
OcsdTraceElement & getCurrElem()
get the current element.
ocsd_err_t processTS_CC_EventElem(TrcStackElem *pElem)
virtual ocsd_datapath_resp_t onEOT()
ocsd_err_t addElemTS(TrcStackElemParam *pParamElem, bool withCC)
uint32_t ocsd_trc_index_t
int P0_cancel
elements to cancel
const uint8_t MajVersion() const
ocsd_err_t addElemCC(TrcStackElemParam *pParamElem)
virtual ocsd_datapath_resp_t onReset()
ocsd_err_t processQElement()
#define OCSD_BAD_TRC_INDEX
enum _ocsd_err_severity_t ocsd_err_severity_t
OpenCSD : Decoder Generic trace element output class.
bool discard
discard elements
ocsd_err_t processAtom(const ocsd_atm_val atom)
virtual const uint8_t getCoreSightTraceID()