40 #ifndef __ARCH_ARM_KVM_ARM_CPU_HH__
41 #define __ARCH_ARM_KVM_ARM_CPU_HH__
47 #include "params/ArmKvmCPU.hh"
133 bool getRegList(
struct kvm_reg_list ®s)
const;
170 #endif // __ARCH_ARM_KVM_ARM_CPU_HH__
void kvmArmVCpuInit(uint32_t target)
ArmISA::MiscRegIndex decodeVFPCtrlReg(uint64_t id) const
Tick onKvmExitHypercall()
void updateKvmStateVFP(uint64_t id, bool show_warnings)
void dumpKvmStateVFP(uint64_t id)
std::vector< uint64_t > RegIndexVector
void updateKvmStateCore()
void updateKvmState()
Update the KVM state from the current thread context.
bool irqAsserted
Cached state of the IRQ line.
Base class for KVM based CPU models.
void dumpKvmStateCoProc(uint64_t id)
const char * name
Name in debug output.
static KvmCoreMiscRegInfo kvmCoreMiscRegs[]
static KvmIntRegInfo kvmIntRegs[]
const RegIndexVector & getRegList() const
Get a list of registers supported by getOneReg() and setOneReg().
const MiscRegIndex idx
gem5 index
const IntRegIndex idx
gem5 index
uint64_t Tick
Tick count type.
Tick kvmRun(Tick ticks)
Request KVM to run the guest for a given number of ticks.
void updateThreadContext()
Update the current thread context with the KVM state.
static const std::set< uint64_t > invariant_regs
List of co-processor registers that KVM requires to be identical on both the host and the guest...
void updateTCStateVFP(uint64_t id, bool show_warnings)
void updateKvmStateCoProc(uint64_t id, bool show_warnings)
const char * name
Name in debug output.
ArmKvmCPU(ArmKvmCPUParams *params)
bool fiqAsserted
Cached state of the FIQ line.
void updateKvmStateMisc()
RegIndexVector _regIndexList
Cached copy of the list of co-processor registers supported by KVM.
ARM implementation of a KVM-based hardware virtualized CPU.
void updateTCStateCoProc(uint64_t id, bool show_warnings)
bool isInvariantReg(uint64_t id)
Determine if a register is invariant.
ArmISA::MiscRegIndex decodeCoProcReg(uint64_t id) const