diff options
Diffstat (limited to 'drivers/net/sk98lin/h/skqueue.h')
-rw-r--r-- | drivers/net/sk98lin/h/skqueue.h | 94 |
1 files changed, 94 insertions, 0 deletions
diff --git a/drivers/net/sk98lin/h/skqueue.h b/drivers/net/sk98lin/h/skqueue.h new file mode 100644 index 000000000000..2ec40d4fdf60 --- /dev/null +++ b/drivers/net/sk98lin/h/skqueue.h | |||
@@ -0,0 +1,94 @@ | |||
1 | /****************************************************************************** | ||
2 | * | ||
3 | * Name: skqueue.h | ||
4 | * Project: Gigabit Ethernet Adapters, Event Scheduler Module | ||
5 | * Version: $Revision: 1.16 $ | ||
6 | * Date: $Date: 2003/09/16 12:50:32 $ | ||
7 | * Purpose: Defines for the Event queue | ||
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 | * SKQUEUE.H contains all defines and types for the event queue | ||
27 | */ | ||
28 | |||
29 | #ifndef _SKQUEUE_H_ | ||
30 | #define _SKQUEUE_H_ | ||
31 | |||
32 | |||
33 | /* | ||
34 | * define the event classes to be served | ||
35 | */ | ||
36 | #define SKGE_DRV 1 /* Driver Event Class */ | ||
37 | #define SKGE_RLMT 2 /* RLMT Event Class */ | ||
38 | #define SKGE_I2C 3 /* I2C Event Class */ | ||
39 | #define SKGE_PNMI 4 /* PNMI Event Class */ | ||
40 | #define SKGE_CSUM 5 /* Checksum Event Class */ | ||
41 | #define SKGE_HWAC 6 /* Hardware Access Event Class */ | ||
42 | |||
43 | #define SKGE_SWT 9 /* Software Timer Event Class */ | ||
44 | #define SKGE_LACP 10 /* LACP Aggregation Event Class */ | ||
45 | #define SKGE_RSF 11 /* RSF Aggregation Event Class */ | ||
46 | #define SKGE_MARKER 12 /* MARKER Aggregation Event Class */ | ||
47 | #define SKGE_FD 13 /* FD Distributor Event Class */ | ||
48 | |||
49 | /* | ||
50 | * define event queue as circular buffer | ||
51 | */ | ||
52 | #define SK_MAX_EVENT 64 | ||
53 | |||
54 | /* | ||
55 | * Parameter union for the Para stuff | ||
56 | */ | ||
57 | typedef union u_EvPara { | ||
58 | void *pParaPtr; /* Parameter Pointer */ | ||
59 | SK_U64 Para64; /* Parameter 64bit version */ | ||
60 | SK_U32 Para32[2]; /* Parameter Array of 32bit parameters */ | ||
61 | } SK_EVPARA; | ||
62 | |||
63 | /* | ||
64 | * Event Queue | ||
65 | * skqueue.c | ||
66 | * events are class/value pairs | ||
67 | * class is addressee, e.g. RLMT, PNMI etc. | ||
68 | * value is command, e.g. line state change, ring op change etc. | ||
69 | */ | ||
70 | typedef struct s_EventElem { | ||
71 | SK_U32 Class; /* Event class */ | ||
72 | SK_U32 Event; /* Event value */ | ||
73 | SK_EVPARA Para; /* Event parameter */ | ||
74 | } SK_EVENTELEM; | ||
75 | |||
76 | typedef struct s_Queue { | ||
77 | SK_EVENTELEM EvQueue[SK_MAX_EVENT]; | ||
78 | SK_EVENTELEM *EvPut; | ||
79 | SK_EVENTELEM *EvGet; | ||
80 | } SK_QUEUE; | ||
81 | |||
82 | extern void SkEventInit(SK_AC *pAC, SK_IOC Ioc, int Level); | ||
83 | extern void SkEventQueue(SK_AC *pAC, SK_U32 Class, SK_U32 Event, | ||
84 | SK_EVPARA Para); | ||
85 | extern int SkEventDispatcher(SK_AC *pAC, SK_IOC Ioc); | ||
86 | |||
87 | |||
88 | /* Define Error Numbers and messages */ | ||
89 | #define SKERR_Q_E001 (SK_ERRBASE_QUEUE+0) | ||
90 | #define SKERR_Q_E001MSG "Event queue overflow" | ||
91 | #define SKERR_Q_E002 (SKERR_Q_E001+1) | ||
92 | #define SKERR_Q_E002MSG "Undefined event class" | ||
93 | #endif /* _SKQUEUE_H_ */ | ||
94 | |||