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

The code follower looks for waypoints or addresses. More...

#include <ocsd_code_follower.h>

Public Member Functions

 OcsdCodeFollower ()
 
 ~OcsdCodeFollower ()
 
void initInterfaces (componentAttachPt< ITargetMemAccess > *pMemAccess, componentAttachPt< IInstrDecode > *pIDecode)
 
void setArchProfile (const ocsd_arch_profile_t profile)
 core profile More...
 
void setMemSpaceAccess (const ocsd_mem_space_acc_t mem_acc_rule)
 memory space to use for access (filtered by S/NS, EL etc). More...
 
void setMemSpaceCSID (const uint8_t csid)
 memory spaces might be partitioned by CSID More...
 
void setISA (const ocsd_isa isa)
 set the ISA for the decode. More...
 
void setDSBDMBasWP ()
 DSB and DMB can be treated as WP in some archs. More...
 
ocsd_err_t followSingleAtom (const ocsd_vaddr_t addrStart, const ocsd_atm_val A)
 
const ocsd_vaddr_t getRangeSt () const
 inclusive start address of decoded range (value passed in) More...
 
const ocsd_vaddr_t getRangeEn () const
 exclusive end address of decoded range (first instruction not executed / potential next instruction). More...
 
const bool hasRange () const
 we have a valid range executed (may be false if nacc). More...
 
const bool hasNextAddr () const
 we have calulated the next address - otherwise this is needed from trace packets. More...
 
const ocsd_vaddr_t getNextAddr () const
 next address - valid if hasNextAddr() true. More...
 
const ocsd_instr_type getInstrType () const
 last instruction type More...
 
const ocsd_instr_subtype getInstrSubType () const
 last instruction sub-type More...
 
const bool isCondInstr () const
 is a conditional instruction More...
 
const bool isLink () const
 is a link (branch with link etc) More...
 
const bool ISAChanged () const
 next ISA different from input ISA. More...
 
const ocsd_isa nextISA () const
 ISA for next instruction. More...
 
const bool isNacc () const
 true if Memory Not Accessible (nacc) error occurred More...
 
void clearNacc ()
 clear the nacc error flag More...
 
const ocsd_vaddr_t getNaccAddr () const
 get the nacc error address. More...
 

Detailed Description

The code follower looks for waypoints or addresses.

Code follower used to determine the trace ranges for Atom or other waypoint elements. Uses memory accessor and I decoder to follow the code path.

Definition at line 52 of file ocsd_code_follower.h.

Constructor & Destructor Documentation

◆ OcsdCodeFollower()

OcsdCodeFollower::OcsdCodeFollower ( )

◆ ~OcsdCodeFollower()

OcsdCodeFollower::~OcsdCodeFollower ( )

Member Function Documentation

◆ clearNacc()

void OcsdCodeFollower::clearNacc ( )
inline

clear the nacc error flag

Definition at line 221 of file ocsd_code_follower.h.

◆ followSingleAtom()

ocsd_err_t OcsdCodeFollower::followSingleAtom ( const ocsd_vaddr_t  addrStart,
const ocsd_atm_val  A 
)

◆ getInstrSubType()

const ocsd_instr_subtype OcsdCodeFollower::getInstrSubType ( ) const
inline

last instruction sub-type

Definition at line 190 of file ocsd_code_follower.h.

◆ getInstrType()

const ocsd_instr_type OcsdCodeFollower::getInstrType ( ) const
inline

last instruction type

Definition at line 185 of file ocsd_code_follower.h.

◆ getNaccAddr()

const ocsd_vaddr_t OcsdCodeFollower::getNaccAddr ( ) const
inline

get the nacc error address.

Definition at line 226 of file ocsd_code_follower.h.

◆ getNextAddr()

const ocsd_vaddr_t OcsdCodeFollower::getNextAddr ( ) const
inline

next address - valid if hasNextAddr() true.

Definition at line 179 of file ocsd_code_follower.h.

◆ getRangeEn()

const ocsd_vaddr_t OcsdCodeFollower::getRangeEn ( ) const
inline

exclusive end address of decoded range (first instruction not executed / potential next instruction).

Definition at line 164 of file ocsd_code_follower.h.

◆ getRangeSt()

const ocsd_vaddr_t OcsdCodeFollower::getRangeSt ( ) const
inline

inclusive start address of decoded range (value passed in)

Definition at line 159 of file ocsd_code_follower.h.

◆ hasNextAddr()

const bool OcsdCodeFollower::hasNextAddr ( ) const
inline

we have calulated the next address - otherwise this is needed from trace packets.

Definition at line 174 of file ocsd_code_follower.h.

◆ hasRange()

const bool OcsdCodeFollower::hasRange ( ) const
inline

we have a valid range executed (may be false if nacc).

Definition at line 169 of file ocsd_code_follower.h.

◆ initInterfaces()

void OcsdCodeFollower::initInterfaces ( componentAttachPt< ITargetMemAccess > *  pMemAccess,
componentAttachPt< IInstrDecode > *  pIDecode 
)

◆ ISAChanged()

const bool OcsdCodeFollower::ISAChanged ( ) const
inline

next ISA different from input ISA.

Definition at line 205 of file ocsd_code_follower.h.

◆ isCondInstr()

const bool OcsdCodeFollower::isCondInstr ( ) const
inline

is a conditional instruction

Definition at line 195 of file ocsd_code_follower.h.

◆ isLink()

const bool OcsdCodeFollower::isLink ( ) const
inline

is a link (branch with link etc)

Definition at line 200 of file ocsd_code_follower.h.

◆ isNacc()

const bool OcsdCodeFollower::isNacc ( ) const
inline

true if Memory Not Accessible (nacc) error occurred

Definition at line 216 of file ocsd_code_follower.h.

◆ nextISA()

const ocsd_isa OcsdCodeFollower::nextISA ( ) const
inline

ISA for next instruction.

Definition at line 210 of file ocsd_code_follower.h.

◆ setArchProfile()

void OcsdCodeFollower::setArchProfile ( const ocsd_arch_profile_t  profile)
inline

core profile

Definition at line 133 of file ocsd_code_follower.h.

◆ setDSBDMBasWP()

void OcsdCodeFollower::setDSBDMBasWP ( )
inline

DSB and DMB can be treated as WP in some archs.

Definition at line 153 of file ocsd_code_follower.h.

◆ setISA()

void OcsdCodeFollower::setISA ( const ocsd_isa  isa)
inline

set the ISA for the decode.

Definition at line 148 of file ocsd_code_follower.h.

◆ setMemSpaceAccess()

void OcsdCodeFollower::setMemSpaceAccess ( const ocsd_mem_space_acc_t  mem_acc_rule)
inline

memory space to use for access (filtered by S/NS, EL etc).

Definition at line 138 of file ocsd_code_follower.h.

◆ setMemSpaceCSID()

void OcsdCodeFollower::setMemSpaceCSID ( const uint8_t  csid)
inline

memory spaces might be partitioned by CSID

Definition at line 143 of file ocsd_code_follower.h.


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