13 /* Select heap-tree as base structure to implement
14 * hierarchic timer - not recomended
16 //#define UL_HTIMER_WITH_HPTREE
18 /* If defined, standard timer type
21 #define UL_HTIMER_WITH_STD_TYPE
23 /* If defined, standard microsecond resolution
24 * data types are selected for timer implementation
26 #define UL_HTIMER_WITH_MSTIME
28 #ifdef UL_HTIMER_WITH_MSTIME
29 typedef unsigned long ul_mstime_t;
30 typedef signed long ul_msdiff_t;
32 typedef ul_mstime_t ul_htim_time_t;
33 typedef ul_msdiff_t ul_htim_diff_t;
35 #define UL_HTIM_RESOLUTION 1000
38 ul_htimer_cmp_fnc(const ul_htim_time_t *a, const ul_htim_time_t *b)
40 ul_htim_diff_t d=(ul_htim_diff_t)(*a-*b);
45 #endif /*UL_HTIMER_WITH_MSTIME*/
47 /*===========================================================*/
48 /* Configuration of types for standard timer (ul_htimer) */
50 /* Additional, user defined fields for ul_htimer_t structure */
51 #define UL_HTIMER_USER_FIELDS
54 typedef uintptr_t ul_htimer_fnc_data_t;
56 typedef unsigned long ul_htimer_fnc_data_t;
58 /*typedef void *ul_htimer_fnc_data_t;*/
60 typedef void (ul_htimer_fnc_t)(ul_htimer_fnc_data_t data) UL_ATTR_REENTRANT;
62 /* The wrapper for ul_htimer_run_expired */
63 #define UL_HTIMER_FNC_CALL(queue, timer, pact_time) \
64 do{ timer->function(timer->data); } while(0)
71 #endif /* _UL_HTIMDEFS_H */