gem5  v20.1.0.0
Public Member Functions | Protected Member Functions | Protected Attributes | Friends | List of all members
ArmInterruptPin Class Referenceabstract

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

#include <base_gic.hh>

Inheritance diagram for ArmInterruptPin:
Serializable ArmPPI ArmSPI

Public Member Functions

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

Protected Member Functions

 ArmInterruptPin (Platform *platform, ThreadContext *tc, uint32_t int_num)
 
ContextID targetContext () const
 Get the target context ID of this interrupt. More...
 

Protected Attributes

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

Friends

class ArmInterruptPinGen
 

Additional Inherited Members

- Static Public Member Functions inherited from Serializable
static const std::string & currentSection ()
 Gets the fully-qualified name of the active section. More...
 
static void serializeAll (const std::string &cpt_dir)
 Serializes all the SimObjects. More...
 
static void unserializeGlobals (CheckpointIn &cp)
 

Detailed Description

Generic representation of an Arm interrupt pin.

Definition at line 176 of file base_gic.hh.

Constructor & Destructor Documentation

◆ ArmInterruptPin()

ArmInterruptPin::ArmInterruptPin ( Platform platform,
ThreadContext tc,
uint32_t  int_num 
)
protected

Definition at line 121 of file base_gic.cc.

References fatal_if, and platform.

Member Function Documentation

◆ active()

bool ArmInterruptPin::active ( ) const
inline

True if interrupt pin is active, false otherwise.

Definition at line 197 of file base_gic.hh.

References _active.

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

◆ clear()

virtual void ArmInterruptPin::clear ( )
pure virtual

◆ num()

uint32_t ArmInterruptPin::num ( ) const
inline

Get interrupt number.

Definition at line 194 of file base_gic.hh.

References intNum.

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

◆ raise()

virtual void ArmInterruptPin::raise ( )
pure virtual

◆ serialize()

void ArmInterruptPin::serialize ( CheckpointOut cp) const
overridevirtual

Serialize an object.

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

Parameters
cpCheckpoint state

Implements Serializable.

Definition at line 147 of file base_gic.cc.

References _active, and SERIALIZE_SCALAR.

◆ setThreadContext()

void 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 130 of file base_gic.cc.

References panic_if, and threadContext.

◆ targetContext()

ContextID 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 139 of file base_gic.cc.

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

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

◆ unserialize()

void ArmInterruptPin::unserialize ( CheckpointIn cp)
overridevirtual

Unserialize an object.

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

Parameters
cpCheckpoint state

Implements Serializable.

Definition at line 153 of file base_gic.cc.

References _active, and UNSERIALIZE_SCALAR.

Friends And Related Function Documentation

◆ ArmInterruptPinGen

friend class ArmInterruptPinGen
friend

Definition at line 178 of file base_gic.hh.

Member Data Documentation

◆ _active

bool ArmInterruptPin::_active
protected

True if interrupt pin is active, false otherwise.

Definition at line 230 of file base_gic.hh.

Referenced by active(), ArmSPI::clear(), ArmPPI::clear(), ArmSPI::raise(), ArmPPI::raise(), serialize(), and unserialize().

◆ intNum

const uint32_t ArmInterruptPin::intNum
protected

Interrupt number to generate.

Definition at line 227 of file base_gic.hh.

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

◆ platform

RealView* const ArmInterruptPin::platform
protected

Arm platform to use for interrupt generation.

Definition at line 224 of file base_gic.hh.

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

◆ threadContext

const ThreadContext* ArmInterruptPin::threadContext
protected

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

Definition at line 221 of file base_gic.hh.

Referenced by setThreadContext(), and targetContext().


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

Generated on Wed Sep 30 2020 14:02:20 for gem5 by doxygen 1.8.17