X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=lib%2Ftimer.c;h=1c3c0f488a5b660e1a24f1e4e50892106e706492;hb=42bb6c72b58ba99e59e740f8cca4e201d7efaa02;hp=b640a7be89f0bb2ca1dbf4cf5cd3d2dff4f3ade0;hpb=8650b075065d03db50dac26f33bb0ec3c485d044;p=openvswitch diff --git a/lib/timer.c b/lib/timer.c index b640a7be..1c3c0f48 100644 --- a/lib/timer.c +++ b/lib/timer.c @@ -40,3 +40,16 @@ timer_wait(const struct timer *timer) poll_timer_wait_until(timer->t); } } + +/* Returns the time at which 'timer' was set with 'duration'. Infinite timers + * were enabled at time LLONG_MAX. Manually expired timers were enabled at + * LLONG_MIN. */ +long long int +timer_enabled_at(const struct timer *timer, long long int duration) +{ + switch (timer->t) { + case LLONG_MAX: return LLONG_MAX; + case LLONG_MIN: return LLONG_MIN; + default: return timer->t - duration; + } +}