c11 safe string handling support
[vpp.git] / src / vppinfra / timer.c
index 85149dc..e1e32eb 100644 (file)
 #include <vppinfra/timer.h>
 #include <vppinfra/error.h>
 
+#ifndef HZ
+#define HZ 1000
+#endif
+
 typedef struct
 {
   f64 time;
@@ -112,14 +116,14 @@ timer_interrupt (int signum)
          vector of pending timers. */
       t = vec_end (timers) - 1;
 
-      ASSERT (now >= 0 && finite (now));
+      ASSERT (now >= 0 && isfinite (now));
 
       /* Time difference between when timer goes off and now. */
       dt = t->time - now;
 
       /* If timer is within threshold of going off
          call user's callback. */
-      if (dt <= time_resolution && finite (dt))
+      if (dt <= time_resolution && isfinite (dt))
        {
          _vec_len (timers) -= 1;
          (*t->func) (t->arg, -dt);
@@ -128,7 +132,7 @@ timer_interrupt (int signum)
        {
          /* Set timer for to go off in future. */
          struct itimerval itv;
-         memset (&itv, 0, sizeof (itv));
+         clib_memset (&itv, 0, sizeof (itv));
          f64_to_tv (dt, &itv.it_value);
          if (setitimer (ITIMER_REAL, &itv, 0) < 0)
            clib_unix_error ("sititmer");
@@ -142,7 +146,7 @@ timer_block (sigset_t * save)
 {
   sigset_t block_timer;
 
-  memset (&block_timer, 0, sizeof (block_timer));
+  clib_memset (&block_timer, 0, sizeof (block_timer));
   sigaddset (&block_timer, TIMER_SIGNAL);
   sigprocmask (SIG_BLOCK, &block_timer, save);
 }
@@ -171,7 +175,7 @@ timer_call (timer_func_t * func, any arg, f64 dt)
       /* Initialize time_resolution before first call to timer_interrupt */
       time_resolution = 0.75 / (f64) HZ;
 
-      memset (&sa, 0, sizeof (sa));
+      clib_memset (&sa, 0, sizeof (sa));
       sa.sa_handler = timer_interrupt;
 
       if (sigaction (TIMER_SIGNAL, &sa, 0) < 0)