|
| bool | initialise () |
| |
| bool | initialiseThreaded () |
| |
| bool | shutdownThreaded () |
| |
| void | handle (InterruptState &state) |
| |
| irq_id_t | registerIsaIrqHandler (uint8_t irq, IrqHandler *handler, const IrqPolicy &policy) override |
| |
| irq_id_t | registerPciIrqHandler (IrqHandler *handler, Device *device, const IrqPolicy &policy) override |
| |
| irq_id_t | registerPciMessageIrqHandler (IrqHandler *handler, Device *device, const IrqPolicy &intxFallbackPolicy) override |
| |
| bool | registerPciMsixIrqHandlers (Device *device, IrqHandler *const *handlers, size_t count, irq_id_t *ids, bool &fallbackSafe, const size_t *processors=nullptr) override |
| |
| irq_id_t | registerHardIsaIrqHandler (uint8_t irq, HardIrqHandler *handler, const IrqPolicy &policy) override |
| |
| irq_id_t | registerHardPciIrqHandler (HardIrqHandler *handler, Device *device, const IrqPolicy &policy) override |
| |
| irq_id_t | registerHardPciMessageIrqHandler (HardIrqHandler *handler, Device *device, const IrqPolicy &intxFallbackPolicy) override |
| |
| irq_id_t | registerSchedulerIrqHandler (uint8_t irq, SchedulerIrqHandler *handler, const IrqPolicy &policy) override |
| |
| bool | unregisterSchedulerIrqHandler (irq_id_t id, SchedulerIrqHandler *handler) override |
| |
| bool | unregisterHandler (irq_id_t id, IrqHandlerBase *handler) override |
| |
| void | enable (uint8_t irq, bool enabled) override |
| |
| virtual size_t | snapshotIrqLines (IrqLineDiagnosticSnapshot *out, size_t capacity) const |
| |
| virtual void | tick () |
| |
| virtual bool | control (uint8_t irq, ControlCode code, size_t argument) |
| |
◆ VirtIrqManager()
| VirtIrqManager::VirtIrqManager |
( |
| ) |
|
|
private |
◆ acknowledge()
| uint32_t VirtIrqManager::acknowledge |
( |
| ) |
|
|
private |
◆ complete()
| void VirtIrqManager::complete |
( |
uint32_t |
acknowledgeValue | ) |
|
|
private |
◆ dispatchPciLine()
| void VirtIrqManager::dispatchPciLine |
( |
void * |
context, |
|
|
uint8_t |
line, |
|
|
size_t |
cookie |
|
) |
| |
|
staticprivate |
◆ enable()
| void VirtIrqManager::enable |
( |
uint8_t |
irq, |
|
|
bool |
enabled |
|
) |
| |
|
overridevirtual |
◆ handle()
| void VirtIrqManager::handle |
( |
InterruptState & |
state | ) |
|
◆ initialise()
| bool VirtIrqManager::initialise |
( |
| ) |
|
◆ initialiseMsi()
| bool VirtIrqManager::initialiseMsi |
( |
| ) |
|
|
private |
◆ initialiseThreaded()
| bool VirtIrqManager::initialiseThreaded |
( |
| ) |
|
◆ initialiseV2()
| bool VirtIrqManager::initialiseV2 |
( |
| ) |
|
|
private |
◆ initialiseV3()
| bool VirtIrqManager::initialiseV3 |
( |
| ) |
|
|
private |
◆ instance()
◆ pciLine()
| size_t VirtIrqManager::pciLine |
( |
uint32_t |
irq | ) |
const |
|
private |
◆ pciRegistryLine()
| uint8_t VirtIrqManager::pciRegistryLine |
( |
size_t |
slot | ) |
const |
|
private |
◆ registerHardIsaIrqHandler()
| irq_id_t VirtIrqManager::registerHardIsaIrqHandler |
( |
uint8_t |
irq, |
|
|
HardIrqHandler * |
handler, |
|
|
const IrqPolicy & |
policy |
|
) |
| |
|
overridevirtual |
◆ registerHardPciIrqHandler()
◆ registerHardPciMessageIrqHandler()
◆ registerIsaIrqHandler()
| irq_id_t VirtIrqManager::registerIsaIrqHandler |
( |
uint8_t |
irq, |
|
|
IrqHandler * |
handler, |
|
|
const IrqPolicy & |
policy |
|
) |
| |
|
overridevirtual |
Register an ISA irq
- Parameters
-
| [in] | irq | the ISA irq number (from 0 to 15) |
| [in] | handler | pointer to the IrqHandler class |
| [in] | policy | electrical, acknowledgement, and completion policy |
- Returns
- the irq's identifier
Implements IrqManager.
Definition at line 301 of file mach_virt/IrqManager.cc.
◆ registerPciHandler()
◆ registerPciIrqHandler()
◆ registerPciMessageHandler()
| irq_id_t VirtIrqManager::registerPciMessageHandler |
( |
IrqHandlerBase * |
handler, |
|
|
Device * |
device, |
|
|
bool |
hard, |
|
|
bool & |
allowFallback |
|
) |
| |
|
private |
◆ registerPciMessageIrqHandler()
| irq_id_t VirtIrqManager::registerPciMessageIrqHandler |
( |
IrqHandler * |
handler, |
|
|
Device * |
pDevice, |
|
|
const IrqPolicy & |
intxFallbackPolicy |
|
) |
| |
|
overridevirtual |
◆ registerPciMsixIrqHandlers()
| bool VirtIrqManager::registerPciMsixIrqHandlers |
( |
Device * |
device, |
|
|
IrqHandler *const * |
handlers, |
|
|
size_t |
count, |
|
|
irq_id_t * |
ids, |
|
|
bool & |
fallbackSafe, |
|
|
const size_t * |
processors = nullptr |
|
) |
| |
|
overridevirtual |
◆ registerSchedulerIrqHandler()
◆ setEdge()
| void VirtIrqManager::setEdge |
( |
uint32_t |
irq | ) |
|
|
private |
◆ setEnabled()
| bool VirtIrqManager::setEnabled |
( |
uint32_t |
irq, |
|
|
bool |
enabled |
|
) |
| |
|
private |
◆ setLevel()
| void VirtIrqManager::setLevel |
( |
uint32_t |
irq | ) |
|
|
private |
◆ shutdownThreaded()
| bool VirtIrqManager::shutdownThreaded |
( |
| ) |
|
◆ unregisterHandler()
| bool VirtIrqManager::unregisterHandler |
( |
irq_id_t |
Id, |
|
|
IrqHandlerBase * |
handler |
|
) |
| |
|
overridevirtual |
◆ unregisterSchedulerIrqHandler()
| bool VirtIrqManager::unregisterSchedulerIrqHandler |
( |
irq_id_t |
Id, |
|
|
SchedulerIrqHandler * |
handler |
|
) |
| |
|
overridevirtual |
◆ m_Hard
◆ m_Initialised
| bool VirtIrqManager::m_Initialised |
|
private |
◆ m_Instance
◆ m_IrqCount
| uint32_t VirtIrqManager::m_IrqCount |
|
private |
◆ m_Its
◆ m_MsiAddress
| uint64_t VirtIrqManager::m_MsiAddress |
|
private |
◆ m_MsiFirst
| uint32_t VirtIrqManager::m_MsiFirst |
|
private |
◆ m_MsiLast
| uint32_t VirtIrqManager::m_MsiLast |
|
private |
◆ m_MsiReady
| bool VirtIrqManager::m_MsiReady |
|
private |
◆ m_PciDispatcher
◆ m_PciHandlers
◆ m_PciLines
| PciLine VirtIrqManager::m_PciLines[MaxPciLines] |
|
private |
◆ m_PciLock
◆ m_Scheduler
◆ m_Version
| uint32_t VirtIrqManager::m_Version |
|
private |
◆ MaxIrqs
| constexpr size_t VirtIrqManager::MaxIrqs = 256 |
|
staticconstexprprivate |
◆ MaxPciLines
| constexpr size_t VirtIrqManager::MaxPciLines = 16 |
|
staticconstexprprivate |
The documentation for this class was generated from the following files: