diff options
author | Martin Mares <mj@ucw.cz> | 1998-05-24 16:40:29 +0200 |
---|---|---|
committer | Martin Mares <mj@ucw.cz> | 1998-05-24 16:40:29 +0200 |
commit | a2ccbb0b97c1eac3a68f01b7786822a66aaaefa2 (patch) | |
tree | 211ea73def9469071d42aac19313bef26b791e63 | |
parent | 235562ca5ac1db2e2ea026bff42c8c2a898b44db (diff) | |
download | bird-a2ccbb0b97c1eac3a68f01b7786822a66aaaefa2.tar bird-a2ccbb0b97c1eac3a68f01b7786822a66aaaefa2.zip |
Implemented timers. Using bird_clock_t for absolute time from now...
-rw-r--r-- | nest/route.h | 4 | ||||
-rw-r--r-- | sysdep/config.h | 5 | ||||
-rw-r--r-- | sysdep/unix/Modules | 2 | ||||
-rw-r--r-- | sysdep/unix/timer.h | 22 |
4 files changed, 25 insertions, 8 deletions
diff --git a/nest/route.h b/nest/route.h index e191a5f..255d31a 100644 --- a/nest/route.h +++ b/nest/route.h @@ -10,6 +10,7 @@ #define _BIRD_ROUTE_H_ #include "lib/resource.h" +#include "lib/timer.h" struct protocol; @@ -106,7 +107,7 @@ typedef struct rte { byte flags; /* Flags (REF_...) */ byte pflags; /* Protocol-specific flags */ word pref; /* Route preference */ - u32 lastmod; /* Last modified (time) */ + bird_clock_t lastmod; /* Last modified */ union { /* Protocol-dependent data (metrics etc.) */ #ifdef CONFIG_STATIC struct { @@ -144,6 +145,7 @@ rte *rte_get_temp(struct rtattr *); void rte_update(net *net, rte *new); void rte_dump(rte *); void rt_dump(rtable *); +void rt_dump_all(void); /* * Route Attributes diff --git a/sysdep/config.h b/sysdep/config.h index c9c1393..65a0110 100644 --- a/sysdep/config.h +++ b/sysdep/config.h @@ -40,6 +40,11 @@ typedef u16 word; #define CPU_STRUCT_ALIGN 4 +/* Timers */ + +#undef TIME_T_IS_64BIT +#define TIME_T_IS_SIGNED + /* Protocol options */ #define CONFIG_STATIC diff --git a/sysdep/unix/Modules b/sysdep/unix/Modules index 450f579..95b80b3 100644 --- a/sysdep/unix/Modules +++ b/sysdep/unix/Modules @@ -1,3 +1,5 @@ log.c main.c timer.h +io.c +unix.h diff --git a/sysdep/unix/timer.h b/sysdep/unix/timer.h index 506e3c9..0589ec0 100644 --- a/sysdep/unix/timer.h +++ b/sysdep/unix/timer.h @@ -1,5 +1,5 @@ /* - * BIRD Timers + * BIRD -- Unix Timers * * (c) 1998 Martin Mares <mj@ucw.cz> * @@ -9,18 +9,26 @@ #ifndef _BIRD_TIMER_H_ #define _BIRD_TIMER_H_ +#include <sys/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; - /* internal fields should be here */ + resource r; + void (*hook)(struct timer *); + void *data; + unsigned randomize; /* Amount of randomization */ + node n; /* Internal link */ + clock_t expires; /* 0=inactive */ } timer; -timer *tm_new(pool *, void (*hook)(timer *), void *data); +timer *tm_new(pool *); void tm_start(timer *, unsigned after); void tm_stop(timer *); -void tm_trigger(timer *); +void tm_dump_all(void); + +extern clock_t now; #endif |