00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028 #ifndef _PIKE_TIMER_H
00029 #define _PIKE_TIMER_H
00030
00031
00032 struct list_link {
00033 struct list_link *next;
00034 struct list_link *prev;
00035 };
00036
00037
00038 #define has_timer_set(_ll) \
00039 ((_ll)->prev || (_ll)->next)
00040
00041 #define is_list_empty(_head) \
00042 ((_head)->next == (_head))
00043
00044 #define update_in_timer( _head, _ll) \
00045 do { \
00046 remove_from_timer( _head, _ll);\
00047 append_to_timer( _head, _ll); \
00048 }while(0)
00049
00050
00051 void append_to_timer(struct list_link *head, struct list_link *ll );
00052
00053 void remove_from_timer(struct list_link *head, struct list_link *ll);
00054
00055 void check_and_split_timer(struct list_link *head, unsigned int time,
00056 struct list_link *split, unsigned char *mask);
00057
00058
00059 #endif
00060