gem5  v20.1.0.0
Public Member Functions | Protected Member Functions | List of all members
ItsTranslation Class Reference

An ItsTranslation is created whenever a peripheral writes a message in GITS_TRANSLATER (MSI). More...

#include <gic_v3_its.hh>

Inheritance diagram for ItsTranslation:
ItsProcess Packet::SenderState

Public Member Functions

 ItsTranslation (Gicv3Its &_its)
 
 ~ItsTranslation ()
 
- Public Member Functions inherited from ItsProcess
 ItsProcess (Gicv3Its &_its)
 
virtual ~ItsProcess ()
 
const std::string name () const
 Returns the Gicv3Its name. More...
 
ItsAction run (PacketPtr pkt)
 
- Public Member Functions inherited from Packet::SenderState
 SenderState ()
 
virtual ~SenderState ()
 

Protected Member Functions

void main (Yield &yield) override
 
std::pair< uint32_t, Gicv3Redistributor * > translateLPI (Yield &yield, uint32_t device_id, uint32_t event_id)
 
- Protected Member Functions inherited from ItsProcess
void reinit ()
 
void writeDeviceTable (Yield &yield, uint32_t device_id, DTE dte)
 
void writeIrqTranslationTable (Yield &yield, const Addr itt_base, uint32_t event_id, ITTE itte)
 
void writeIrqCollectionTable (Yield &yield, uint32_t collection_id, CTE cte)
 
uint64_t readDeviceTable (Yield &yield, uint32_t device_id)
 
uint64_t readIrqTranslationTable (Yield &yield, const Addr itt_base, uint32_t event_id)
 
uint64_t readIrqCollectionTable (Yield &yield, uint32_t collection_id)
 
void doRead (Yield &yield, Addr addr, void *ptr, size_t size)
 
void doWrite (Yield &yield, Addr addr, void *ptr, size_t size)
 
void terminate (Yield &yield)
 

Additional Inherited Members

- Public Types inherited from ItsProcess
using DTE = Gicv3Its::DTE
 
using ITTE = Gicv3Its::ITTE
 
using CTE = Gicv3Its::CTE
 
using Coroutine = m5::Coroutine< PacketPtr, ItsAction >
 
using Yield = Coroutine::CallerType
 
- Public Attributes inherited from Packet::SenderState
SenderStatepredecessor
 
- Protected Attributes inherited from ItsProcess
Gicv3Itsits
 

Detailed Description

An ItsTranslation is created whenever a peripheral writes a message in GITS_TRANSLATER (MSI).

In this case main will simply do the table walks until it gets a redistributor and an INTID. It will then raise the LPI interrupt to the target redistributor.

Definition at line 399 of file gic_v3_its.hh.

Constructor & Destructor Documentation

◆ ItsTranslation()

ItsTranslation::ItsTranslation ( Gicv3Its _its)

◆ ~ItsTranslation()

ItsTranslation::~ItsTranslation ( )

Member Function Documentation

◆ main()

void ItsTranslation::main ( Yield yield)
overrideprotectedvirtual

◆ translateLPI()

std::pair< uint32_t, Gicv3Redistributor * > ItsTranslation::translateLPI ( Yield yield,
uint32_t  device_id,
uint32_t  event_id 
)
protected

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

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