Difference between revisions of "KTimer"
Jump to navigation
Jump to search
(KTimer reset type) |
(11.3.0-36) |
||
(15 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
− | [[Category:Kernel objects]] | + | [[Category:Kernel synchronization objects]] |
− | class [[KTimer]] extends [[KSynchronizationObject]]; | + | [[Category:Kernel interrupt events]] |
+ | class [[KTimer]] extends [[KSynchronizationObject]] and [[KTimeableInterruptEvent]]; | ||
Size : 0x3C bytes | Size : 0x3C bytes | ||
Line 19: | Line 20: | ||
|- | |- | ||
| 0x8 | | 0x8 | ||
− | | u32 | + | | u32 |
− | | | + | | Count of KThreads that sync with this object - number of nodes in the linked list below |
|- | |- | ||
| 0xC | | 0xC | ||
− | | | + | | KLinkedListNode* |
− | | Pointer to | + | | Pointer to first KLinkedListNode in node list of KThreads that sync with this object |
|- | |- | ||
| 0x10 | | 0x10 | ||
− | | | + | | KLinkedListNode* |
− | | Pointer | + | | Pointer to last KLinkedListNode in node list of KThreads that sync with this object |
|- | |- | ||
| 0x14 | | 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 | | 0x24 | ||
| u8 | | u8 | ||
− | | | + | | Timer is signaled |
|- | |- | ||
| 0x25 | | 0x25 | ||
Line 56: | Line 46: | ||
| 0x26 | | 0x26 | ||
| u16 | | u16 | ||
− | | | + | | Starting from [[11.3.0-36]]: set to 0 prior to removing the timer from the [[KTimerAndWDTManager]] queue, set to 1 just after that. |
|- | |- | ||
| 0x28 | | 0x28 | ||
| s64 | | s64 | ||
− | | Interval | + | | Interval in nanoseconds |
|- | |- | ||
| 0x30 | | 0x30 | ||
| s64 | | s64 | ||
− | | | + | | Current value in nanoseconds: current system uptime + user-specified time offset, updated at each interval |
|- | |- | ||
| 0x38 | | 0x38 | ||
Line 70: | Line 60: | ||
| Owner | | Owner | ||
|- | |- | ||
+ | |} | ||
+ | |||
+ | Negative intervals and time offsets are considered null. |
Latest revision as of 01:42, 7 February 2017
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 | Starting from 11.3.0-36: set to 0 prior to removing the timer from the KTimerAndWDTManager queue, set to 1 just after that. |
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.