10 /* Select heap-tree as base structure to implement
11 * hierarchic timer - not recomended
13 //#define UL_HTIMER_WITH_HPTREE
15 /* If defined, standard timer type
18 #define UL_HTIMER_WITH_STD_TYPE
20 /* If defined, standard microsecond resolution
21 * data types are selected for timer implementation
23 #define UL_HTIMER_WITH_MSTIME
25 #ifdef UL_HTIMER_WITH_MSTIME
26 typedef unsigned long ul_mstime_t;
27 typedef signed long ul_msdiff_t;
29 typedef ul_mstime_t ul_htim_time_t;
30 typedef ul_msdiff_t ul_htim_diff_t;
33 ul_htimer_cmp_fnc(const ul_htim_time_t *a, const ul_htim_time_t *b)
35 ul_htim_diff_t d=(ul_htim_diff_t)(*a-*b);
40 #endif /*UL_HTIMER_WITH_MSTIME*/
42 /*===========================================================*/
43 /* Configuration of types for standard timer (ul_htimer) */
45 /* Additional, user defined fields for ul_htimer_t structure */
46 #define UL_HTIMER_USER_FIELDS
48 typedef void (ul_htimer_fnc_t)(unsigned long data);
50 /* The wrapper for ul_htimer_run_expired */
51 #define UL_HTIMER_FNC_CALL(queue, timer, pact_time) \
52 do{ timer->function(timer->data); } while(0)
59 #endif /* _UL_HTIMDEFS_H */