Changes

695 bytes removed ,  17:01, 2 December 2016
no edit summary
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.