ARM11 Interrupts: Difference between revisions
Line 345: | Line 345: | ||
= InterruptEvent = | = InterruptEvent = | ||
Abstract base class for interrupt events. | Abstract base class for all interrupt events. | ||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
Line 356: | Line 356: | ||
| void ** | | void ** | ||
| Pointer to vtable | | Pointer to vtable | ||
|} | |} | ||
This abstract base class defines <code>virtual KInterruptEvent* InterruptEvent::handleInterruptAndKInterruptEvent(u32 interruptID) = 0</code>. It's actually the function called by the IRQ handler, which returns a [[KInterruptEvent|KInterruptEvent]] to signal. | |||
If NULL or 1 is returned, no event will be signaled. If NULL is returned, no post-interrupt rescheduling will be done. | If NULL or 1 is returned, no event will be signaled. If NULL is returned, no post-interrupt rescheduling will be done. | ||
The kernel uses the [[KInterruptEvent|KInterruptEvent]] field of a [[KEvent|KEvent]] when binding public interrupts per svcBindInterrupt request | The kernel uses the [[KInterruptEvent|KInterruptEvent]] field of a [[KEvent|KEvent]] when binding public interrupts per svcBindInterrupt request. |