00001 /* timer.h */ 00002 00003 #include <routix/system.h> 00004 #include <routix/task.h> 00005 00006 00007 #ifndef __TIMER 00008 #define __TIMER 00009 00010 extern dword jiffies; 00011 00012 00013 // Habilitamos el modo seguro de remoción de timers donde se realiza 00014 // su búsqueda previa antes de eliminarse 00015 #define SECURE_TIMER_OPER 00016 00017 00018 typedef struct timer_t { 00019 dword ticks; 00020 task_struct_t *process; 00021 void (*func)(struct timer_t *); 00022 00023 void *data; 00024 00025 LIST_DATA(timer_t) timer_list; 00026 00027 } timer_t; 00028 00029 #define TIMER_TICKS(t) ((t)->ticks) 00030 #define TIMER_PROCESS(t) ((t)->process) 00031 #define TIMER_FUNCTION(t) ((t)->func) 00032 #define TIMER_DATA(t) ((t)->data) 00033 #define TIMER_STATE(t) ((t)->state) 00034 00035 00036 void actualizar_timers(void); 00037 inline timer_t *create_timer(dword ticks, task_struct_t *proceso, void (*func)(struct timer_t *info), void *data); 00038 inline int clean_timer(timer_t *timer); 00039 00040 inline void timer_dump(void); 00041 00042 00043 #define TIMER_USEGUNDOS(segundos) (segundos/10000) 00044 #define USECONDS_TO_TICKS(useconds) ((useconds)/10000) 00045 00046 #endif