Difference between revisions of "KSchedulableInterruptEvent"

From 3dbrew
Jump to navigation Jump to search
 
(6 intermediate revisions by the same user not shown)
Line 1: Line 1:
[[Category:Kernel objects]]
+
[[Category:Kernel interrupt events]]
 
class [[KSchedulableInterruptEvent]] extends [[KSynchronizationInterruptEvent|KSynchronizationInterruptEvent]]
 
class [[KSchedulableInterruptEvent]] extends [[KSynchronizationInterruptEvent|KSynchronizationInterruptEvent]]
  
 
Size : 0x8 bytes
 
Size : 0x8 bytes
  
Abstract base class for [[KScheduler]], KEventInterruptEvent, KSemaphoreInterruptEvent, KMutexInterruptEvent (?)
+
Abstract class used as base for [[KScheduler]], [[KFIQInterruptEvent]], [[KUserBindableInterruptEvent]], [[KThread]], etc.
 
 
Instances of this class (not KScheduler) most often have a [[KSynchronizationObject]] parent object, in which they are located at offset 0x14.
 
 
   
 
   
The virtual interrupt function of this class returns an instance to <code>this</code>. After rescheduling, the second virtual function is executed. For classes instances having a parent object, the latter is signaled.  
+
The virtual interrupt function of this class returns an instance to <code>this</code> (as [[KSchedulableInterruptEvent]]). After being added to the [[KSchedulableInterruptEventLinkedList]] instance of the current core and picked up by its kernel thread, the second virtual function is executed. The instances of the subclasses that also inherit from [[KSynchronizationObject]] are signaled as well.  
  
 
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
Line 21: Line 19:
 
|-
 
|-
 
| 0x4
 
| 0x4
| [[KSynchronizationObject]] *
+
| [[KSynchronizationInterruptEvent]] *
| Pointer to an object synchronizing on the current one
+
| Next interrupt event (associated with the current one), usually a [[KSchedulableInterruptEvent]]. The linked list represented by this attribute can contain cycles
 
|}
 
|}

Latest revision as of 16:11, 10 December 2016

class KSchedulableInterruptEvent extends KSynchronizationInterruptEvent

Size : 0x8 bytes

Abstract class used as base for KScheduler, KFIQInterruptEvent, KUserBindableInterruptEvent, KThread, etc.

The virtual interrupt function of this class returns an instance to this (as KSchedulableInterruptEvent). After being added to the KSchedulableInterruptEventLinkedList instance of the current core and picked up by its kernel thread, the second virtual function is executed. The instances of the subclasses that also inherit from KSynchronizationObject are signaled as well.

Offset Type Description
0x0 void ** Pointer to vtable
0x4 KSynchronizationInterruptEvent * Next interrupt event (associated with the current one), usually a KSchedulableInterruptEvent. The linked list represented by this attribute can contain cycles