Manages the system timers. This module wraps the Hardware Timers and add some functionalities, along with providing a consistent interface.
Module
Version |
World |
Privilege
|
0.931-3.65 |
Non-secure |
Kernel
|
Libraries
Known NIDs
Types
#define SYSTIMER_TYPE_LONG 1 //<! 64-bit timer
#define SYSTIMER_TYPE_WORD 2 //<! 32-bit timer
typedef SceInt32 SceSystimerType;
#define SYSTIMER_CLKSRC_SYS 0 //<! The clock controlled by scePowerSetSysClockFrequency
#define SYSTIMER_CLKSRC_48MHZ 3 //<! A clock running at a fixed frequency of 48MHz
typedef SceUInt32 SceSystimerClkSrc;
typedef SceInt32 SceSystimerId;
typedef void (*SceSystimerCallback)(SceSystimerId timer, void* pUserData);
SceSystimerForDriver
sceKernelSysTimerAllocForDriver
Version |
NID
|
0.990-3.60 |
0xE2B9D8E9
|
SceSystimerId sceKernelSysTimerAllocForDriver(SceSystimerType type);
SceSystimerForDriver_0450933B
Version |
NID
|
3.65 |
0x0450933B
|
Set the timer's frequency. Timer must not be counting.
//
// Timer frequency = (clock source frequency) / (prescaleFactor + 1)
//
// if (a2 < 0x10), written to bits 0x00F00000
// else (a2 & 0x7) written to bits 0x00000700 and 0x2 written to bits 0x00F00000
// a3 written to bits 0xFF000000
SceInt32 SceSystimerForDriver_0450933B(SceSystimerId timer, SceSystimerClkSrc src, SceUInt32 prescaleFactor);
SceSystimerForDriver_1B14DFD6
Version |
NID
|
3.65 |
0x1B14DFD6
|
Sets the timer's counter value and increments the accumulating counter by counter
.
SceInt32 SceSystimerForDriver_1B14DFD6(SceSystimerId timer, SceKernelSysClock counter);
SceSystimerForDriver_59EBD22D
Version |
NID
|
3.65 |
0x59EBD22D
|
Starts the timer.
SceInt32 SceSystimerForDriver_59EBD22D(SceSystimerId timer);
SceSystimerForDriver_7DEBA6A5
Version |
NID
|
3.65 |
0x7DEBA6A5
|
Resets the timer. Sets current and accumulated counter to 0.
SceInt32 SceSystimerForDriver_7DEBA6A5(SceSystimerId timer);
SceSystimerForDriver_8358611F
Version |
NID
|
3.65 |
0x8358611F
|
Stops the timer if active, and frees the timer. (sceKernelSysTimerFree
)
SceInt32 SceSystimerForDriver_8358611F(SceSystimerId timer);
SceSystimerForDriver_85AAE0DD
Version |
NID
|
3.65 |
0x85AAE0DD
|
Obtains the timer's accumulated count (i.e. *a2 = timer->currentCounter + (sum of counter of each time interrupt was triggered)
)
SceInt32 SceSystimerForDriver_85AAE0DD(SceSystimerId timer, SceKernelSysClock* a2);
SceSystimerForDriver_904DF737
Version |
NID
|
3.65 |
0x904DF737
|
Edits some bits (mask 0x000F0080) of the timer's config register. Timer must not be counting.
// a2 written to bits 0x000F0000
// a3 written to bit 0x00000080
// additionaly, config register is also |= 0x40
SceInt32 SceSystimerForDriver_904DF737(SceSystimerId timer, SceUInt32 a2, SceBool a3);
SceSystimerForDriver_963F7C0D
Version |
NID
|
3.65 |
0x963F7C0D
|
Obtains the current value of the timer's counter (i.e. *a2 = timer->currentCount
).
SceInt32 SceSystimerForDriver_963F7C0D(SceSystimerId timer, SceKernelSysClock* a2);
SceSystimerForDriver_A73351C1
Version |
NID
|
3.65 |
0xA73351C1
|
Sets the timer's interval (cycles count). Timer must not be counting.
SceInt32 SceSystimerForDriver_A73351C1(SceSystimerId timer, SceKernelSysClock interval);
SceSystimerForDriver_BF8D42B0
Version |
NID
|
3.65 |
0xBF8D42B0
|
Stops the timer.
SceInt32 SceSystimerForDriver_BF8D42B0(SceSystimerId timer);
SceSystimerForDriver_C34D7940
Version |
NID
|
3.65 |
0xC34D7940
|
Edits some bits (mask 0x0000F000) of the timer's config register. Timer must not be counting.
// a2 written to bits 0x0000F000
// additionaly, config register is also |= 0x20
SceInt32 SceSystimerForDriver_C34D7940(SceSystimerId timer, SceUInt32 a2);
SceSystimerForDriver_CCCD1EE3
Version |
NID
|
3.65 |
0xCCCD1EE3
|
(Un)registers an interrupt handler for the timer.
/*
* cb will be invoked whenever the timer generates an interrupt (that is, when the counter reaches the threshold set via SceSystimerForDriver_A73351C1())
* timer and pUserData arguments will be the same as provided to this function
* cb will only be called if SceSystimerForDriver_A73351C1() has been called with non-zero argument (e.g. timer has a threshold)
* cb can be NULL, in which case targetCPU will not be set
*
* targetCPU follows the same rules as sceKernelSetIntrTarget() - see SceKernelIntrMgr for more info
*/
SceInt32 SceSystimerForDriver_CCCD1EE3(SceSystimerId timer, SceSystimerCallback cb, SceUInt32 targetCPU, void* pUserData);
SceSystimerForDriver_FD5F1742
Version |
NID
|
3.65 |
0xFD5F1742
|
Reads some ?counter? from the timer.
SceInt32 SceSystimerForDriver_FD5F1742(SceSystimerId timer, SceKernelSysClock* a2);