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:

- /build/libopencsd-nipXOR/libopencsd-1.2.0/decoder/include/common/ocsd_code_follower.h