Difference between revisions of "KTimerAndWDTManager"

From 3dbrew
Jump to navigation Jump to search
m
m (typo)
 
(2 intermediate revisions by the same user not shown)
Line 4: Line 4:
 
Size : 0x28 bytes
 
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.
+
This is the interrupt event object associated with SGIs #29 and #30 (timer and watchdog timer interrupts). It keeps tracks of the system uptime and manages [[KTimeableInterruptEvent]] instances.
  
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?).
+
The interrupt handler of this object updates its counter attributes and returns 0 if it was called with interuptID = 31 (or any invalid interruptID value) (Watchdog timer underflow), otherwise it does nothing and returns the object itself (timer interrupt).
  
 
There is only one instance of this class (everything uses the timer and watchdog timer of core1).
 
There is only one instance of this class (everything uses the timer and watchdog timer of core1).
Line 33: Line 33:
 
|-  
 
|-  
 
| 0x10
 
| 0x10
| [[KTimeableInterruptEvent|KTimerAndWDTManagerInterruptEvent]]
+
| [[KTimeableInterruptEvent]]
| Instance of a dummy subclass of [[KTimeableInterruptEvent]] used to keep track of [[KTimeableInterruptEvent|KTimerInterruptEvents]] and [[KTimeableInterruptEvent|KThreadInterruptEvent]] of suspended threads
+
| Instance of a subclass of [[KTimeableInterruptEvent]] used to keep track of all instances of [[KTimeableInterruptEvent]].
 +
Also keeps tracks of the system uptime in CPU ticks, this is updated each time a [[KTimeableInterruptEvent]] is added to its list
 
|-
 
|-
 
| 0x20
 
| 0x20

Latest revision as of 00:51, 12 February 2017

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 keeps tracks of the system uptime and manages KTimeableInterruptEvent instances.

The interrupt handler of this object updates its counter attributes and returns 0 if it was called with interuptID = 31 (or any invalid interruptID value) (Watchdog timer underflow), otherwise it does nothing and returns the object itself (timer interrupt).

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 KTimeableInterruptEvent Instance of a subclass of KTimeableInterruptEvent used to keep track of all instances of KTimeableInterruptEvent.

Also keeps tracks of the system uptime in CPU ticks, this is updated each time a KTimeableInterruptEvent is added to its list

0x20 KRecursiveLock Recursive lock