OpenCSD - CoreSight Trace Decode Library  1.3.3
Public Member Functions | List of all members
EtmV4ITrcPacket Class Reference

ETMv4 Instuction Trace Protocol Packet. More...

#include <trc_pkt_elem_etmv4i.h>

Inheritance diagram for EtmV4ITrcPacket:
Inheritance graph
[legend]
Collaboration diagram for EtmV4ITrcPacket:
Collaboration graph
[legend]

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 More...
 
void initStartState ()
 Set to initial state - no intra packet state valid. Use on start of trace / discontinuities. More...
 
void initNextPacket ()
 clear any single packet only flags / state. More...
 
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. More...
 
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)
 
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. More...
 
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 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 More...
 
uint8_t v_addr_ISA
 ISA for the address packet. (0 = IS0 / 1 = IS1) More...
 
etmv4_context_t context
 current context for PE More...
 
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. More...
 
ocsd_pkt_atom atom
 atom elements - number of atoms indicates validity of packet More...
 
uint32_t cycle_count
 cycle count More...
 
uint32_t curr_spec_depth
 current speculation depth More...
 
uint32_t p0_key
 current P0 key value for data packet synchronisation More...
 
uint32_t commit_elements
 
uint32_t cancel_elements
 
etmv4_trace_info_t trace_info
 trace info structure - programmed configuration of trace capture. More...
 
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. More...
 
uint8_t dsm_val
 Data Sync Marker number, or unnumbered atom count - packet type determines. More...
 
uint8_t event_val
 Event value on event packet. More...
 
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
 
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). More...
 
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 ( )

◆ ~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 191 of file trc_pkt_elem_etmv4i.h.

◆ getAddrIS()

const uint8_t& EtmV4ITrcPacket::getAddrIS ( ) const
inline

Definition at line 190 of file trc_pkt_elem_etmv4i.h.

◆ getAddrMatch()

const uint8_t& EtmV4ITrcPacket::getAddrMatch ( ) const
inline

Definition at line 188 of file trc_pkt_elem_etmv4i.h.

◆ getAddrVal()

const ocsd_vaddr_t& EtmV4ITrcPacket::getAddrVal ( ) const
inline

Definition at line 189 of file trc_pkt_elem_etmv4i.h.

◆ getAtom()

const ocsd_pkt_atom& EtmV4ITrcPacket::getAtom ( ) const
inline

Definition at line 181 of file trc_pkt_elem_etmv4i.h.

◆ getCancelElem()

const int EtmV4ITrcPacket::getCancelElem ( ) const
inline

Definition at line 201 of file trc_pkt_elem_etmv4i.h.

◆ getCC()

const uint32_t EtmV4ITrcPacket::getCC ( ) const
inline

Definition at line 197 of file trc_pkt_elem_etmv4i.h.

◆ getCommitElem()

const int EtmV4ITrcPacket::getCommitElem ( ) const
inline

Definition at line 200 of file trc_pkt_elem_etmv4i.h.

◆ getContext()

const etmv4_context_t& EtmV4ITrcPacket::getContext ( ) const
inline

Definition at line 185 of file trc_pkt_elem_etmv4i.h.

◆ getErrType()

const ocsd_etmv4_i_pkt_type EtmV4ITrcPacket::getErrType ( ) const
inline

Definition at line 166 of file trc_pkt_elem_etmv4i.h.

◆ getNumAtoms()

const int EtmV4ITrcPacket::getNumAtoms ( ) const
inline

Definition at line 182 of file trc_pkt_elem_etmv4i.h.

◆ getTraceInfo()

const etmv4_trace_info_t& EtmV4ITrcPacket::getTraceInfo ( ) const
inline

Definition at line 175 of file trc_pkt_elem_etmv4i.h.

◆ getTS()

const uint64_t EtmV4ITrcPacket::getTS ( ) const
inline

Definition at line 194 of file trc_pkt_elem_etmv4i.h.

◆ getType()

const ocsd_etmv4_i_pkt_type EtmV4ITrcPacket::getType ( ) const
inline

Definition at line 165 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 169 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)

◆ setProtocolVersion()

void EtmV4ITrcPacket::setProtocolVersion ( const uint8_t  version)
inline

Definition at line 210 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: