Line 298:
Line 298:
|-
|-
| 0x0
| 0x0
−
| InterruptEvent *
+
| [[KBaseInterruptEvent]] *
−
| Pointer to the InterruptEvent object for that interrupt
+
| Pointer to the KBaseInterruptEvent object for this interrupt
|-
|-
| 0x4
| 0x4
Line 342:
Line 342:
| Alignment
| Alignment
|}
|}
−
−
= InterruptEvent =
−
−
Abstract base class for all interrupt events.
−
−
{| class="wikitable" border="1"
−
|-
−
! Offset
−
! Type
−
! Description
−
|-
−
| 0x0
−
| void **
−
| Pointer to vtable
−
|}
−
−
This abstract base class defines <code>virtual KInterruptEvent* InterruptEvent::handleInterruptAndGetKInterruptEvent(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.
−
−
−
The kernel uses the [[KInterruptEvent|KInterruptEvent]] field of a [[KEvent|KEvent]] when binding public interrupts per svcBindInterrupt request.