Linux-2.6.12-rc2
[cascardo/linux.git] / drivers / net / sk98lin / h / sktimer.h
1 /******************************************************************************
2  *
3  * Name:        sktimer.h
4  * Project:     Gigabit Ethernet Adapters, Event Scheduler Module
5  * Version:     $Revision: 1.11 $
6  * Date:        $Date: 2003/09/16 12:58:18 $
7  * Purpose:     Defines for the timer functions
8  *
9  ******************************************************************************/
10
11 /******************************************************************************
12  *
13  *      (C)Copyright 1998-2002 SysKonnect GmbH.
14  *      (C)Copyright 2002-2003 Marvell.
15  *
16  *      This program is free software; you can redistribute it and/or modify
17  *      it under the terms of the GNU General Public License as published by
18  *      the Free Software Foundation; either version 2 of the License, or
19  *      (at your option) any later version.
20  *
21  *      The information in this file is provided "AS IS" without warranty.
22  *
23  ******************************************************************************/
24
25 /*
26  * SKTIMER.H    contains all defines and types for the timer functions
27  */
28
29 #ifndef _SKTIMER_H_
30 #define _SKTIMER_H_
31
32 #include "h/skqueue.h"
33
34 /*
35  * SK timer
36  * - needed wherever a timer is used. Put this in your data structure
37  *   wherever you want.
38  */
39 typedef struct s_Timer SK_TIMER;
40
41 struct s_Timer {
42         SK_TIMER        *TmNext;        /* linked list */
43         SK_U32          TmClass;        /* Timer Event class */
44         SK_U32          TmEvent;        /* Timer Event value */
45         SK_EVPARA       TmPara;         /* Timer Event parameter */
46         SK_U32          TmDelta;        /* delta time */
47         int                     TmActive;       /* flag: active/inactive */
48 };
49
50 /*
51  * Timer control struct.
52  * - use in Adapters context name pAC->Tim
53  */
54 typedef struct s_TimCtrl {
55         SK_TIMER        *StQueue;       /* Head of Timer queue */
56 } SK_TIMCTRL;
57
58 extern void SkTimerInit(SK_AC *pAC, SK_IOC Ioc, int Level);
59 extern void SkTimerStop(SK_AC *pAC, SK_IOC Ioc, SK_TIMER *pTimer);
60 extern void SkTimerStart(SK_AC *pAC, SK_IOC Ioc, SK_TIMER *pTimer,
61         SK_U32 Time, SK_U32 Class, SK_U32 Event, SK_EVPARA Para);
62 extern void SkTimerDone(SK_AC *pAC, SK_IOC Ioc);
63 #endif  /* _SKTIMER_H_ */