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 /* If defined, NTPTimer type
31 #define UL_HTIMER_WITH_NTPTIME
33 #ifdef UL_HTIMER_WITH_MSTIME
34 typedef unsigned long ul_mstime_t;
35 typedef signed long ul_msdiff_t;
37 typedef ul_mstime_t ul_htim_time_t;
38 typedef ul_msdiff_t ul_htim_diff_t;
40 #define UL_HTIM_RESOLUTION 1000
43 ul_htimer_cmp_fnc(const ul_htim_time_t *a, const ul_htim_time_t *b)
45 ul_htim_diff_t d=(ul_htim_diff_t)(*a-*b);
50 #endif /*UL_HTIMER_WITH_MSTIME*/
52 #ifdef UL_HTIMER_WITH_NTPTIME
53 #include "orte/typedefs_defines_rtps.h"
54 #include "orte/defines_api.h"
55 typedef NtpTime ul_htim_time_t;
56 typedef NtpTime ul_htim_diff_t;
58 #define UL_HTIM_RESOLUTION 0x100000000
61 ul_htimer_cmp_fnc(const ul_htim_time_t *a, const ul_htim_time_t *b){
62 return NtpTimeCmp(*a,*b);
64 #endif /*UL_HTIMER_WITH_NTPTIME*/
66 /*===========================================================*/
67 /* Configuration of types for standard timer (ul_htimer) */
69 /* Additional, user defined fields for ul_htimer_t structure */
70 #define UL_HTIMER_USER_FIELDS
73 typedef uintptr_t ul_htimer_fnc_data_t;
75 typedef unsigned long ul_htimer_fnc_data_t;
77 /*typedef void *ul_htimer_fnc_data_t;*/
79 typedef void (ul_htimer_fnc_t)(ul_htimer_fnc_data_t data) UL_ATTR_REENTRANT;
81 /* The wrapper for ul_htimer_run_expired */
82 #define UL_HTIMER_FNC_CALL(queue, timer, pact_time) \
83 do{ timer->function(timer->data); } while(0)
90 #endif /* _UL_HTIMDEFS_H */