38#ifndef __ARCH_ARM_KVM_BASE_CPU_HH__
39#define __ARCH_ARM_KVM_BASE_CPU_HH__
53struct BaseArmKvmCPUParams;
69 pc.as<ArmISA::PCState>().setNPC(
pc.instAddr());
Base class for ARM GIC implementations.
Generic representation of an Arm interrupt pin.
std::unique_ptr< kvm_reg_list > tryGetRegList(uint64_t nelem) const
std::vector< uint64_t > RegIndexVector
Tick kvmRun(Tick ticks) override
Request KVM to run the guest for a given number of ticks.
void ioctlRun() override
Override for synchronizing state in kvm_run.
bool fiqAsserted
Cached state of the FIQ line.
bool irqAsserted
Cached state of the IRQ line.
const RegIndexVector & getRegList() const
Get a list of registers supported by getOneReg() and setOneReg().
void startup() override
startup() is the final initialization call before simulation.
uint64_t prevDeviceIRQLevel
KVM records whether each in-kernel device IRQ is asserted or disasserted in the kvmRunState->s....
BaseArmKvmCPU(const BaseArmKvmCPUParams ¶ms)
void stutterPC(PCStateBase &pc) const override
Modify a PCStatePtr's value so that its next PC is the current PC.
RegIndexVector _regIndexList
Cached copy of the list of registers supported by KVM.
ArmInterruptPin * virtTimerPin
If the user-space GIC and the kernel-space timer are used simultaneously, set up this interrupt pin t...
void kvmArmVCpuInit(const kvm_vcpu_init &init)
Tell the kernel to initialize this CPU.
Base class for KVM based CPU models.
void init() override
init() is called after all C++ SimObjects have been created and all ports are connected.
const Params & params() const
Copyright (c) 2024 - Pranith Kumar Copyright (c) 2020 Inria All rights reserved.
uint64_t Tick
Tick count type.