1*37241896SHiroki Sato /* $FreeBSD$ */ 2*37241896SHiroki Sato /* $KAME: timer.h,v 1.5 2002/05/31 13:30:38 jinmei Exp $ */ 3*37241896SHiroki Sato 4*37241896SHiroki Sato /* 5*37241896SHiroki Sato * Copyright (C) 1998 WIDE Project. 6*37241896SHiroki Sato * All rights reserved. 7*37241896SHiroki Sato * 8*37241896SHiroki Sato * Redistribution and use in source and binary forms, with or without 9*37241896SHiroki Sato * modification, are permitted provided that the following conditions 10*37241896SHiroki Sato * are met: 11*37241896SHiroki Sato * 1. Redistributions of source code must retain the above copyright 12*37241896SHiroki Sato * notice, this list of conditions and the following disclaimer. 13*37241896SHiroki Sato * 2. Redistributions in binary form must reproduce the above copyright 14*37241896SHiroki Sato * notice, this list of conditions and the following disclaimer in the 15*37241896SHiroki Sato * documentation and/or other materials provided with the distribution. 16*37241896SHiroki Sato * 3. Neither the name of the project nor the names of its contributors 17*37241896SHiroki Sato * may be used to endorse or promote products derived from this software 18*37241896SHiroki Sato * without specific prior written permission. 19*37241896SHiroki Sato * 20*37241896SHiroki Sato * THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND 21*37241896SHiroki Sato * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 22*37241896SHiroki Sato * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 23*37241896SHiroki Sato * ARE DISCLAIMED. IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE 24*37241896SHiroki Sato * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 25*37241896SHiroki Sato * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 26*37241896SHiroki Sato * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 27*37241896SHiroki Sato * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 28*37241896SHiroki Sato * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 29*37241896SHiroki Sato * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 30*37241896SHiroki Sato * SUCH DAMAGE. 31*37241896SHiroki Sato */ 32*37241896SHiroki Sato 33*37241896SHiroki Sato #define SSBUFLEN 1024 34*37241896SHiroki Sato #define MILLION 1000000 35*37241896SHiroki Sato 36*37241896SHiroki Sato /* a < b */ 37*37241896SHiroki Sato #define TIMEVAL_LT(a, b) \ 38*37241896SHiroki Sato (((a)->tv_sec < (b)->tv_sec) || \ 39*37241896SHiroki Sato (((a)->tv_sec == (b)->tv_sec) && \ 40*37241896SHiroki Sato ((a)->tv_usec < (b)->tv_usec))) 41*37241896SHiroki Sato 42*37241896SHiroki Sato /* a <= b */ 43*37241896SHiroki Sato #define TIMEVAL_LEQ(a, b) \ 44*37241896SHiroki Sato (((a)->tv_sec < (b)->tv_sec) || \ 45*37241896SHiroki Sato (((a)->tv_sec == (b)->tv_sec) && \ 46*37241896SHiroki Sato ((a)->tv_usec <= (b)->tv_usec))) 47*37241896SHiroki Sato 48*37241896SHiroki Sato #define TIMEVAL_EQUAL(a,b) \ 49*37241896SHiroki Sato (((a)->tv_sec == (b)->tv_sec) && \ 50*37241896SHiroki Sato ((a)->tv_usec == (b)->tv_usec)) 51*37241896SHiroki Sato 52*37241896SHiroki Sato struct timeval *rtadvd_timer_rest(struct rtadvd_timer *); 53*37241896SHiroki Sato void TIMEVAL_ADD(struct timeval *, struct timeval *, 54*37241896SHiroki Sato struct timeval *); 55*37241896SHiroki Sato void TIMEVAL_SUB(struct timeval *, struct timeval *, 56*37241896SHiroki Sato struct timeval *); 57*37241896SHiroki Sato char *sec2str(uint32_t, char *buf); 58