Go to the documentation of this file.
41 #ifndef __DEV_ARM_GICV3_DISTRIBUTOR_H__
42 #define __DEV_ARM_GICV3_DISTRIBUTOR_H__
139 static const uint32_t GICD_CTLR_ENABLEGRP0 = 1 << 0;
196 panic(
"Gicv3Distributor::groupEnabled(): "
209 panic(
"Gicv3Distributor::groupEnabled(): "
268 bool is_secure_access);
271 #endif //__DEV_ARM_GICV3_DISTRIBUTOR_H__
void unserialize(CheckpointIn &cp) override
Unserialize an object.
bool isNotSPI(uint32_t int_id) const
static const AddrRange GICD_ICFGR
static const AddrRange GICD_IPRIORITYR
std::vector< bool > irqEnabled
EndBitUnion(IROUTER) static const uint32_t GICD_CTLR_ENABLEGRP0
Basic support for object serialization.
static const uint32_t GICD_CTLR_DS
Gicv3Distributor(Gicv3 *gic, uint32_t it_lines)
static const AddrRange GICD_ICACTIVER
void serialize(CheckpointOut &cp) const override
Serialize an object.
Gicv3CPUInterface * route(uint32_t int_id)
static const AddrRange GICD_NSACR
Gicv3::IntStatus intStatus(uint32_t int_id) const
Gicv3::GroupId getIntGroup(int int_id) const
void clearInt(uint32_t int_id)
std::vector< bool > irqActive
static const uint32_t GICD_CTLR_ENABLEGRP1S
static const AddrRange GICD_IGRPMODR
static const AddrRange GICD_ICPENDR
std::vector< Gicv3::IntTriggerType > irqConfig
static const uint32_t GICD_CTLR_ENABLEGRP1NS
static const AddrRange GICD_SPENDSGIR
static const uint32_t GICD_CTLR_ENABLEGRP1A
std::vector< uint8_t > irqGroup
The AddrRange class encapsulates an address range, and supports a number of tests to check if two ran...
std::vector< bool > irqPendingIspendr
bool groupEnabled(Gicv3::GroupId group) const
static const AddrRange GICD_IROUTER
void deactivateIRQ(uint32_t int_id)
uint64_t read(Addr addr, size_t size, bool is_secure_access)
Bitfield< 30, 24 > res0_2
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
std::vector< uint8_t > irqGrpmod
bool treatAsEdgeTriggered(uint32_t int_id) const
This helper is used to check if an interrupt should be treated as edge triggered in the following sce...
static const uint32_t GICD_CTLR_ENABLEGRP1
static const AddrRange GICD_ICENABLER
Overload hash function for BasicBlockRange type.
static const AddrRange GICD_ITARGETSR
std::vector< uint8_t > irqPriority
void deassertSPI(uint32_t int_id)
bool nsAccessToSecInt(uint32_t int_id, bool is_secure_access) const
std::vector< uint8_t > irqNsacr
std::vector< IROUTER > irqAffinityRouting
static const AddrRange GICD_ISENABLER
std::ostream CheckpointOut
bool isLevelSensitive(uint32_t int_id) const
BitUnion64(IROUTER) Bitfield< 63
static const AddrRange GICD_ISPENDR
static const AddrRange GICD_CPENDSGIR
std::vector< bool > irqPending
void clearIrqCpuInterface(uint32_t int_id)
void write(Addr addr, uint64_t data, size_t size, bool is_secure_access)
void sendInt(uint32_t int_id)
static const AddrRange GICD_IGROUPR
static const uint32_t IDBITS
static const uint32_t ADDR_RANGE_SIZE
#define panic(...)
This implements a cprintf based panic() function.
static const AddrRange GICD_ISACTIVER
void activateIRQ(uint32_t int_id)
Generated on Wed Sep 30 2020 14:02:10 for gem5 by doxygen 1.8.17