/* * Linux ethernet bridge * * Authors: * Lennert Buytenhek * * $Id: br_private_timer.h,v 1.1 2000/02/18 16:47:13 davem Exp $ * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version * 2 of the License, or (at your option) any later version. */ #ifndef _BR_PRIVATE_TIMER_H #define _BR_PRIVATE_TIMER_H struct br_timer { int running; unsigned long expires; }; extern __inline__ void br_timer_clear(struct br_timer *t) { t->running = 0; } extern __inline__ unsigned long br_timer_get_residue(struct br_timer *t) { if (t->running) return jiffies - t->expires; return 0; } extern __inline__ void br_timer_set(struct br_timer *t, unsigned long x) { t->expires = x; t->running = 1; } extern __inline__ int br_timer_is_running(struct br_timer *t) { return t->running; } extern __inline__ int br_timer_has_expired(struct br_timer *t, unsigned long to) { return t->running && time_after_eq(jiffies, t->expires + to); } #endif