timer.c File Reference

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.
bigtime_t get_real_time (void)
 Returns the number of microseconds since 1970-01-01.
bigtime_t get_idle_time (int nProcessor)
 Returns the total idle time for the given CPU.
int sys_get_raw_system_time (bigtime_t *pRes)
 Returns the time elapsed since last system boot, in microseconds.
int sys_get_raw_real_time (bigtime_t *pRes)
 Returns the number of microseconds since 1970-01-01.
int sys_get_raw_idle_time (bigtime_t *pRes, int nProcessor)
 Returns the total idle time for the given CPU, in microseconds.
int sys_set_real_time (uint32 nTimeLow, uint32 nTimeHigh)
 Sets the system clock to a new time.
void TimerInterrupt (SysCallRegs_s *psRegs)
 This is the timer interrupt handler, called INT_FREQ times per second.
void start_timer_int (void)
 Initializes the PIT timers.
void get_cmos_time (void)
 Sets the system time from the battery-backed CMOS clock.

Variables

int g_bNeedSchedule
 If true, the scheduler will be called when returning from syscall.


Detailed Description

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.


Function Documentation

void get_cmos_time ( void   ) 

Sets the system time from the battery-backed CMOS clock.

See also:
kernel_init()
Author:
Kurt Skauen ([email protected])

bigtime_t get_idle_time ( int  nProcessor  ) 

Returns the total idle time for the given CPU.

Parameters:
nProcessor the processor for which to return the idle time.
Returns:
Idle time for the given CPU, in microseconds.
Author:
Kurt Skauen ([email protected])

bigtime_t get_real_time ( void   ) 

Returns the number of microseconds since 1970-01-01.

Returns:
The number of microseconds since 1970-01-01.
Author:
Kurt Skauen ([email protected])

bigtime_t get_system_time ( void   ) 

Returns the time elapsed since last system boot.

Returns:
Time since last system boot, in microseconds.
Author:
Kurt Skauen ([email protected])

void start_timer_int ( void   ) 

Initializes the PIT timers.

See also:
kernel_init()
Author:
Kurt Skauen ([email protected])

int sys_get_raw_idle_time ( bigtime_t *  pRes,
int  nProcessor 
)

Returns the total idle time for the given CPU, in microseconds.

Parameters:
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.
Author:
Kurt Skauen ([email protected])

int sys_get_raw_real_time ( bigtime_t *  pRes  ) 

Returns the number of microseconds since 1970-01-01.

Parameters:
pRes a pointer to the bigtime_t in which to store the current time.
Author:
Kurt Skauen ([email protected])

int sys_get_raw_system_time ( bigtime_t *  pRes  ) 

Returns the time elapsed since last system boot, in microseconds.

Parameters:
pRes a pointer to the bigtime_t in which to store the system time.
Author:
Kurt Skauen ([email protected])

int sys_set_real_time ( uint32  nTimeLow,
uint32  nTimeHigh 
)

Sets the system clock to a new time.

Does not set the RTC.

Parameters:
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
Returns:
Always returns 0.
Attention:
Missing check for sufficient privileges to set the system clock.
Author:
Kurt Skauen ([email protected])

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.

Parameters:
dummy unused.
See also:
idle_loop()
Author:
Kurt Skauen ([email protected])


Generated on Sat May 9 22:53:26 2009 for Syllable device driver API by  doxygen 1.5.1