]> rtime.felk.cvut.cz Git - ulut.git/blobdiff - ulut/ul_htimer.h
uLUt: incorporated changes to compile GAVL and GSA by SDCC.
[ulut.git] / ulut / ul_htimer.h
index ebe8f81735e1c5df2b2cd7edbb33eb7b7f21c39b..fb260592857dbc41a0ea930cbb7a5a9f285cc25a 100644 (file)
@@ -115,12 +115,12 @@ ul_htim_queue_inline_first(ul_htim_queue_t *queue, ul_htim_node_t **phtim)
 }
 #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); \
@@ -148,6 +148,11 @@ cust_prefix##_get_expire(cust_timer_t *timer){\
   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) \
 \
@@ -231,10 +236,10 @@ void ul_htimer_run_expired(ul_htimer_queue_t *queue, ul_htim_time_t *pact_time);
 #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;
@@ -302,7 +307,7 @@ static inline int ul_htime_sub(ul_htim_diff_t *diff, const ul_htim_time_t *htimt
   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;