summaryrefslogtreecommitdiff
path: root/sysdep/unix/timer.h
diff options
context:
space:
mode:
Diffstat (limited to 'sysdep/unix/timer.h')
-rw-r--r--sysdep/unix/timer.h91
1 files changed, 33 insertions, 58 deletions
diff --git a/sysdep/unix/timer.h b/sysdep/unix/timer.h
index aa3ed143..1c4f6e3b 100644
--- a/sysdep/unix/timer.h
+++ b/sysdep/unix/timer.h
@@ -11,58 +11,38 @@
#include <time.h>
-#include "lib/resource.h"
-
-typedef time_t bird_clock_t; /* Use instead of time_t */
-
-typedef struct timer {
- resource r;
- void (*hook)(struct timer *);
- void *data;
- uint randomize; /* Amount of randomization */
- uint recurrent; /* Timer recurrence */
- node n; /* Internal link */
- bird_clock_t expires; /* 0=inactive */
-} timer;
-
-timer *tm_new(pool *);
-void tm_start(timer *, uint after);
-void tm_stop(timer *);
-void tm_dump_all(void);
-
-extern bird_clock_t now; /* Relative, monotonic time in seconds */
-extern bird_clock_t now_real; /* Time in seconds since fixed known epoch */
-extern bird_clock_t boot_time;
-
-static inline int
-tm_active(timer *t)
-{
- return t->expires != 0;
-}
-
-static inline bird_clock_t
-tm_remains(timer *t)
-{
- return t->expires ? t->expires - now : 0;
-}
-
-static inline void
-tm_start_max(timer *t, bird_clock_t after)
-{
- bird_clock_t rem = tm_remains(t);
- tm_start(t, (rem > after) ? rem : after);
-}
-
-static inline timer *
-tm_new_set(pool *p, void (*hook)(struct timer *), void *data, uint rand, uint rec)
-{
- timer *t = tm_new(p);
- t->hook = hook;
- t->data = data;
- t->randomize = rand;
- t->recurrent = rec;
- return t;
-}
+#include "lib/birdlib.h"
+#include "lib/timer.h"
+
+
+typedef struct timer2 timer;
+
+static inline timer *tm_new(pool *p)
+{ return (void *) tm2_new(p); }
+
+static inline void tm_start(timer *t, bird_clock_t after)
+{ tm2_start(t, after S_); }
+
+static inline void tm_stop(timer *t)
+{ tm2_stop(t); }
+
+// void tm_dump_all(void);
+
+//extern bird_clock_t now; /* Relative, monotonic time in seconds */
+//extern bird_clock_t now_real; /* Time in seconds since fixed known epoch */
+//extern bird_clock_t boot_time;
+
+static inline int tm_active(timer *t)
+{ return tm2_active(t); }
+
+static inline bird_clock_t tm_remains(timer *t)
+{ return tm2_remains(t) TO_S; }
+
+static inline void tm_start_max(timer *t, bird_clock_t after)
+{ tm2_start_max(t, after S_); }
+
+static inline timer * tm_new_set(pool *p, void (*hook)(timer *), void *data, uint rand, uint rec)
+{ return tm2_new_init(p, hook, data, rec S_, rand S_); }
struct timeformat {
@@ -77,12 +57,7 @@ bird_clock_t tm_parse_datetime(char *); /* Convert date to bird_clock_t */
void
tm_format_datetime(char *x, struct timeformat *fmt_spec, bird_clock_t t);
-#define TIME_T_IS_64BIT (sizeof(time_t) == 8)
-#define TIME_T_IS_SIGNED ((time_t) -1 < 0)
+#define TIME_INFINITY ((s64) 0x7fffffffffffffff)
-#define TIME_INFINITY \
- ((time_t) (TIME_T_IS_SIGNED ? \
- (TIME_T_IS_64BIT ? 0x7fffffffffffffff : 0x7fffffff): \
- (TIME_T_IS_64BIT ? 0xffffffffffffffff : 0xffffffff)))
#endif