Pyro device driver API
|
This file contains the timer interrupt handler and functions to return the system time (time elapsed since boot), real time (since 1970-01-01), and per-CPU idle time. More...
Functions | |
SEQ_LOCK (g_sTimerSeqLock,"timer_slock") | |
SPIN_LOCK (g_sPitTimerSpinLock,"i8253_slock") | |
bigtime_t | get_system_time (void) |
Returns the time elapsed since last system boot. More... | |
bigtime_t | get_real_time (void) |
Returns the number of microseconds since 1970-01-01. More... | |
bigtime_t | get_idle_time (int nProcessor) |
Returns the total idle time for the given CPU. More... | |
int | sys_get_raw_system_time (bigtime_t *pRes) |
Returns the time elapsed since last system boot, in microseconds. More... | |
int | sys_get_raw_real_time (bigtime_t *pRes) |
Returns the number of microseconds since 1970-01-01. More... | |
int | sys_get_raw_idle_time (bigtime_t *pRes, int nProcessor) |
Returns the total idle time for the given CPU, in microseconds. More... | |
int | sys_set_real_time (uint32 nTimeLow, uint32 nTimeHigh) |
Sets the system clock to a new time. More... | |
void | TimerInterrupt (SysCallRegs_s *psRegs) |
This is the timer interrupt handler, called INT_FREQ times per second. More... | |
void | start_timer_int (void) |
Initializes the PIT timers. More... | |
void | get_cmos_time (void) |
Sets the system time from the battery-backed CMOS clock. More... | |
Variables | |
int | g_bNeedSchedule |
If true, the scheduler will be called when returning from syscall. More... | |
This file contains the timer interrupt handler and functions to return the system time (time elapsed since boot), real time (since 1970-01-01), and per-CPU idle time.
All time values are returned in microseconds.
void get_cmos_time | ( | void | ) |
Sets the system time from the battery-backed CMOS clock.
bigtime_t get_idle_time | ( | int | nProcessor | ) |
Returns the total idle time for the given CPU.
nProcessor | the processor for which to return the idle time. |
bigtime_t get_real_time | ( | void | ) |
Returns the number of microseconds since 1970-01-01.
bigtime_t get_system_time | ( | void | ) |
Returns the time elapsed since last system boot.
void start_timer_int | ( | void | ) |
Initializes the PIT timers.
int sys_get_raw_idle_time | ( | bigtime_t * | pRes, |
int | nProcessor | ||
) |
Returns the total idle time for the given CPU, in microseconds.
pRes | a pointer to the bigtime_t in which to store the CPU idle time. |
nProcessor | the processor for which to return the idle time. |
int sys_get_raw_real_time | ( | bigtime_t * | pRes | ) |
Returns the number of microseconds since 1970-01-01.
pRes | a pointer to the bigtime_t in which to store the current time. |
int sys_get_raw_system_time | ( | bigtime_t * | pRes | ) |
Returns the time elapsed since last system boot, in microseconds.
pRes | a pointer to the bigtime_t in which to store the system time. |
int sys_set_real_time | ( | uint32 | nTimeLow, |
uint32 | nTimeHigh | ||
) |
Sets the system clock to a new time.
Does not set the RTC.
nTimeLow | the low 32 bits of the new system time, in microseconds since 1970-01-01. |
nTimeHigh | the high 32 bits of the new system time |
void TimerInterrupt | ( | SysCallRegs_s * | psRegs | ) |
This is the timer interrupt handler, called INT_FREQ times per second.
It updates the system time and calls functions send_timer_signals() and wake_up_sleepers(). If there is no APIC present, Schedule() is also called here; otherwise, Schedule() is called for each CPU via do_smp_preempt(), which is triggered by the APIC timer.
dummy | unused. |
int g_bNeedSchedule |
If true, the scheduler will be called when returning from syscall.