Go to the documentation of this file.
38 #ifndef __ARCH_ARM_KVM_GIC_HH__
39 #define __ARCH_ARM_KVM_GIC_HH__
105 void setPPI(
unsigned vcpu,
unsigned ppi);
113 void clearPPI(
unsigned vcpu,
unsigned ppi);
125 uint32_t
data)
override;
169 struct MuxingKvmGicParams;
186 void sendInt(uint32_t num)
override;
187 void clearInt(uint32_t num)
override;
189 void sendPPInt(uint32_t num, uint32_t cpu)
override;
190 void clearPPInt(uint32_t num, uint32_t cpu)
override;
217 Addr daddr,
size_t size);
219 Addr daddr,
size_t size);
221 Addr daddr,
size_t size);
223 Addr daddr,
size_t size);
228 #endif // __ARCH_ARM_KVM_GIC_HH__
System & system
System this interrupt controller belongs to.
KvmKernelGicV2 & operator=(const KvmKernelGicV2 &&rhs)=delete
void fromGicV2ToKvm()
Multiplexing implementation.
MuxingKvmGic(const MuxingKvmGicParams &p)
void clearSPI(unsigned spi)
Clear a shared peripheral interrupt.
void setPPI(unsigned vcpu, unsigned ppi)
Raise a private peripheral interrupt.
void drainResume() override
Resume execution after a successful drain.
void clearPPInt(uint32_t num, uint32_t cpu) override
uint32_t getGicReg(unsigned group, unsigned vcpu, unsigned offset)
Get value of GIC register "from" a cpu.
void sendPPInt(uint32_t num, uint32_t cpu) override
Interface call for private peripheral interrupts.
void setIntState(unsigned type, unsigned vcpu, unsigned irq, bool high)
Update the kernel's VGIC interrupt state.
DrainState
Object drain/handover states.
KvmDevice kdev
Kernel interface to the GIC.
void clearDistRange(BaseGicRegisters *to, Addr daddr, size_t size)
A Packet is used to encapsulate a transfer between two objects in the memory system (e....
uint64_t Tick
Tick count type.
void writeDistributor(ContextID ctx, Addr daddr, uint32_t data) override
void setSPI(unsigned spi)
Raise a shared peripheral interrupt.
virtual ~KvmKernelGicV2()
void clearInt(uint32_t num) override
Clear an interrupt from a device that is connected to the GIC.
void setGicReg(unsigned group, unsigned vcpu, unsigned offset, unsigned value)
Set value of GIC register "from" a cpu.
uint32_t readDistributor(ContextID ctx, Addr daddr) override
BaseGicRegisters interface.
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
const AddrRange cpuRange
Address range for the CPU interfaces.
void sendInt(uint32_t num) override
Post an interrupt from a device that is connected to the GIC.
void copyDistRegister(BaseGicRegisters *from, BaseGicRegisters *to, ContextID ctx, Addr daddr)
void updateIntState(int hint) override
See if some processor interrupt flags need to be enabled/disabled.
uint32_t readCpu(ContextID ctx, Addr daddr) override
Tick read(PacketPtr pkt) override
Pure virtual function that the device must implement.
KvmKernelGicV2 * kernelGic
Kernel GIC device.
KvmVM & vm
KVM VM in the parent system.
Tick write(PacketPtr pkt) override
Pure virtual function that the device must implement.
DrainState drain() override
Draining is the process of clearing out the states of SimObjects.These are the SimObjects that are pa...
int ContextID
Globally unique thread context ID.
KvmKernelGicV2(KvmVM &vm, Addr cpu_addr, Addr dist_addr, unsigned it_lines)
Instantiate a KVM in-kernel GIC model.
void clearPPI(unsigned vcpu, unsigned ppi)
Clear a private peripheral interrupt.
The AddrRange class encapsulates an address range, and supports a number of tests to check if two ran...
void startup() override
startup() is the final initialization call before simulation.
void copyCpuRegister(BaseGicRegisters *from, BaseGicRegisters *to, ContextID ctx, Addr daddr)
Reference material can be found at the JEDEC website: UFS standard http://www.jedec....
void writeCpu(ContextID ctx, Addr daddr, uint32_t data) override
void copyBankedDistRange(BaseGicRegisters *from, BaseGicRegisters *to, Addr daddr, size_t size)
void clearBankedDistRange(BaseGicRegisters *to, Addr daddr, size_t size)
const AddrRange distRange
Address range for the distributor interface.
void copyDistRange(BaseGicRegisters *from, BaseGicRegisters *to, Addr daddr, size_t size)
KVM in-kernel GIC abstraction.
void copyGicState(BaseGicRegisters *from, BaseGicRegisters *to)
Generated on Tue Dec 21 2021 11:34:19 for gem5 by doxygen 1.8.17