Main Page | Modules | Data Structures | Directories | File List | Data Fields | Globals | Related Pages

timer.h

Go to the documentation of this file.
00001 // $Id: timer.h 11 2006-01-17 12:53:39Z MagicalTux $
00002 // original : core.h 2003/03/14 11:55:25 Rev 1.4
00003 
00016 #ifndef OA_TIMER_H
00017 #define OA_TIMER_H
00018 
00019 #ifdef _WIN32
00020 /* We need winsock lib to have timeval struct - windows is weirdo */
00021 #define __USE_W32_SOCKETS
00022 #include <windows.h>
00023 #endif
00024 
00025 #define DIFF_TICK(a,b) \
00026         ((int)((a)-(b)))
00027 
00031 #define TIMER_FUNC(func) \
00032         int func(int tid, unsigned int tick, intptr_t id, intptr_t data)
00033 
00037 struct TimerData {
00038         unsigned int tick;
00040         int (*func)(int, unsigned int, intptr_t, intptr_t);
00041         intptr_t id;
00042         intptr_t data;
00046         char type;
00047         int interval;
00048 };
00049 
00050 // Function prototype declaration
00051 
00052 #ifdef _WIN32
00053 void gettimeofday(struct timeval *t, void *dummy);
00054 #endif
00055 
00056 
00057 void init_gettick(void);
00058 
00059 unsigned int gettick_nocache(void);
00060 
00064 extern unsigned int gettick_cache;
00065 
00075 int add_timer(unsigned int tick, 
00076                 int (*func)(int,unsigned int,intptr_t,intptr_t), 
00077                 intptr_t id, intptr_t data);
00078 
00088 int add_timer_interval(unsigned int tick,
00089                         int (*func)(int,unsigned int,intptr_t,intptr_t),
00090                         intptr_t id, intptr_t data, int interval);
00091 
00098 int delete_timer(int id, int (*func)(int,unsigned int, intptr_t, intptr_t));
00099 
00105 unsigned int addtick_timer(int tid, int added_tick);
00106 
00113 struct TimerData *get_timer(int tid);
00114 
00118 int do_timer(void);
00119 
00120 int add_timer_func_list(int (*)(int,unsigned int,intptr_t,intptr_t), char*);
00121 
00122 void timer_final();
00123 
00126 #endif  // OA_TIMER_H
00127 

Generated on Fri Apr 28 10:20:04 2006 for OpenAthena by  doxygen 1.4.4