|
FreeNOS
|
Raspberry Pi Interrupt Controller implementation. More...
#include <BroadcomInterrupt.h>
Public Member Functions | |
| BroadcomInterrupt () | |
| Constructor. More... | |
| virtual Result | enable (uint vector) |
| Enable an IRQ vector. More... | |
| virtual Result | disable (uint vector) |
| Disable an IRQ vector. More... | |
| virtual Result | clear (uint vector) |
| Clear an IRQ vector. More... | |
| virtual Result | nextPending (uint &irq) |
| Retrieve the next pending interrupt (IRQ). More... | |
| virtual bool | isTriggered (uint vector) |
| Check if an IRQ vector is set. More... | |
Public Member Functions inherited from IntController | |
| IntController () | |
| Constructor. More... | |
| uint | getBase () const |
| Get interrupt number base offset. More... | |
| virtual Result | send (const uint targetCoreId, const uint irq) |
| Send an inter-processor-interrupt (IPI). More... | |
Private Attributes | |
| ARMIO | m_io |
| I/O instance. More... | |
Additional Inherited Members | |
Public Types inherited from IntController | |
| enum | Result { Success, InvalidIRQ, InvalidFrequency, IOError, NotFound } |
| Result codes. More... | |
Protected Attributes inherited from IntController | |
| uint | m_base |
| Interrupt number base offset. More... | |
Raspberry Pi Interrupt Controller implementation.
Definition at line 45 of file BroadcomInterrupt.h.
| BroadcomInterrupt::BroadcomInterrupt | ( | ) |
Constructor.
Definition at line 37 of file BroadcomInterrupt.cpp.
References INTERRUPT_DISABLEIRQ1, INTERRUPT_DISABLEIRQ2, m_io, and ARMIO::write().
|
virtual |
Clear an IRQ vector.
Implements IntController.
Definition at line 84 of file BroadcomInterrupt.cpp.
References IntController::Success.
|
virtual |
Disable an IRQ vector.
Implements IntController.
Definition at line 66 of file BroadcomInterrupt.cpp.
References INTERRUPT_DISABLEIRQ1, INTERRUPT_DISABLEIRQ2, m_io, IntController::Success, and ARMIO::write().
|
virtual |
Enable an IRQ vector.
Implements IntController.
Definition at line 44 of file BroadcomInterrupt.cpp.
References INTERRUPT_ENABLEIRQ1, INTERRUPT_ENABLEIRQ2, m_io, IntController::Success, and ARMIO::write().
|
virtual |
Check if an IRQ vector is set.
Reimplemented from IntController.
Definition at line 103 of file BroadcomInterrupt.cpp.
References INTERRUPT_BASICPEND, INTERRUPT_IRQPEND1, INTERRUPT_IRQPEND2, m_io, and ARMIO::read().
Referenced by nextPending().
|
virtual |
Retrieve the next pending interrupt (IRQ).
| irq | Outputs the next pending interrupt on Success |
Reimplemented from IntController.
Definition at line 89 of file BroadcomInterrupt.cpp.
References isTriggered(), IntController::NotFound, and IntController::Success.
|
private |
I/O instance.
Definition at line 94 of file BroadcomInterrupt.h.
Referenced by BroadcomInterrupt(), disable(), enable(), and isTriggered().
1.8.17