#include <agnix/agnix.h>#include <agnix/irq.h>#include <agnix/tasks.h>#include <agnix/timer.h>#include <agnix/memory.h>#include <agnix/adi/adi.h>#include <agnix/spinlock.h>#include <agnix/timers.h>#include <agnix/counters.h>#include <agnix/console.h>Include dependency graph for timer.c:

Go to the source code of this file.
Defines | |
| #define | TIMER_INC_VAL (1e6 / TIMER_HZ) |
| #define | USEC_IN_SEC 1000000 |
Functions | |
| void | timer_usec_overflow (void) |
| void | timer_actualize (void) |
| void | timer_irq (u32 i) |
| int __init | timer_init (void) |
| int | timer_gettimeofday (struct timeval_s *tv) |
| int | timer_settimeofday (struct timeval_s *tv) |
Variables | |
| timeval_s | current_time |
| chip_s | rtc_chip |
| chip_s | i8254_chip |
| int | counter_jiffies_desc |
| spinlock_t | current_time_lock |
| irq_routine_s | irq_timer = { timer_irq, 0, 0, } |
|
|
Definition at line 25 of file timer.c. Referenced by timer_actualize(). |
|
|
Definition at line 26 of file timer.c. Referenced by timer_actualize(), and timer_usec_overflow(). |
|
|
Definition at line 43 of file timer.c. References current_time, TIMER_INC_VAL, timer_usec_overflow(), and USEC_IN_SEC. Referenced by timer_irq(). 00044 {
00045 current_time.tv_usec += TIMER_INC_VAL;
00046
00047 if (current_time.tv_usec > USEC_IN_SEC)
00048 timer_usec_overflow();
00049 }
Here is the call graph for this function: ![]() |
|
|
Definition at line 76 of file timer.c. References current_time, current_time_lock, flags, i8254_chip, and memcpy(). Referenced by do_sys_time(), and SYS_CALL(). 00077 {
00078 u16 count;
00079 u32 flags;
00080
00081 spin_lock_irqsave(¤t_time_lock, flags);
00082
00083 memcpy(tv, ¤t_time, sizeof(struct timeval_s));
00084 count = pit_ops(&i8254_chip)->read_count(&i8254_chip, 0);
00085 tv->tv_usec += (int)(count);
00086
00087 spin_unlock_irqrestore(¤t_time_lock, flags);
00088
00089 return 0;
00090 }
Here is the call graph for this function: ![]() |
|
|
Definition at line 66 of file timer.c. References current_time, current_time_lock, install_irq(), irq_timer, and rtc_chip. Referenced by i386_init(). 00067 {
00068 spin_lock_init(¤t_time_lock);
00069
00070 rtc_ops(&rtc_chip)->gettime(&rtc_chip, ¤t_time);
00071 install_irq(0, &irq_timer);
00072
00073 return 0;
00074 }
Here is the call graph for this function: ![]() |
|
|
Definition at line 51 of file timer.c. References counter_jiffies_desc, run_timers(), and timer_actualize(). 00052 {
00053 if (--current_task->t_count <= 0) {
00054 current_task->t_resched = 1;
00055 }
00056 else
00057 current_task->t_resched = 0;
00058
00059 timer_actualize();
00060 counter_inc(counter_jiffies_desc);
00061 run_timers();
00062 }
Here is the call graph for this function: ![]() |
|
|
Definition at line 92 of file timer.c. References current_time, current_time_lock, flags, i8254_chip, and memcpy(). Referenced by do_sys_stime(), and SYS_CALL(). 00093 {
00094 u16 count;
00095 u32 flags;
00096
00097 spin_lock_irqsave(¤t_time_lock, flags);
00098
00099 memcpy(¤t_time, tv, sizeof(struct timeval_s));
00100 count = (u16)(tv->tv_usec % 1000);
00101 pit_ops(&i8254_chip)->write_count(&i8254_chip, 0, count);
00102
00103 spin_unlock_irqrestore(¤t_time_lock, flags);
00104
00105 return 0;
00106 }
Here is the call graph for this function: ![]() |
|
|
Definition at line 35 of file timer.c. References current_time, and USEC_IN_SEC. Referenced by timer_actualize(). 00036 {
00037 do {
00038 current_time.tv_usec -= USEC_IN_SEC;
00039 current_time.tv_sec++;
00040 } while (current_time.tv_usec > USEC_IN_SEC);
00041 }
|
|
|
Definition at line 18 of file counters_sys.c. |
|
|
Definition at line 28 of file timer.c. Referenced by timer_actualize(), timer_gettimeofday(), timer_init(), timer_settimeofday(), and timer_usec_overflow(). |
|
|
Definition at line 33 of file timer.c. Referenced by timer_gettimeofday(), timer_init(), and timer_settimeofday(). |
|
|
Definition at line 95 of file i8254.c. Referenced by i8254_init(), timer_gettimeofday(), and timer_settimeofday(). |
|
|
Definition at line 64 of file timer.c. Referenced by timer_init(). |
|
|
Definition at line 84 of file rtc.c. Referenced by rtc_init(), and timer_init(). |