gem5 [DEVELOP-FOR-25.0]
Loading...
Searching...
No Matches
gem5::MuxingKvmGic< Types > Class Template Reference

#include <gic.hh>

Inheritance diagram for gem5::MuxingKvmGic< Types >:

Public Member Functions

 MuxingKvmGic (const Params &p)
 
void startup () override
 
DrainState drain () override
 
void drainResume () override
 
Tick read (PacketPtr pkt) override
 
Tick write (PacketPtr pkt) override
 
void sendInt (uint32_t num) override
 
void clearInt (uint32_t num) override
 
void sendPPInt (uint32_t num, uint32_t cpu) override
 
void clearPPInt (uint32_t num, uint32_t cpu) override
 

Protected Member Functions

bool blockIntUpdate () const override
 

Protected Attributes

Systemsystem
 System this interrupt controller belongs to.
 
KvmKernelGickernelGic
 Kernel GIC device.
 

Private Types

using SimGic = typename Types::SimGic
 
using KvmGic = typename Types::KvmGic
 
using Params = typename Types::Params
 

Private Member Functions

void fromGicToKvm ()
 Multiplexing implementation.
 
void fromKvmToGic ()
 

Private Attributes

bool usingKvm
 

Detailed Description

template<class Types>
class gem5::MuxingKvmGic< Types >

Definition at line 268 of file gic.hh.

Member Typedef Documentation

◆ KvmGic

template<class Types>
using gem5::MuxingKvmGic< Types >::KvmGic = typename Types::KvmGic
private

Definition at line 271 of file gic.hh.

◆ Params

template<class Types>
using gem5::MuxingKvmGic< Types >::Params = typename Types::Params
private

Definition at line 272 of file gic.hh.

◆ SimGic

template<class Types>
using gem5::MuxingKvmGic< Types >::SimGic = typename Types::SimGic
private

Definition at line 270 of file gic.hh.

Constructor & Destructor Documentation

◆ MuxingKvmGic()

template<class Types>
gem5::MuxingKvmGic< Types >::MuxingKvmGic ( const Params & p)

Definition at line 288 of file gic.cc.

References kernelGic, gem5::MipsISA::p, system, usingKvm, and gem5::ArmISA::vm.

Member Function Documentation

◆ blockIntUpdate()

template<class Types>
bool gem5::MuxingKvmGic< Types >::blockIntUpdate ( ) const
overrideprotected

Definition at line 409 of file gic.cc.

References usingKvm.

◆ clearInt()

template<class Types>
void gem5::MuxingKvmGic< Types >::clearInt ( uint32_t num)
override

Definition at line 377 of file gic.cc.

References DPRINTF, kernelGic, and usingKvm.

◆ clearPPInt()

template<class Types>
void gem5::MuxingKvmGic< Types >::clearPPInt ( uint32_t num,
uint32_t cpu )
override

Definition at line 398 of file gic.cc.

References DPRINTF, kernelGic, and usingKvm.

◆ drain()

template<class Types>
DrainState gem5::MuxingKvmGic< Types >::drain ( )
override

Definition at line 319 of file gic.cc.

References fromKvmToGic(), and usingKvm.

◆ drainResume()

template<class Types>
void gem5::MuxingKvmGic< Types >::drainResume ( )
override

Definition at line 328 of file gic.cc.

References fromGicToKvm(), kernelGic, system, usingKvm, and gem5::ArmISA::vm.

◆ fromGicToKvm()

template<class Types>
void gem5::MuxingKvmGic< Types >::fromGicToKvm ( )
private

Multiplexing implementation.

Definition at line 420 of file gic.cc.

References kernelGic.

Referenced by drainResume(), and startup().

◆ fromKvmToGic()

template<class Types>
void gem5::MuxingKvmGic< Types >::fromKvmToGic ( )
private

Definition at line 428 of file gic.cc.

References kernelGic, and system.

Referenced by drain().

◆ read()

template<class Types>
Tick gem5::MuxingKvmGic< Types >::read ( PacketPtr pkt)
override

Definition at line 346 of file gic.cc.

References panic, and usingKvm.

◆ sendInt()

template<class Types>
void gem5::MuxingKvmGic< Types >::sendInt ( uint32_t num)
override

Definition at line 366 of file gic.cc.

References DPRINTF, kernelGic, and usingKvm.

◆ sendPPInt()

template<class Types>
void gem5::MuxingKvmGic< Types >::sendPPInt ( uint32_t num,
uint32_t cpu )
override

Definition at line 388 of file gic.cc.

References DPRINTF, kernelGic, and usingKvm.

◆ startup()

template<class Types>
void gem5::MuxingKvmGic< Types >::startup ( )
override

Definition at line 302 of file gic.cc.

References fromGicToKvm(), kernelGic, system, usingKvm, and gem5::ArmISA::vm.

◆ write()

template<class Types>
Tick gem5::MuxingKvmGic< Types >::write ( PacketPtr pkt)
override

Definition at line 356 of file gic.cc.

References panic, and usingKvm.

Member Data Documentation

◆ kernelGic

template<class Types>
KvmKernelGic* gem5::MuxingKvmGic< Types >::kernelGic
protected

Kernel GIC device.

Definition at line 300 of file gic.hh.

Referenced by clearInt(), clearPPInt(), drainResume(), fromGicToKvm(), fromKvmToGic(), MuxingKvmGic(), sendInt(), sendPPInt(), and startup().

◆ system

template<class Types>
System& gem5::MuxingKvmGic< Types >::system
protected

System this interrupt controller belongs to.

Definition at line 297 of file gic.hh.

Referenced by drainResume(), fromKvmToGic(), MuxingKvmGic(), and startup().

◆ usingKvm

template<class Types>
bool gem5::MuxingKvmGic< Types >::usingKvm
private

The documentation for this class was generated from the following files:

Generated on Mon May 26 2025 09:19:23 for gem5 by doxygen 1.13.2