Difference between revisions of "KTimerAndWDTManager"

From 3dbrew
Jump to navigation Jump to search
m
m
Line 1: Line 1:
[[Category:Kernel objects]]
+
[[Category:Kernel interrupt events]]
 
class [[KTimerAndWDTManager]] extends [[KSchedulableInterruptEvent|KSchedulableInterruptEvent]]
 
class [[KTimerAndWDTManager]] extends [[KSchedulableInterruptEvent|KSchedulableInterruptEvent]]
  

Revision as of 02:36, 5 December 2016

class KTimerAndWDTManager extends KSchedulableInterruptEvent

Size : 0x28 bytes

This is the interrupt event object associated with SGIs #29 and #30 (timer and watchdog timer interrupts). It is also what allows GetSystemTick, SleepThread, KTimers, etc. to work.

The interrupt handler of this object updates its counter attributes and returns 0 if it was called with interuptID = 29 or 30, otherwise it does nothing and returns the object itself (does the latter ever happen?).

There is only one instance of this class (everything uses the timer and watchdog timer of core1).

Offset Type Description
0x0 void ** Pointer to vtable
0x4 KSynchronizationInterruptEvent * Next interrupt event (associated with the current one) of type KSchedulableInterruptEvent. The linked list represented by this attribute can contain cycles
0x8 u32 Watchdog timer underflow counter
0xC u32 Previous value of the underflow counter
0x10 KTimerAndWDTManagerInterruptEvent Instance of a dummy subclass of KTimeableInterruptEvent used to keep track of KTimerInterruptEvents and KThreadInterruptEvent of suspended threads
0x20 KRecursiveLock Recursive lock