35 #ifndef ARM_OCSD_CODE_FOLLOWER_H_INCLUDED
36 #define ARM_OCSD_CODE_FOLLOWER_H_INCLUDED
101 const bool isNacc()
const;
106 bool initFollowerState();
120 uint8_t m_mem_space_csid;
136 m_instr_info.
pe_type = profile;
141 m_mem_acc_rule = mem_acc_rule;
146 m_mem_space_csid = csid;
151 m_instr_info.
isa = isa;
162 return m_st_range_addr;
167 return m_en_range_addr;
172 return m_st_range_addr < m_en_range_addr;
177 return m_b_next_valid;
188 return m_instr_info.
type;
208 return (
bool)(m_instr_info.
is_link == 1);
213 return (
bool)(m_instr_info.
isa != m_instr_info.
next_isa);
229 m_b_nacc_err =
false;
234 return m_nacc_address;
The code follower looks for waypoints or addresses.
ocsd_err_t followSingleAtom(const ocsd_vaddr_t addrStart, const ocsd_atm_val A)
const ocsd_vaddr_t getNextAddr() const
next address - valid if hasNextAddr() true.
const bool isNacc() const
true if Memory Not Accessible (nacc) error occurred
const ocsd_isa nextISA() const
ISA for next instruction.
void setMemSpaceCSID(const uint8_t csid)
memory spaces might be partitioned by CSID
void setISA(const ocsd_isa isa)
set the ISA for the decode.
void initInterfaces(componentAttachPt< ITargetMemAccess > *pMemAccess, componentAttachPt< IInstrDecode > *pIDecode)
const ocsd_vaddr_t getNaccAddr() const
get the nacc error address.
void setArchProfile(const ocsd_arch_profile_t profile)
core profile
const uint8_t getInstrSize() const
Get the last instruction size.
const bool ISAChanged() const
next ISA different from input ISA.
const ocsd_vaddr_t getRangeSt() const
inclusive start address of decoded range (value passed in)
const bool hasRange() const
we have a valid range executed (may be false if nacc).
const bool hasNextAddr() const
we have calulated the next address - otherwise this is needed from trace packets.
const bool isCondInstr() const
is a conditional instruction
void setMemSpaceAccess(const ocsd_mem_space_acc_t mem_acc_rule)
memory space to use for access (filtered by S/NS, EL etc).
const ocsd_vaddr_t getRangeEn() const
exclusive end address of decoded range (first instruction not executed / potential next instruction).
const bool isLink() const
is a link (branch with link etc)
void setDSBDMBasWP()
DSB and DMB can be treated as WP in some archs.
const ocsd_instr_type getInstrType() const
last instruction type
void clearNacc()
clear the nacc error flag
const ocsd_instr_subtype getInstrSubType() const
last instruction sub-type
OpenCSD : Component attachment point interface class.
enum _ocsd_instr_subtype ocsd_instr_subtype
enum _ocsd_instr_type ocsd_instr_type
enum _ocsd_mem_space_acc_t ocsd_mem_space_acc_t
enum _ocsd_err_t ocsd_err_t
enum _ocsd_atm_val ocsd_atm_val
OpenCSD : Standard Types used in the library interfaces.
uint8_t dsb_dmb_waypoints
ocsd_instr_subtype sub_type
ocsd_arch_profile_t pe_type
OpenCSD: Common "C" types for trace packets.