#include <gic.hh>
|
| KvmKernelGicV3 (KvmVM &vm, const MuxingKvmGicV3Params ¶ms) |
| Instantiate a KVM in-kernel GICv3 model.
|
|
void | init () override |
|
uint32_t | readDistributor (Addr daddr) override |
|
uint32_t | readRedistributor (const ArmISA::Affinity &aff, Addr daddr) override |
|
RegVal | readCpu (const ArmISA::Affinity &aff, ArmISA::MiscRegIndex misc_reg) override |
|
void | writeDistributor (Addr daddr, uint32_t data) override |
|
void | writeRedistributor (const ArmISA::Affinity &aff, Addr daddr, uint32_t data) override |
|
void | writeCpu (const ArmISA::Affinity &aff, ArmISA::MiscRegIndex misc_reg, RegVal data) override |
|
| KvmKernelGic (KvmVM &vm, uint32_t dev, unsigned it_lines) |
| Instantiate a KVM in-kernel GIC model.
|
|
virtual | ~KvmKernelGic () |
|
| KvmKernelGic (const KvmKernelGic &other)=delete |
|
| KvmKernelGic (const KvmKernelGic &&other)=delete |
|
KvmKernelGic & | operator= (const KvmKernelGic &&rhs)=delete |
|
KvmKernelGic & | operator= (const KvmKernelGic &rhs)=delete |
|
void | setSPI (unsigned spi) |
| Raise a shared peripheral interrupt.
|
|
void | clearSPI (unsigned spi) |
| Clear a shared peripheral interrupt.
|
|
void | setPPI (unsigned vcpu, unsigned ppi) |
| Raise a private peripheral interrupt.
|
|
void | clearPPI (unsigned vcpu, unsigned ppi) |
| Clear a private peripheral interrupt.
|
|
|
template<typename Ret > |
Ret | getGicReg (unsigned group, unsigned mpidr, unsigned offset) |
| Get value of GIC register "from" a cpu.
|
|
template<typename Arg > |
void | setGicReg (unsigned group, unsigned mpidr, unsigned offset, Arg value) |
| Set value of GIC register "from" a cpu.
|
|
void | setIntState (unsigned type, unsigned vcpu, unsigned irq, bool high) |
| Update the kernel's VGIC interrupt state.
|
|
|
static void | copyDistRegister (Gicv3Registers *from, Gicv3Registers *to, Addr daddr) |
|
static void | copyRedistRegister (Gicv3Registers *from, Gicv3Registers *to, const ArmISA::Affinity &aff, Addr daddr) |
|
static void | copyCpuRegister (Gicv3Registers *from, Gicv3Registers *to, const ArmISA::Affinity &aff, ArmISA::MiscRegIndex misc_reg) |
|
static void | clearRedistRegister (Gicv3Registers *to, const ArmISA::Affinity &aff, Addr daddr) |
|
static void | copyRedistRange (Gicv3Registers *from, Gicv3Registers *to, const ArmISA::Affinity &aff, Addr daddr, size_t size) |
|
static void | copyDistRange (Gicv3Registers *from, Gicv3Registers *to, Addr daddr, size_t size) |
|
static void | clearDistRange (Gicv3Registers *to, Addr daddr, size_t size) |
|
KvmVM & | vm |
| KVM VM in the parent system.
|
|
KvmDevice | kdev |
| Kernel interface to the GIC.
|
|
Definition at line 191 of file gic.hh.
◆ KvmKernelGicV3()
gem5::KvmKernelGicV3::KvmKernelGicV3 |
( |
KvmVM & |
vm, |
|
|
const MuxingKvmGicV3Params & |
params |
|
) |
| |
◆ getGicReg()
template<typename Ret >
Ret gem5::KvmKernelGicV3::getGicReg |
( |
unsigned |
group, |
|
|
unsigned |
mpidr, |
|
|
unsigned |
offset |
|
) |
| |
|
protected |
◆ init()
void gem5::KvmKernelGicV3::init |
( |
| ) |
|
|
overridevirtual |
◆ readCpu()
◆ readDistributor()
uint32_t gem5::KvmKernelGicV3::readDistributor |
( |
Addr |
daddr | ) |
|
|
overridevirtual |
◆ readRedistributor()
uint32_t gem5::KvmKernelGicV3::readRedistributor |
( |
const ArmISA::Affinity & |
aff, |
|
|
Addr |
daddr |
|
) |
| |
|
overridevirtual |
◆ setGicReg()
template<typename Arg >
void gem5::KvmKernelGicV3::setGicReg |
( |
unsigned |
group, |
|
|
unsigned |
mpidr, |
|
|
unsigned |
offset, |
|
|
Arg |
value |
|
) |
| |
|
protected |
◆ writeCpu()
◆ writeDistributor()
void gem5::KvmKernelGicV3::writeDistributor |
( |
Addr |
daddr, |
|
|
uint32_t |
data |
|
) |
| |
|
overridevirtual |
◆ writeRedistributor()
void gem5::KvmKernelGicV3::writeRedistributor |
( |
const ArmISA::Affinity & |
aff, |
|
|
Addr |
daddr, |
|
|
uint32_t |
data |
|
) |
| |
|
overridevirtual |
◆ distRange
const AddrRange gem5::KvmKernelGicV3::distRange |
|
private |
Address range for the distributor.
Definition at line 248 of file gic.hh.
◆ redistRange
const AddrRange gem5::KvmKernelGicV3::redistRange |
|
private |
Address range for the redistributor.
Definition at line 246 of file gic.hh.
The documentation for this class was generated from the following files: