gem5
v20.1.0.0
|
Base class for devices that use the MiscReg interfaces. More...
#include <isa_device.hh>
Public Member Functions | |
BaseISADevice () | |
virtual | ~BaseISADevice () |
virtual void | setISA (ISA *isa) |
virtual void | setThreadContext (ThreadContext *tc) |
virtual void | setMiscReg (int misc_reg, RegVal val)=0 |
Write to a system register belonging to this device. More... | |
virtual RegVal | readMiscReg (int misc_reg)=0 |
Read a system register belonging to this device. More... | |
Protected Attributes | |
ISA * | isa |
Base class for devices that use the MiscReg interfaces.
This class provides a well-defined interface that the ArmISA class can use when forwarding MiscReg accesses to a device model (e.g., a PMU or GIC).
Definition at line 58 of file isa_device.hh.
ArmISA::BaseISADevice::BaseISADevice | ( | ) |
Definition at line 45 of file isa_device.cc.
|
inlinevirtual |
Definition at line 62 of file isa_device.hh.
|
pure virtual |
Read a system register belonging to this device.
misc_reg | Register number (see miscregs.hh) |
Implemented in GenericTimerISA, Gicv3CPUInterface, ArmISA::PMU, and ArmISA::DummyISADevice.
Referenced by ArmISA::ISA::readMiscReg().
|
virtual |
|
pure virtual |
Write to a system register belonging to this device.
misc_reg | Register number (see miscregs.hh) |
val | Value to store |
Implemented in GenericTimerISA, Gicv3CPUInterface, ArmISA::PMU, and ArmISA::DummyISADevice.
Referenced by ArmISA::ISA::setMiscReg().
|
inlinevirtual |
Reimplemented in Gicv3CPUInterface, and ArmISA::PMU.
Definition at line 65 of file isa_device.hh.
Referenced by ArmISA::ISA::setupThreadContext().
|
protected |
Definition at line 84 of file isa_device.hh.
Referenced by Gicv3CPUInterface::bpr1(), Gicv3CPUInterface::currEL(), Gicv3CPUInterface::dropPriority(), Gicv3CPUInterface::eoiMaintenanceInterruptStatus(), Gicv3CPUInterface::getHCREL2FMO(), Gicv3CPUInterface::getHCREL2IMO(), Gicv3CPUInterface::getHPPIR1(), Gicv3CPUInterface::getHPPVILR(), Gicv3CPUInterface::groupEnabled(), Gicv3CPUInterface::groupPriorityMask(), Gicv3CPUInterface::highestActiveGroup(), Gicv3CPUInterface::highestActivePriority(), Gicv3CPUInterface::hppiCanPreempt(), Gicv3CPUInterface::hppviCanPreempt(), Gicv3CPUInterface::inSecureState(), Gicv3CPUInterface::isAA64(), Gicv3CPUInterface::isEL3OrMon(), Gicv3CPUInterface::isEOISplitMode(), Gicv3CPUInterface::isSecureBelowEL3(), Gicv3CPUInterface::maintenanceInterruptStatus(), Gicv3CPUInterface::readBankedMiscReg(), Gicv3CPUInterface::readMiscReg(), Gicv3CPUInterface::setBankedMiscReg(), setISA(), Gicv3CPUInterface::setMiscReg(), Gicv3CPUInterface::virtualActivateIRQ(), Gicv3CPUInterface::virtualDeactivateIRQ(), Gicv3CPUInterface::virtualDropPriority(), Gicv3CPUInterface::virtualFindActive(), Gicv3CPUInterface::virtualGroupPriorityMask(), Gicv3CPUInterface::virtualHighestActivePriority(), Gicv3CPUInterface::virtualIncrementEOICount(), Gicv3CPUInterface::virtualIsEOISplitMode(), and Gicv3CPUInterface::virtualUpdate().