OpenCSD - CoreSight Trace Decode Library  1.3.3
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 uint8_t getInstrSize () const
 Get the last instruction size. 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 227 of file ocsd_code_follower.h.

◆ followSingleAtom()

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

◆ getInstrSize()

const uint8_t OcsdCodeFollower::getInstrSize ( ) const
inline

Get the last instruction size.

Definition at line 196 of file ocsd_code_follower.h.

◆ getInstrSubType()

const ocsd_instr_subtype OcsdCodeFollower::getInstrSubType ( ) const
inline

last instruction sub-type

Definition at line 191 of file ocsd_code_follower.h.

◆ getInstrType()

const ocsd_instr_type OcsdCodeFollower::getInstrType ( ) const
inline

last instruction type

Definition at line 186 of file ocsd_code_follower.h.

◆ getNaccAddr()

const ocsd_vaddr_t OcsdCodeFollower::getNaccAddr ( ) const
inline

get the nacc error address.

Definition at line 232 of file ocsd_code_follower.h.

◆ getNextAddr()

const ocsd_vaddr_t OcsdCodeFollower::getNextAddr ( ) const
inline

next address - valid if hasNextAddr() true.

Definition at line 180 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 165 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 160 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 175 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 170 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 211 of file ocsd_code_follower.h.

◆ isCondInstr()

const bool OcsdCodeFollower::isCondInstr ( ) const
inline

is a conditional instruction

Definition at line 201 of file ocsd_code_follower.h.

◆ isLink()

const bool OcsdCodeFollower::isLink ( ) const
inline

is a link (branch with link etc)

Definition at line 206 of file ocsd_code_follower.h.

◆ isNacc()

const bool OcsdCodeFollower::isNacc ( ) const
inline

true if Memory Not Accessible (nacc) error occurred

Definition at line 222 of file ocsd_code_follower.h.

◆ nextISA()

const ocsd_isa OcsdCodeFollower::nextISA ( ) const
inline

ISA for next instruction.

Definition at line 216 of file ocsd_code_follower.h.

◆ setArchProfile()

void OcsdCodeFollower::setArchProfile ( const ocsd_arch_profile_t  profile)
inline

core profile

Definition at line 134 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 154 of file ocsd_code_follower.h.

◆ setISA()

void OcsdCodeFollower::setISA ( const ocsd_isa  isa)
inline

set the ISA for the decode.

Definition at line 149 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 139 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 144 of file ocsd_code_follower.h.


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