1/* 2 * Copyright (c) 1997, 2000 Hellmuth Michaelis. All rights reserved. 3 * 4 * Redistribution and use in source and binary forms, with or without 5 * modification, are permitted provided that the following conditions 6 * are met: 7 * 1. Redistributions of source code must retain the above copyright 8 * notice, this list of conditions and the following disclaimer. 9 * 2. Redistributions in binary form must reproduce the above copyright 10 * notice, this list of conditions and the following disclaimer in the 11 * documentation and/or other materials provided with the distribution. 12 * 13 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 14 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 15 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 16 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 17 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 18 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 19 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 20 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 21 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 22 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 23 * SUCH DAMAGE. 24 * 25 *--------------------------------------------------------------------------- 26 * 27 * i4b_l4timer.c - timer and timeout handling for layer 4 28 * -------------------------------------------------------- 29 * 30 * $Id: i4b_l4timer.c,v 1.6 2005/12/11 12:25:06 christos Exp $ 31 * 32 * $FreeBSD$ 33 * 34 * last edit-date: [Fri Jan 5 11:33:47 2001] 35 * 36 *---------------------------------------------------------------------------*/ 37 38#include <sys/cdefs.h> 39__KERNEL_RCSID(0, "$NetBSD: i4b_l4timer.c,v 1.4.12.1 2005/03/04 16:53:45 skrll Exp $"); 40 41#include "isdn.h" 42 43#if NISDN > 0 44 45#include <sys/param.h> 46#include <sys/kernel.h> 47#include <sys/systm.h> 48#include <sys/mbuf.h> 49#include <sys/socket.h> 50#include <net/if.h> 51 52#if defined(__NetBSD__) && __NetBSD_Version__ >= 104230000 53#include <sys/callout.h> 54#endif 55 56#ifdef __FreeBSD__ 57#include <machine/i4b_debug.h> 58#include <machine/i4b_ioctl.h> 59#else 60#include <netisdn/i4b_debug.h> 61#include <netisdn/i4b_ioctl.h> 62#endif 63 64#include <netisdn/i4b_global.h> 65#include <netisdn/i4b_l3l4.h> 66#include <netisdn/i4b_mbuf.h> 67 68#include <netisdn/i4b_l4.h> 69 70/*---------------------------------------------------------------------------* 71 * timer T400 timeout function 72 *---------------------------------------------------------------------------*/ 73static void 74T400_timeout(call_desc_t *cd) 75{ 76 NDBGL4(L4_ERR, "cr = %d", cd->cr); 77} 78 79/*---------------------------------------------------------------------------* 80 * timer T400 start 81 *---------------------------------------------------------------------------*/ 82void 83T400_start(call_desc_t *cd) 84{ 85 if (cd->T400 == TIMER_ACTIVE) 86 return; 87 88 NDBGL4(L4_MSG, "cr = %d", cd->cr); 89 cd->T400 = TIMER_ACTIVE; 90 91 START_TIMER(cd->T400_callout, T400_timeout, cd, T400DEF); 92} 93 94/*---------------------------------------------------------------------------* 95 * timer T400 stop 96 *---------------------------------------------------------------------------*/ 97void 98T400_stop(call_desc_t *cd) 99{ 100 int s; 101 s = splnet(); 102 103 if(cd->T400 == TIMER_ACTIVE) 104 { 105 STOP_TIMER(cd->T400_callout, T400_timeout, cd); 106 cd->T400 = TIMER_IDLE; 107 } 108 splx(s); 109 NDBGL4(L4_MSG, "cr = %d", cd->cr); 110} 111 112#endif /* NISDN > 0 */ 113