OpenCSD - CoreSight Trace Decode Library 1.5.5
Loading...
Searching...
No Matches
EtmV4ITrcPacket Class Reference

ETMv4 Instuction Trace Protocol Packet. More...

#include <trc_pkt_elem_etmv4i.h>

Inheritance diagram for EtmV4ITrcPacket:
Collaboration diagram for EtmV4ITrcPacket:

Public Member Functions

 EtmV4ITrcPacket ()
 ~EtmV4ITrcPacket ()
EtmV4ITrcPacketoperator= (const ocsd_etmv4_i_pkt *p_pkt)
virtual const void * c_pkt () const
 return the underlying C API packet structure
void initStartState ()
 Set to initial state - no intra packet state valid. Use on start of trace / discontinuities.
void initNextPacket ()
 clear any single packet only flags / state.
void setType (const ocsd_etmv4_i_pkt_type pkt_type)
void updateErrType (const ocsd_etmv4_i_pkt_type err_pkt_type, const uint8_t val=0)
void clearTraceInfo ()
 clear all the trace info data prior to setting for new trace info packet.
void setTraceInfo (const uint32_t infoVal)
void setTraceInfoKey (const uint32_t keyVal)
void setTraceInfoSpec (const uint32_t specVal)
void setTraceInfoCyct (const uint32_t cyctVal)
void setTS (const uint64_t value, const uint8_t bits)
void setCycleCount (const uint32_t value)
void setCommitElements (const uint32_t commit_elem)
void setCancelElements (const uint32_t cancel_elem)
void setAtomPacket (const ocsd_pkt_atm_type type, const uint32_t En_bits, const uint8_t num)
void setCondIF1 (uint32_t const cond_key)
void setCondIF2 (uint8_t const c_elem_idx)
void setCondIF3 (uint8_t const num_c_elem, const bool finalElem)
void setCondRF1 (const uint32_t key[2], const uint8_t res[2], const uint8_t CI[2], const bool set2Keys)
void setCondRF2 (const uint8_t key_incr, const uint8_t token)
void setCondRF3 (const uint16_t tokens)
void setCondRF4 (const uint8_t token)
void setContextInfo (const bool update, const uint8_t EL=0, const uint8_t NS=0, const uint8_t SF=0, const uint8_t NSE=0)
void setContextVMID (const uint32_t VMID)
void setContextCID (const uint32_t CID)
void setExceptionInfo (const uint16_t excep_type, const uint8_t addr_interp, const uint8_t m_fault_pending, const uint8_t m_type)
void set64BitAddress (const uint64_t addr, const uint8_t IS)
void set32BitAddress (const uint32_t addr, const uint8_t IS)
void updateShortAddress (const uint32_t addr, const uint8_t IS, const uint8_t update_bits)
void setAddressExactMatch (const uint8_t idx)
void setDataSyncMarker (const uint8_t dsm_val)
void setEvent (const uint8_t event_val)
void setQType (const bool has_count, const uint32_t count, const bool has_addr, const bool addr_match, const uint8_t type)
void setITE (const uint8_t el, const uint64_t value)
const ocsd_etmv4_i_pkt_type getType () const
const ocsd_etmv4_i_pkt_type getErrType () const
const bool hasCommitElementsCount () const
 return true if this packet has set the commit packet count.
const etmv4_trace_info_tgetTraceInfo () const
const uint32_t getCCThreshold () const
const uint32_t getP0Key () const
const uint32_t getCurrSpecDepth () const
const ocsd_pkt_atomgetAtom () const
const int getNumAtoms () const
const etmv4_context_tgetContext () const
const uint8_t & getAddrMatch () const
const ocsd_vaddr_tgetAddrVal () const
const uint8_t & getAddrIS () const
const bool getAddr64Bit () const
const uint64_t getTS () const
const uint32_t getCC () const
const int getCommitElem () const
const int getCancelElem () const
const uint8_t getITE_EL () const
const uint64_t getITE_value () const
const bool isBadPacket () const
virtual void toString (std::string &str) const
virtual void toStringFmt (const uint32_t fmtFlags, std::string &str) const
void setProtocolVersion (const uint8_t version)
Public Member Functions inherited from TrcPacketBase
 TrcPacketBase ()
virtual ~TrcPacketBase ()
Public Member Functions inherited from trcPrintableElem
 trcPrintableElem ()
virtual ~trcPrintableElem ()

Additional Inherited Members

Static Public Member Functions inherited from trcPrintableElem
static void getValStr (std::string &valStr, const int valTotalBitSize, const int valValidBits, const uint64_t value, const bool asHex=true, const int updateBits=0)
Public Attributes inherited from _ocsd_etmv4_i_pkt
ocsd_etmv4_i_pkt_type type
ocsd_pkt_vaddr v_addr
 most recently broadcast address packet
uint8_t v_addr_ISA
 ISA for the address packet. (0 = IS0 / 1 = IS1).
etmv4_context_t context
 current context for PE
struct { 
   uint64_t   timestamp 
 current timestamp value More...
   uint8_t   bits_changed 
 bits updated in this timestamp packet. More...
ts
uint32_t cc_threshold
 cycle count threshold - from trace info.
ocsd_pkt_atom atom
 atom elements - number of atoms indicates validity of packet
uint32_t cycle_count
 cycle count
uint32_t curr_spec_depth
 current speculation depth
uint32_t p0_key
 current P0 key value for data packet synchronisation
uint32_t commit_elements
uint32_t cancel_elements
etmv4_trace_info_t trace_info
 trace info structure - programmed configuration of trace capture.
struct { 
   uint32_t   exceptionType:10 
 exception number More...
   uint32_t   addr_interp:2 
 address value interpretation More...
   uint32_t   m_fault_pending:1 
 M class fault pending. More...
   uint32_t   m_type:1 
 1 if M class exception. More...
exception_info
uint8_t addr_exact_match_idx
 address match index in this packet.
uint8_t dsm_val
 Data Sync Marker number, or unnumbered atom count - packet type determines.
uint8_t event_val
 Event value on event packet.
struct { 
   uint32_t   cond_c_key 
   uint8_t   num_c_elem 
   struct { 
      uint32_t   cond_key_set:1 
      uint32_t   f3_final_elem:1 
      uint32_t   f2_cond_incr:1 
   } 
cond_instr
struct { 
   uint32_t   cond_r_key_0 
   uint32_t   cond_r_key_1 
   struct { 
      uint32_t   res_0:4 
      uint32_t   res_1:4 
      uint32_t   ci_0:1 
      uint32_t   ci_1:1 
      uint32_t   key_res_0_set:1 
      uint32_t   key_res_1_set:1 
      uint32_t   f2_key_incr:2 
      uint32_t   f2f4_token:2 
      uint32_t   f3_tokens:12 
   } 
cond_result
struct { 
   uint32_t   q_count 
   struct { 
      uint32_t   addr_present:1 
      uint32_t   addr_match:1 
      uint32_t   count_present:1 
      uint32_t   q_type:4 
   } 
Q_pkt
struct { 
   uint8_t   el 
   uint64_t   value 
ite_pkt
union { 
   uint32_t   val 
   struct { 
      uint32_t   context_valid:1 
      uint32_t   ts_valid:1 
      uint32_t   spec_depth_valid:1 
      uint32_t   p0_key_valid:1 
      uint32_t   cond_c_key_valid:1 
      uint32_t   cond_r_key_valid:1 
      uint32_t   trace_info_valid:1 
      uint32_t   cc_thresh_valid:1 
      uint32_t   cc_valid:1 
      uint32_t   commit_elem_valid:1 
   }   bits
pkt_valid
 valid bits for packet elements (addresses have their own valid bits).
ocsd_etmv4_i_pkt_type err_type
uint8_t err_hdr_val
uint8_t protocol_version

Detailed Description

ETMv4 Instuction Trace Protocol Packet.


This class represents a single ETMv4 data trace packet, along with intra packet state.

Definition at line 110 of file trc_pkt_elem_etmv4i.h.

Constructor & Destructor Documentation

◆ EtmV4ITrcPacket()

EtmV4ITrcPacket::EtmV4ITrcPacket ( )
Here is the caller graph for this function:

◆ ~EtmV4ITrcPacket()

EtmV4ITrcPacket::~EtmV4ITrcPacket ( )

Member Function Documentation

◆ c_pkt()

virtual const void * EtmV4ITrcPacket::c_pkt ( ) const
inlinevirtual

return the underlying C API packet structure

Implements TrcPacketBase.

Definition at line 118 of file trc_pkt_elem_etmv4i.h.

◆ getAddr64Bit()

const bool EtmV4ITrcPacket::getAddr64Bit ( ) const
inline

Definition at line 192 of file trc_pkt_elem_etmv4i.h.

◆ getAddrIS()

const uint8_t & EtmV4ITrcPacket::getAddrIS ( ) const
inline

Definition at line 191 of file trc_pkt_elem_etmv4i.h.

◆ getAddrMatch()

const uint8_t & EtmV4ITrcPacket::getAddrMatch ( ) const
inline

Definition at line 189 of file trc_pkt_elem_etmv4i.h.

◆ getAddrVal()

const ocsd_vaddr_t & EtmV4ITrcPacket::getAddrVal ( ) const
inline

Definition at line 190 of file trc_pkt_elem_etmv4i.h.

◆ getAtom()

const ocsd_pkt_atom & EtmV4ITrcPacket::getAtom ( ) const
inline

Definition at line 182 of file trc_pkt_elem_etmv4i.h.

◆ getCancelElem()

const int EtmV4ITrcPacket::getCancelElem ( ) const
inline

Definition at line 202 of file trc_pkt_elem_etmv4i.h.

◆ getCC()

const uint32_t EtmV4ITrcPacket::getCC ( ) const
inline

Definition at line 198 of file trc_pkt_elem_etmv4i.h.

◆ getCommitElem()

const int EtmV4ITrcPacket::getCommitElem ( ) const
inline

Definition at line 201 of file trc_pkt_elem_etmv4i.h.

◆ getContext()

const etmv4_context_t & EtmV4ITrcPacket::getContext ( ) const
inline

Definition at line 186 of file trc_pkt_elem_etmv4i.h.

◆ getErrType()

const ocsd_etmv4_i_pkt_type EtmV4ITrcPacket::getErrType ( ) const
inline

Definition at line 167 of file trc_pkt_elem_etmv4i.h.

◆ getITE_EL()

const uint8_t EtmV4ITrcPacket::getITE_EL ( ) const
inline

Definition at line 205 of file trc_pkt_elem_etmv4i.h.

◆ getITE_value()

const uint64_t EtmV4ITrcPacket::getITE_value ( ) const
inline

Definition at line 206 of file trc_pkt_elem_etmv4i.h.

◆ getNumAtoms()

const int EtmV4ITrcPacket::getNumAtoms ( ) const
inline

Definition at line 183 of file trc_pkt_elem_etmv4i.h.

◆ getTraceInfo()

const etmv4_trace_info_t & EtmV4ITrcPacket::getTraceInfo ( ) const
inline

Definition at line 176 of file trc_pkt_elem_etmv4i.h.

◆ getTS()

const uint64_t EtmV4ITrcPacket::getTS ( ) const
inline

Definition at line 195 of file trc_pkt_elem_etmv4i.h.

◆ getType()

const ocsd_etmv4_i_pkt_type EtmV4ITrcPacket::getType ( ) const
inline

Definition at line 166 of file trc_pkt_elem_etmv4i.h.

◆ hasCommitElementsCount()

const bool EtmV4ITrcPacket::hasCommitElementsCount ( ) const
inline

return true if this packet has set the commit packet count.

Definition at line 170 of file trc_pkt_elem_etmv4i.h.

◆ initNextPacket()

void EtmV4ITrcPacket::initNextPacket ( )

clear any single packet only flags / state.

◆ initStartState()

void EtmV4ITrcPacket::initStartState ( )

Set to initial state - no intra packet state valid. Use on start of trace / discontinuities.

◆ operator=()

EtmV4ITrcPacket & EtmV4ITrcPacket::operator= ( const ocsd_etmv4_i_pkt * p_pkt)
Here is the call graph for this function:

◆ setProtocolVersion()

void EtmV4ITrcPacket::setProtocolVersion ( const uint8_t version)
inline

Definition at line 215 of file trc_pkt_elem_etmv4i.h.

◆ setType()

void EtmV4ITrcPacket::setType ( const ocsd_etmv4_i_pkt_type pkt_type)
inline

Definition at line 124 of file trc_pkt_elem_etmv4i.h.

◆ toString()

virtual void EtmV4ITrcPacket::toString ( std::string & str) const
virtual

Reimplemented from trcPrintableElem.

◆ toStringFmt()

virtual void EtmV4ITrcPacket::toStringFmt ( const uint32_t fmtFlags,
std::string & str ) const
virtual

Reimplemented from trcPrintableElem.


The documentation for this class was generated from the following file: