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 KEventInterruptEvent, KSemaphoreInterruptEvent, KMutexInterruptEvent (?) | + | Abstract class used as base for [[KScheduler]], [[KFIQInterruptEvent]], [[KUserBindableInterruptEvent]], [[KThread]], etc. |
− | | |
− | Instances of this class always 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, which signals the parent object, is executed. | + | 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 |
| |} | | |} |