}
#endif /*UL_HTIMER_WITH_HPTREE*/
-#define UL_HTIMER_DEC(cust_prefix, cust_queue_t, cust_timer_t, \
+#define UL_HTIMER_DEC_SCOPE(cust_scope, cust_prefix, cust_queue_t, cust_timer_t, \
cust_queue_field, cust_timer_field) \
\
-void cust_prefix##_init_queue(cust_queue_t *queue);\
-cust_timer_t *cust_prefix##_cut_expired(cust_queue_t *queue, ul_htim_time_t *act_time);\
-int cust_prefix##_next_expire(cust_queue_t *queue, ul_htim_time_t *act_time);\
+cust_scope void cust_prefix##_init_queue(cust_queue_t *queue);\
+cust_scope cust_timer_t *cust_prefix##_cut_expired(cust_queue_t *queue, ul_htim_time_t *act_time);\
+cust_scope int cust_prefix##_next_expire(cust_queue_t *queue, ul_htim_time_t *act_time);\
static inline int \
cust_prefix##_add(cust_queue_t *queue, cust_timer_t *timer){ \
return ul_htim_queue_insert(&queue->cust_queue_field, &timer->cust_timer_field); \
return timer->cust_timer_field.expires;\
}
+#define UL_HTIMER_DEC(cust_prefix, cust_queue_t, cust_timer_t, \
+ cust_queue_field, cust_timer_field) \
+ UL_HTIMER_DEC_SCOPE(extern, cust_prefix, cust_queue_t, cust_timer_t, \
+ cust_queue_field, cust_timer_field)
+
#define UL_HTIMER_IMP(cust_prefix, cust_queue_t, cust_timer_t, \
cust_queue_field, cust_timer_field) \
\
#ifdef UL_HTIMER_WITH_STD_TYPE
typedef struct ul_root_htimer_ops_t {
- int (*timer_root_init)(int options, void *context);
- ul_htimer_queue_t *(*timer_root_get)(int options, void *context);
- void (*timer_root_put)(ul_htimer_queue_t *queue);
- int (*current_time)(int options, ul_htim_time_t *htimer_time);
+ int (*timer_root_init)(int options, void *context) UL_ATTR_REENTRANT;
+ ul_htimer_queue_t *(*timer_root_get)(int options, void *context) UL_ATTR_REENTRANT;
+ void (*timer_root_put)(ul_htimer_queue_t *queue) UL_ATTR_REENTRANT;
+ int (*current_time)(int options, ul_htim_time_t *htimer_time) UL_ATTR_REENTRANT;
} ul_root_htimer_ops_t;
extern ul_root_htimer_ops_t *ul_root_htimer_ops;
return 0;
}
-static inline int ul_htime_add(ul_htim_diff_t *sum, const ul_htim_time_t *htimfrom,
+static inline int ul_htime_add(ul_htim_time_t *sum, const ul_htim_time_t *htimfrom,
const ul_htim_diff_t *diff)
{
*sum = *htimfrom + *diff;