X-Git-Url: http://v3vee.org/palacios/gitweb/gitweb.cgi?p=palacios.git;a=blobdiff_plain;f=geekos%2Finclude%2Fgeekos%2Ftimer.h;fp=geekos%2Finclude%2Fgeekos%2Ftimer.h;h=f5ae13fd7f027c3f6c3149861a5c51ef6cbaea42;hp=0000000000000000000000000000000000000000;hb=ddc16b0737cf58f7aa90a69c6652cdf4090aec51;hpb=626595465a2c6987606a6bc697df65130ad8c2d3 diff --git a/geekos/include/geekos/timer.h b/geekos/include/geekos/timer.h new file mode 100644 index 0000000..f5ae13f --- /dev/null +++ b/geekos/include/geekos/timer.h @@ -0,0 +1,49 @@ +/* + * GeekOS timer interrupt support + * Copyright (c) 2001, David H. Hovemeyer + * Copyright (c) 2008, Jack Lange + * (c) 2008, The V3VEE Project + * $Revision: 1.2 $ + * + * This is free software. You are permitted to use, + * redistribute, and modify it as specified in the file "COPYING". + */ + +#ifndef GEEKOS_TIMER_H +#define GEEKOS_TIMER_H + +#define TIMER_IRQ 0 + +extern volatile unsigned long g_numTicks; + +typedef void (*timerCallback)(int, void*); + +void Init_Timer(void); + +void Micro_Delay(int us); + + +typedef struct { + int ticks; /* timer code decrements this */ + int id; /* unqiue id for this timer even */ + timerCallback callBack; /* Queue to wakeup on timer expire */ + void * cb_arg; /* Argument to add to callback */ + int origTicks; + +} timerEvent; + +int Start_Timer_Secs(int seconds, timerCallback cb, void * arg); +int Start_Timer_MSecs(int msecs, timerCallback cb, void * arg); +int Start_Timer(int ticks, timerCallback, void * arg); + + +double Get_Remaining_Timer_Secs(int id); +int Get_Remaining_Timer_MSecs(int id); +int Get_Remaining_Timer_Ticks(int id); +int Cancel_Timer(int id); + +void Micro_Delay(int us); + +unsigned long clock_time(void); //return elipsed millisecs + +#endif /* GEEKOS_TIMER_H */