]> rtime.felk.cvut.cz Git - ulut.git/blobdiff - ulut/ul_htimmstime.c
Silent some GCC warnings.
[ulut.git] / ulut / ul_htimmstime.c
index cc79e4237507acfa724a6e8a2de407e57f66b24a..2cc6bc8276bfb02dda7d1b1e4e7b24b9c27817d3 100644 (file)
@@ -4,7 +4,7 @@
   ul_htimmstime.c   - standard hierarchical timer for microsecond
                      time resolution
 
-  (C) Copyright 2003 by Pavel Pisa - Originator
+  (C) Copyright 2003-2009 by Pavel Pisa - Originator
 
   The uLan utilities library can be used, copied and modified under
   next licenses
@@ -77,8 +77,10 @@ void ul_mstime_update(void)
 void ul_mstime_init(void)
 {
   ul_mstime_update();
+  /*
   ul_mstime_base_offs=-ul_mstime_last;
   ul_mstime_update();
+  */
 }
 
 void
@@ -87,7 +89,7 @@ ul_get_log_time_str(char str[30])
   time_t log_time;
   struct tm *log_tm;
   time(&log_time);
-  
+
   log_tm=localtime(&log_time);
   sprintf(str,"%04d-%02d-%02d %02d:%02d:%02d",
           (int)log_tm->tm_year+1900,(int)log_tm->tm_mon+1,
@@ -97,9 +99,54 @@ ul_get_log_time_str(char str[30])
 
 void ul_compute_mstime_next(void)
 {
-  if(!ul_htimer_next_expire(&ul_root_htimer,&ul_mstime_next))
+  ul_htim_time_t htim_next;
+  if(ul_htimer_next_expire(&ul_root_htimer, &htim_next))
+    ul_htime2mstime(&ul_mstime_next, &htim_next);
+  else
     ul_mstime_next=ul_mstime_last+0x10000000;
 }
-  
+
+#ifdef UL_HTIMER_WITH_STD_TYPE
+
+static int ul_mstime_root_htimer_init(int options, void *context)
+{
+  (void)options;
+  (void)context;
+
+  ul_mstime_init();
+  return 0;
+}
+
+static ul_htimer_queue_t *ul_mstime_root_htimer_get(int options, void *context)
+{
+  (void)options;
+  (void)context;
+
+  return &ul_root_htimer;
+}
+
+static void ul_mstime_root_htimer_put(ul_htimer_queue_t *queue)
+{
+  (void)queue;
+}
+
+static int ul_mstime_root_htimer_current_time(int options, ul_htim_time_t *htimer_time)
+{
+  ul_mstime_t mstime;
+  (options);
+
+  ul_mstime_now(&mstime);
+  ul_mstime2htime(htimer_time, &mstime);
+  return 0;
+}
+
+ul_root_htimer_ops_t ul_mstime_root_htimer_ops = {
+  .timer_root_init = ul_mstime_root_htimer_init,
+  .timer_root_get = ul_mstime_root_htimer_get,
+  .timer_root_put = ul_mstime_root_htimer_put,
+  .current_time = ul_mstime_root_htimer_current_time,
+};
+
+#endif /*UL_HTIMER_WITH_STD_TYPE*/
 
 #endif /*UL_HTIMER_WITH_MSTIME*/