gem5  v20.1.0.0
Public Member Functions | Static Public Member Functions | Protected Member Functions | Private Attributes | List of all members
ArmISA::SelfDebug Class Reference

#include <self_debug.hh>

Public Member Functions

 SelfDebug ()
 
 ~SelfDebug ()
 
Fault testDebug (ThreadContext *tc, const RequestPtr &req, BaseTLB::Mode mode)
 
Fault testVectorCatch (ThreadContext *tc, Addr addr, ArmFault *flt)
 
bool enabled () const
 
BrkPointgetBrkPoint (uint8_t index)
 
bool isDebugEnabledForEL64 (ThreadContext *tc, ExceptionLevel el, bool secure, bool mask)
 
bool isDebugEnabledForEL32 (ThreadContext *tc, ExceptionLevel el, bool secure, bool mask)
 
void activateDebug ()
 
bool isDebugEnabled (ThreadContext *tc)
 
void setbSDD (RegVal val)
 
void setMDSCRvals (RegVal val)
 
void setMDBGen (RegVal val)
 
void setenableTDETGE (HCR hcr, HDCR mdcr)
 
void updateOSLock (RegVal val)
 
void updateDBGBCR (int index, DBGBCR val)
 
void updateDBGWCR (int index, DBGWCR val)
 
void setDebugMask (bool mask)
 
bool isAArch32 () const
 
void setAArch32 (ThreadContext *tc)
 
SoftwareStepgetSstep ()
 
VectorCatchgetVectorCatch (ThreadContext *tc)
 
bool targetAArch32 (ThreadContext *tc)
 
void init (ThreadContext *tc)
 

Static Public Member Functions

static bool securityStateMatch (ThreadContext *tc, uint8_t ssc, bool hmc)
 

Protected Member Functions

Fault testBreakPoints (ThreadContext *tc, Addr vaddr)
 
Fault testWatchPoints (ThreadContext *tc, Addr vaddr, bool write, bool atomic, unsigned size, bool cm)
 
Fault triggerException (ThreadContext *tc, Addr vaddr)
 
Fault triggerWatchpointException (ThreadContext *tc, Addr vaddr, bool write, bool cm)
 

Private Attributes

std::vector< BrkPointarBrkPoints
 
std::vector< WatchPointarWatchPoints
 
SoftwareStepsoftStep
 
VectorCatchvcExcpt
 
bool initialized
 
bool enableTdeTge
 
bool mde
 
bool sdd
 
bool kde
 
bool oslk
 
bool aarch32
 
bool to32
 

Detailed Description

Definition at line 273 of file self_debug.hh.

Constructor & Destructor Documentation

◆ SelfDebug()

ArmISA::SelfDebug::SelfDebug ( )
inline

Definition at line 293 of file self_debug.hh.

References softStep.

◆ ~SelfDebug()

ArmISA::SelfDebug::~SelfDebug ( )
inline

Definition at line 300 of file self_debug.hh.

References softStep, and vcExcpt.

Member Function Documentation

◆ activateDebug()

void ArmISA::SelfDebug::activateDebug ( )
inline

Definition at line 351 of file self_debug.hh.

References arBrkPoints, and MipsISA::p.

◆ enabled()

bool ArmISA::SelfDebug::enabled ( ) const
inline

Definition at line 320 of file self_debug.hh.

References ArmISA::SoftwareStep::bSS, mde, and softStep.

◆ getBrkPoint()

BrkPoint* ArmISA::SelfDebug::getBrkPoint ( uint8_t  index)
inline

Definition at line 323 of file self_debug.hh.

References arBrkPoints, and MipsISA::index.

◆ getSstep()

SoftwareStep* ArmISA::SelfDebug::getSstep ( )
inline

Definition at line 440 of file self_debug.hh.

References softStep.

◆ getVectorCatch()

VectorCatch* ArmISA::SelfDebug::getVectorCatch ( ThreadContext tc)
inline

Definition at line 446 of file self_debug.hh.

References init(), initialized, and vcExcpt.

◆ init()

void SelfDebug::init ( ThreadContext tc)

◆ isAArch32()

bool ArmISA::SelfDebug::isAArch32 ( ) const
inline

Definition at line 423 of file self_debug.hh.

References aarch32.

◆ isDebugEnabled()

bool ArmISA::SelfDebug::isDebugEnabled ( ThreadContext tc)
inline

◆ isDebugEnabledForEL32()

bool SelfDebug::isDebugEnabledForEL32 ( ThreadContext tc,
ExceptionLevel  el,
bool  secure,
bool  mask 
)

◆ isDebugEnabledForEL64()

bool SelfDebug::isDebugEnabledForEL64 ( ThreadContext tc,
ExceptionLevel  el,
bool  secure,
bool  mask 
)

◆ securityStateMatch()

static bool ArmISA::SelfDebug::securityStateMatch ( ThreadContext tc,
uint8_t  ssc,
bool  hmc 
)
inlinestatic

◆ setAArch32()

void ArmISA::SelfDebug::setAArch32 ( ThreadContext tc)
inline

Definition at line 429 of file self_debug.hh.

References aarch32, ArmISA::currEL(), ArmISA::EL0, ArmISA::EL1, and ArmISA::ELIs32().

◆ setbSDD()

void ArmISA::SelfDebug::setbSDD ( RegVal  val)
inline

Definition at line 373 of file self_debug.hh.

References bits(), sdd, and X86ISA::val.

Referenced by ArmISA::ISA::setMiscReg().

◆ setDebugMask()

void ArmISA::SelfDebug::setDebugMask ( bool  mask)
inline

Definition at line 417 of file self_debug.hh.

References ArmISA::SoftwareStep::cpsrD, ArmISA::mask, and softStep.

Referenced by ArmISA::ISA::setMiscReg().

◆ setenableTDETGE()

void ArmISA::SelfDebug::setenableTDETGE ( HCR  hcr,
HDCR  mdcr 
)
inline

Definition at line 393 of file self_debug.hh.

References enableTdeTge.

Referenced by ArmISA::ISA::setMiscReg().

◆ setMDBGen()

void ArmISA::SelfDebug::setMDBGen ( RegVal  val)
inline

Definition at line 387 of file self_debug.hh.

References bits(), mde, and X86ISA::val.

Referenced by ArmISA::ISA::setMiscReg().

◆ setMDSCRvals()

void ArmISA::SelfDebug::setMDSCRvals ( RegVal  val)
inline

Definition at line 379 of file self_debug.hh.

References bits(), ArmISA::SoftwareStep::bSS, kde, mde, softStep, and X86ISA::val.

Referenced by ArmISA::ISA::setMiscReg().

◆ targetAArch32()

bool ArmISA::SelfDebug::targetAArch32 ( ThreadContext tc)
inline

◆ testBreakPoints()

Fault SelfDebug::testBreakPoints ( ThreadContext tc,
Addr  vaddr 
)
protected

◆ testDebug()

Fault SelfDebug::testDebug ( ThreadContext tc,
const RequestPtr req,
BaseTLB::Mode  mode 
)

Definition at line 48 of file self_debug.cc.

References BaseTLB::Execute, ArmISA::md, ArmISA::mode, NoFault, and BaseTLB::Write.

◆ testVectorCatch()

Fault SelfDebug::testVectorCatch ( ThreadContext tc,
Addr  addr,
ArmFault flt 
)

◆ testWatchPoints()

Fault SelfDebug::testWatchPoints ( ThreadContext tc,
Addr  vaddr,
bool  write,
bool  atomic,
unsigned  size,
bool  cm 
)
protected

◆ triggerException()

Fault SelfDebug::triggerException ( ThreadContext tc,
Addr  vaddr 
)
protected

◆ triggerWatchpointException()

Fault SelfDebug::triggerWatchpointException ( ThreadContext tc,
Addr  vaddr,
bool  write,
bool  cm 
)
protected

◆ updateDBGBCR()

void ArmISA::SelfDebug::updateDBGBCR ( int  index,
DBGBCR  val 
)
inline

Definition at line 405 of file self_debug.hh.

References arBrkPoints, MipsISA::index, and X86ISA::val.

Referenced by ArmISA::ISA::setMiscReg().

◆ updateDBGWCR()

void ArmISA::SelfDebug::updateDBGWCR ( int  index,
DBGWCR  val 
)
inline

Definition at line 411 of file self_debug.hh.

References arWatchPoints, MipsISA::index, and X86ISA::val.

Referenced by ArmISA::ISA::setMiscReg().

◆ updateOSLock()

void ArmISA::SelfDebug::updateOSLock ( RegVal  val)
inline

Definition at line 399 of file self_debug.hh.

References bits(), oslk, and X86ISA::val.

Referenced by ArmISA::ISA::setMiscReg().

Member Data Documentation

◆ aarch32

bool ArmISA::SelfDebug::aarch32
private

Definition at line 289 of file self_debug.hh.

Referenced by isAArch32(), isDebugEnabled(), setAArch32(), and targetAArch32().

◆ arBrkPoints

std::vector<BrkPoint> ArmISA::SelfDebug::arBrkPoints
private

Definition at line 276 of file self_debug.hh.

Referenced by activateDebug(), getBrkPoint(), and updateDBGBCR().

◆ arWatchPoints

std::vector<WatchPoint> ArmISA::SelfDebug::arWatchPoints
private

Definition at line 277 of file self_debug.hh.

Referenced by updateDBGWCR().

◆ enableTdeTge

bool ArmISA::SelfDebug::enableTdeTge
private

Definition at line 282 of file self_debug.hh.

Referenced by setenableTDETGE().

◆ initialized

bool ArmISA::SelfDebug::initialized
private

Definition at line 281 of file self_debug.hh.

Referenced by getVectorCatch().

◆ kde

bool ArmISA::SelfDebug::kde
private

Definition at line 286 of file self_debug.hh.

Referenced by setMDSCRvals().

◆ mde

bool ArmISA::SelfDebug::mde
private

Definition at line 284 of file self_debug.hh.

Referenced by enabled(), setMDBGen(), and setMDSCRvals().

◆ oslk

bool ArmISA::SelfDebug::oslk
private

Definition at line 287 of file self_debug.hh.

Referenced by updateOSLock().

◆ sdd

bool ArmISA::SelfDebug::sdd
private

Definition at line 285 of file self_debug.hh.

Referenced by setbSDD().

◆ softStep

SoftwareStep* ArmISA::SelfDebug::softStep
private

Definition at line 278 of file self_debug.hh.

Referenced by enabled(), getSstep(), SelfDebug(), setDebugMask(), setMDSCRvals(), and ~SelfDebug().

◆ to32

bool ArmISA::SelfDebug::to32
private

Definition at line 290 of file self_debug.hh.

◆ vcExcpt

VectorCatch* ArmISA::SelfDebug::vcExcpt
private

Definition at line 279 of file self_debug.hh.

Referenced by getVectorCatch(), and ~SelfDebug().


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

Generated on Wed Sep 30 2020 14:02:37 for gem5 by doxygen 1.8.17