00001 /* 00002 ** timervar.h for lseos in lseos-srv/hw/timer 00003 ** 00004 ** Copyright(c)2004 Vianney Rancurel 00005 ** Login <vianney@epita.fr> 00006 ** 00007 ** Started on Wed Feb 11 12:02:31 2004 Vianney Rancurel 00008 ** Last update Tue Nov 30 17:10:04 2004 Vianney Rancurel 00009 */ 00010 #ifndef __TIMERVAR_H__ 00011 #define __TIMERVAR_H__ 1 00012 00013 typedef struct s_timer 00014 { 00015 pid_t holder; 00016 u_int32_t waitfor; 00017 u_int32_t value; 00018 u_int32_t avail:1; 00019 u_int32_t usecs:1; /* unity is useconds */ 00020 } t_timer; 00021 00022 typedef struct s_timerstats 00023 { 00024 u_int32_t ncsw[NB_CPUS]; /* number of context switches */ 00025 } t_timerstats; 00026 00027 typedef struct s_timer_info 00028 { 00029 __cpu_simple_lock_t lock; 00030 u_int64_t ticks[NB_CPUS]; /* current number of ticks */ 00031 u_int divisor; /* current PIT divisor */ 00032 u_int frq; /* frequency of timer intrs (hz)*/ 00033 u_int qticks; /* quantum ticks */ 00034 u_int qvalue; /* quantum value */ 00035 u_int q_in_usecs; /* quantum value is in usecs */ 00036 u_int64_t secs; 00037 u_int64_t usecs; 00038 t_timerstats stats; 00039 pid_t notify_pid; 00040 pid_t cpid; 00041 } t_timer_info; 00042 00043 #endif