gem5 v24.0.0.0
Loading...
Searching...
No Matches
gem5::ArmInterruptPin Class Referenceabstract

Generic representation of an Arm interrupt pin. More...

#include <base_gic.hh>

Inheritance diagram for gem5::ArmInterruptPin:
gem5::Serializable gem5::ArmPPI gem5::ArmSPI gem5::ArmSigInterruptPin

Public Member Functions

void setThreadContext (ThreadContext *tc)
 Set the thread context owning this interrupt.
 
uint32_t num () const
 Get interrupt number.
 
bool active () const
 True if interrupt pin is active, false otherwise.
 
virtual void raise ()=0
 Signal an interrupt.
 
virtual void clear ()=0
 Clear a signalled interrupt.
 
void serialize (CheckpointOut &cp) const override
 Serialize an object.
 
void unserialize (CheckpointIn &cp) override
 Unserialize an object.
 
- Public Member Functions inherited from gem5::Serializable
 Serializable ()
 
virtual ~Serializable ()
 
void serializeSection (CheckpointOut &cp, const char *name) const
 Serialize an object into a new section.
 
void serializeSection (CheckpointOut &cp, const std::string &name) const
 
void unserializeSection (CheckpointIn &cp, const char *name)
 Unserialize an a child object.
 
void unserializeSection (CheckpointIn &cp, const std::string &name)
 

Protected Member Functions

 ArmInterruptPin (const ArmInterruptPinParams &p, ThreadContext *tc)
 
ContextID targetContext () const
 Get the target context ID of this interrupt.
 

Protected Attributes

const ThreadContextthreadContext
 Pointer to the thread context that owns this interrupt in case it is a thread-/CPU-private interrupt.
 
RealView *const platform
 Arm platform to use for interrupt generation.
 
const uint32_t intNum
 Interrupt number to generate.
 
const ArmInterruptType triggerType
 Interrupt triggering type.
 
bool _active
 True if interrupt pin is active, false otherwise.
 

Friends

class ArmInterruptPinGen
 

Additional Inherited Members

- Static Public Member Functions inherited from gem5::Serializable
static const std::string & currentSection ()
 Gets the fully-qualified name of the active section.
 
static void generateCheckpointOut (const std::string &cpt_dir, std::ofstream &outstream)
 Generate a checkpoint file so that the serialization can be routed to it.
 

Detailed Description

Generic representation of an Arm interrupt pin.

Definition at line 199 of file base_gic.hh.

Constructor & Destructor Documentation

◆ ArmInterruptPin()

gem5::ArmInterruptPin::ArmInterruptPin ( const ArmInterruptPinParams & p,
ThreadContext * tc )
protected

Definition at line 152 of file base_gic.cc.

Member Function Documentation

◆ active()

bool gem5::ArmInterruptPin::active ( ) const
inline

True if interrupt pin is active, false otherwise.

Definition at line 219 of file base_gic.hh.

References _active.

Referenced by gem5::Sp805::read(), gem5::Sp805::sendInt(), gem5::ArchTimer::setControl(), and gem5::ArchTimer::updateCounter().

◆ clear()

◆ num()

uint32_t gem5::ArmInterruptPin::num ( ) const
inline

Get interrupt number.

Definition at line 216 of file base_gic.hh.

References intNum.

Referenced by gem5::Gicv3CPUInterface::setThreadContext(), and gem5::Gicv3CPUInterface::virtualUpdate().

◆ raise()

◆ serialize()

void gem5::ArmInterruptPin::serialize ( CheckpointOut & cp) const
overridevirtual

Serialize an object.

Output an object's state into the current checkpoint section.

Parameters
cpCheckpoint state

Implements gem5::Serializable.

Definition at line 177 of file base_gic.cc.

References _active, and SERIALIZE_SCALAR.

◆ setThreadContext()

void gem5::ArmInterruptPin::setThreadContext ( ThreadContext * tc)

Set the thread context owning this interrupt.

This method is used to set the thread context for interrupts that are thread/CPU-specific. Only devices that are used in such a context are expected to call this method.

Definition at line 160 of file base_gic.cc.

References panic_if, and threadContext.

◆ targetContext()

ContextID gem5::ArmInterruptPin::targetContext ( ) const
protected

Get the target context ID of this interrupt.

Precondition
setThreadContext() must have been called prior to calling this method.

Definition at line 169 of file base_gic.cc.

References gem5::ThreadContext::contextId(), panic_if, and threadContext.

Referenced by gem5::ArmPPI::clear(), and gem5::ArmPPI::raise().

◆ unserialize()

void gem5::ArmInterruptPin::unserialize ( CheckpointIn & cp)
overridevirtual

Unserialize an object.

Read an object's state from the current checkpoint section.

Parameters
cpCheckpoint state

Implements gem5::Serializable.

Definition at line 183 of file base_gic.cc.

References _active, and UNSERIALIZE_SCALAR.

Friends And Related Symbol Documentation

◆ ArmInterruptPinGen

friend class ArmInterruptPinGen
friend

Definition at line 201 of file base_gic.hh.

Member Data Documentation

◆ _active

bool gem5::ArmInterruptPin::_active
protected

◆ intNum

const uint32_t gem5::ArmInterruptPin::intNum
protected

Interrupt number to generate.

Definition at line 249 of file base_gic.hh.

Referenced by gem5::ArmPPI::clear(), gem5::ArmSPI::clear(), num(), gem5::ArmPPI::raise(), and gem5::ArmSPI::raise().

◆ platform

RealView* const gem5::ArmInterruptPin::platform
protected

Arm platform to use for interrupt generation.

Definition at line 246 of file base_gic.hh.

Referenced by gem5::ArmPPI::ArmPPI(), gem5::ArmSPI::ArmSPI(), gem5::ArmPPI::clear(), gem5::ArmSPI::clear(), gem5::ArmPPI::raise(), and gem5::ArmSPI::raise().

◆ threadContext

const ThreadContext* gem5::ArmInterruptPin::threadContext
protected

Pointer to the thread context that owns this interrupt in case it is a thread-/CPU-private interrupt.

Definition at line 243 of file base_gic.hh.

Referenced by setThreadContext(), and targetContext().

◆ triggerType

const ArmInterruptType gem5::ArmInterruptPin::triggerType
protected

Interrupt triggering type.

Definition at line 252 of file base_gic.hh.


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

Generated on Tue Jun 18 2024 16:24:09 for gem5 by doxygen 1.11.0