Difference between revisions of "KTimer"

From 3dbrew
Jump to navigation Jump to search
m
Line 1: Line 1:
 
[[Category:Kernel synchronization objects]]
 
[[Category:Kernel synchronization objects]]
class [[KTimer]] extends [[KSynchronizationObject]];
+
class [[KTimer]] extends [[KSynchronizationObject]] and [[KTimeableInterruptEvent]];
  
 
Size : 0x3C bytes
 
Size : 0x3C bytes
Line 31: Line 31:
 
|-
 
|-
 
| 0x14
 
| 0x14
| [[KTimeableInterruptEvent|KTimerInterruptEvent]]
+
| [[KTimeableInterruptEvent]]
| Interrupt event to be used with [[KTimerAndWDTManager]] holding its desired time point (relative to the CPU power-on) in CPU ticks (when handling its list of [[KTimableInterruptEvent]] instances).
+
| Interrupt event (*this) to be used with [[KTimerAndWDTManager]] holding its desired time point (relative to the CPU power-on) in CPU ticks (when handling its list of [[KTimableInterruptEvent]] instances).
 
Gets incremented at each interval
 
Gets incremented at each interval
 
|-
 
|-

Revision as of 15:49, 10 December 2016

class KTimer extends KSynchronizationObject and KTimeableInterruptEvent;

Size : 0x3C bytes

Offset Type Description
0x0 u32 Pointer to vtable
0x4 u32 Reference count
0x8 u32 Count of KThreads that sync with this object - number of nodes in the linked list below
0xC KLinkedListNode* Pointer to first KLinkedListNode in node list of KThreads that sync with this object
0x10 KLinkedListNode* Pointer to last KLinkedListNode in node list of KThreads that sync with this object
0x14 KTimeableInterruptEvent Interrupt event (*this) to be used with KTimerAndWDTManager holding its desired time point (relative to the CPU power-on) in CPU ticks (when handling its list of KTimableInterruptEvent instances).

Gets incremented at each interval

0x24 u8 Timer is signaled
0x25 u8 Timer reset type (one shot, sticky, pulse)
0x26 u16 Unknown, probably unused
0x28 s64 Interval in nanoseconds
0x30 s64 Current value in nanoseconds: current system uptime + user-specified time offset, updated at each interval
0x38 KProcess* Owner

Negative intervals and time offsets are considered null.