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 |
− | | Unknown | + | | Count of KThreads that sync with this object - number of nodes in the linked list below |
| |- | | |- |
| | 0xC | | | 0xC |
− | | u32 | + | | KLinkedListNode* |
− | | Pointer to timer data node | + | | Pointer to first KLinkedListNode in node list of KThreads that sync with this object |
| |- | | |- |
| | 0x10 | | | 0x10 |
− | | u32 | + | | KLinkedListNode* |
− | | Pointer identical to the one above | + | | Pointer to last KLinkedListNode in node list of KThreads that sync with this object |
| |- | | |- |
| | 0x14 | | | 0x14 |
− | | u32 | + | | [[KTimeableInterruptEvent]] |
− | | Pointer to smaller vtable | + | | 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 |
| |- | | |- |
− | | 0x18 | + | | 0x24 |
− | | u32 | + | | u8 |
− | | Pointer to unknown object type | + | | Timer is signaled |
− | |-
| |
− | | 0x1C
| |
− | | u32
| |
− | | Unknown
| |
| |- | | |- |
− | | 0x20 | + | | 0x25 |
− | | u32 | + | | u8 |
− | | Unknown | + | | Timer reset type (one shot, sticky, pulse) |
| |- | | |- |
− | | 0x24 | + | | 0x26 |
− | | u32 | + | | u16 |
− | | Unknown | + | | 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 |
− | | Initial | + | | Current value in nanoseconds: current system uptime + user-specified time offset, updated at each interval |
| |- | | |- |
| | 0x38 | | | 0x38 |
Line 62: |
Line 60: |
| | Owner | | | Owner |
| |- | | |- |
| + | |} |
| + | |
| + | Negative intervals and time offsets are considered null. |