diff options
Diffstat (limited to 'drivers/isdn/hardware/eicon/kst_ifc.h')
-rw-r--r-- | drivers/isdn/hardware/eicon/kst_ifc.h | 336 |
1 files changed, 336 insertions, 0 deletions
diff --git a/drivers/isdn/hardware/eicon/kst_ifc.h b/drivers/isdn/hardware/eicon/kst_ifc.h new file mode 100644 index 000000000000..203189a010c2 --- /dev/null +++ b/drivers/isdn/hardware/eicon/kst_ifc.h | |||
@@ -0,0 +1,336 @@ | |||
1 | /* | ||
2 | * | ||
3 | Copyright (c) Eicon Networks, 2000. | ||
4 | * | ||
5 | This source file is supplied for the use with | ||
6 | Eicon Networks range of DIVA Server Adapters. | ||
7 | * | ||
8 | Eicon File Revision : 1.9 | ||
9 | * | ||
10 | This program is free software; you can redistribute it and/or modify | ||
11 | it under the terms of the GNU General Public License as published by | ||
12 | the Free Software Foundation; either version 2, or (at your option) | ||
13 | any later version. | ||
14 | * | ||
15 | This program is distributed in the hope that it will be useful, | ||
16 | but WITHOUT ANY WARRANTY OF ANY KIND WHATSOEVER INCLUDING ANY | ||
17 | implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | ||
18 | See the GNU General Public License for more details. | ||
19 | * | ||
20 | You should have received a copy of the GNU General Public License | ||
21 | along with this program; if not, write to the Free Software | ||
22 | Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | ||
23 | * | ||
24 | */ | ||
25 | #ifndef __DIVA_EICON_TRACE_API__ | ||
26 | #define __DIVA_EICON_TRACE_API__ | ||
27 | |||
28 | #define DIVA_TRACE_LINE_TYPE_LEN 64 | ||
29 | #define DIVA_TRACE_IE_LEN 64 | ||
30 | #define DIVA_TRACE_FAX_PRMS_LEN 128 | ||
31 | |||
32 | typedef struct _diva_trace_ie { | ||
33 | byte length; | ||
34 | byte data[DIVA_TRACE_IE_LEN]; | ||
35 | } diva_trace_ie_t; | ||
36 | |||
37 | /* | ||
38 | Structure used to represent "State\\BX\\Modem" directory | ||
39 | to user. | ||
40 | */ | ||
41 | typedef struct _diva_trace_modem_state { | ||
42 | dword ChannelNumber; | ||
43 | |||
44 | dword Event; | ||
45 | |||
46 | dword Norm; | ||
47 | |||
48 | dword Options; /* Options received from Application */ | ||
49 | |||
50 | dword TxSpeed; | ||
51 | dword RxSpeed; | ||
52 | |||
53 | dword RoundtripMsec; | ||
54 | |||
55 | dword SymbolRate; | ||
56 | |||
57 | int RxLeveldBm; | ||
58 | int EchoLeveldBm; | ||
59 | |||
60 | dword SNRdb; | ||
61 | dword MAE; | ||
62 | |||
63 | dword LocalRetrains; | ||
64 | dword RemoteRetrains; | ||
65 | dword LocalResyncs; | ||
66 | dword RemoteResyncs; | ||
67 | |||
68 | dword DiscReason; | ||
69 | |||
70 | } diva_trace_modem_state_t; | ||
71 | |||
72 | /* | ||
73 | Representation of "State\\BX\\FAX" directory | ||
74 | */ | ||
75 | typedef struct _diva_trace_fax_state { | ||
76 | dword ChannelNumber; | ||
77 | dword Event; | ||
78 | dword Page_Counter; | ||
79 | dword Features; | ||
80 | char Station_ID[DIVA_TRACE_FAX_PRMS_LEN]; | ||
81 | char Subaddress[DIVA_TRACE_FAX_PRMS_LEN]; | ||
82 | char Password[DIVA_TRACE_FAX_PRMS_LEN]; | ||
83 | dword Speed; | ||
84 | dword Resolution; | ||
85 | dword Paper_Width; | ||
86 | dword Paper_Length; | ||
87 | dword Scanline_Time; | ||
88 | dword Disc_Reason; | ||
89 | dword dummy; | ||
90 | } diva_trace_fax_state_t; | ||
91 | |||
92 | /* | ||
93 | Structure used to represent Interface State in the abstract | ||
94 | and interface/D-channel protocol independent form. | ||
95 | */ | ||
96 | typedef struct _diva_trace_interface_state { | ||
97 | char Layer1[DIVA_TRACE_LINE_TYPE_LEN]; | ||
98 | char Layer2[DIVA_TRACE_LINE_TYPE_LEN]; | ||
99 | } diva_trace_interface_state_t; | ||
100 | |||
101 | typedef struct _diva_incoming_call_statistics { | ||
102 | dword Calls; | ||
103 | dword Connected; | ||
104 | dword User_Busy; | ||
105 | dword Call_Rejected; | ||
106 | dword Wrong_Number; | ||
107 | dword Incompatible_Dst; | ||
108 | dword Out_of_Order; | ||
109 | dword Ignored; | ||
110 | } diva_incoming_call_statistics_t; | ||
111 | |||
112 | typedef struct _diva_outgoing_call_statistics { | ||
113 | dword Calls; | ||
114 | dword Connected; | ||
115 | dword User_Busy; | ||
116 | dword No_Answer; | ||
117 | dword Wrong_Number; | ||
118 | dword Call_Rejected; | ||
119 | dword Other_Failures; | ||
120 | } diva_outgoing_call_statistics_t; | ||
121 | |||
122 | typedef struct _diva_modem_call_statistics { | ||
123 | dword Disc_Normal; | ||
124 | dword Disc_Unspecified; | ||
125 | dword Disc_Busy_Tone; | ||
126 | dword Disc_Congestion; | ||
127 | dword Disc_Carr_Wait; | ||
128 | dword Disc_Trn_Timeout; | ||
129 | dword Disc_Incompat; | ||
130 | dword Disc_Frame_Rej; | ||
131 | dword Disc_V42bis; | ||
132 | } diva_modem_call_statistics_t; | ||
133 | |||
134 | typedef struct _diva_fax_call_statistics { | ||
135 | dword Disc_Normal; | ||
136 | dword Disc_Not_Ident; | ||
137 | dword Disc_No_Response; | ||
138 | dword Disc_Retries; | ||
139 | dword Disc_Unexp_Msg; | ||
140 | dword Disc_No_Polling; | ||
141 | dword Disc_Training; | ||
142 | dword Disc_Unexpected; | ||
143 | dword Disc_Application; | ||
144 | dword Disc_Incompat; | ||
145 | dword Disc_No_Command; | ||
146 | dword Disc_Long_Msg; | ||
147 | dword Disc_Supervisor; | ||
148 | dword Disc_SUB_SEP_PWD; | ||
149 | dword Disc_Invalid_Msg; | ||
150 | dword Disc_Page_Coding; | ||
151 | dword Disc_App_Timeout; | ||
152 | dword Disc_Unspecified; | ||
153 | } diva_fax_call_statistics_t; | ||
154 | |||
155 | typedef struct _diva_prot_statistics { | ||
156 | dword X_Frames; | ||
157 | dword X_Bytes; | ||
158 | dword X_Errors; | ||
159 | dword R_Frames; | ||
160 | dword R_Bytes; | ||
161 | dword R_Errors; | ||
162 | } diva_prot_statistics_t; | ||
163 | |||
164 | typedef struct _diva_ifc_statistics { | ||
165 | diva_incoming_call_statistics_t inc; | ||
166 | diva_outgoing_call_statistics_t outg; | ||
167 | diva_modem_call_statistics_t mdm; | ||
168 | diva_fax_call_statistics_t fax; | ||
169 | diva_prot_statistics_t b1; | ||
170 | diva_prot_statistics_t b2; | ||
171 | diva_prot_statistics_t d1; | ||
172 | diva_prot_statistics_t d2; | ||
173 | } diva_ifc_statistics_t; | ||
174 | |||
175 | /* | ||
176 | Structure used to represent "State\\BX" directory | ||
177 | to user. | ||
178 | */ | ||
179 | typedef struct _diva_trace_line_state { | ||
180 | dword ChannelNumber; | ||
181 | |||
182 | char Line[DIVA_TRACE_LINE_TYPE_LEN]; | ||
183 | |||
184 | char Framing[DIVA_TRACE_LINE_TYPE_LEN]; | ||
185 | |||
186 | char Layer2[DIVA_TRACE_LINE_TYPE_LEN]; | ||
187 | char Layer3[DIVA_TRACE_LINE_TYPE_LEN]; | ||
188 | |||
189 | char RemoteAddress[DIVA_TRACE_LINE_TYPE_LEN]; | ||
190 | char RemoteSubAddress[DIVA_TRACE_LINE_TYPE_LEN]; | ||
191 | |||
192 | char LocalAddress[DIVA_TRACE_LINE_TYPE_LEN]; | ||
193 | char LocalSubAddress[DIVA_TRACE_LINE_TYPE_LEN]; | ||
194 | |||
195 | diva_trace_ie_t call_BC; | ||
196 | diva_trace_ie_t call_HLC; | ||
197 | diva_trace_ie_t call_LLC; | ||
198 | |||
199 | dword Charges; | ||
200 | |||
201 | dword CallReference; | ||
202 | |||
203 | dword LastDisconnecCause; | ||
204 | |||
205 | char UserID[DIVA_TRACE_LINE_TYPE_LEN]; | ||
206 | |||
207 | diva_trace_modem_state_t modem; | ||
208 | diva_trace_fax_state_t fax; | ||
209 | |||
210 | diva_trace_interface_state_t* pInterface; | ||
211 | |||
212 | diva_ifc_statistics_t* pInterfaceStat; | ||
213 | |||
214 | } diva_trace_line_state_t; | ||
215 | |||
216 | #define DIVA_SUPER_TRACE_NOTIFY_LINE_CHANGE ('l') | ||
217 | #define DIVA_SUPER_TRACE_NOTIFY_MODEM_CHANGE ('m') | ||
218 | #define DIVA_SUPER_TRACE_NOTIFY_FAX_CHANGE ('f') | ||
219 | #define DIVA_SUPER_TRACE_INTERFACE_CHANGE ('i') | ||
220 | #define DIVA_SUPER_TRACE_NOTIFY_STAT_CHANGE ('s') | ||
221 | #define DIVA_SUPER_TRACE_NOTIFY_MDM_STAT_CHANGE ('M') | ||
222 | #define DIVA_SUPER_TRACE_NOTIFY_FAX_STAT_CHANGE ('F') | ||
223 | |||
224 | struct _diva_strace_library_interface; | ||
225 | typedef void (*diva_trace_channel_state_change_proc_t)(void* user_context, | ||
226 | struct _diva_strace_library_interface* hLib, | ||
227 | int Adapter, | ||
228 | diva_trace_line_state_t* channel, int notify_subject); | ||
229 | typedef void (*diva_trace_channel_trace_proc_t)(void* user_context, | ||
230 | struct _diva_strace_library_interface* hLib, | ||
231 | int Adapter, void* xlog_buffer, int length); | ||
232 | typedef void (*diva_trace_error_proc_t)(void* user_context, | ||
233 | struct _diva_strace_library_interface* hLib, | ||
234 | int Adapter, | ||
235 | int error, const char* file, int line); | ||
236 | |||
237 | /* | ||
238 | This structure creates interface from user to library | ||
239 | */ | ||
240 | typedef struct _diva_trace_library_user_interface { | ||
241 | void* user_context; | ||
242 | diva_trace_channel_state_change_proc_t notify_proc; | ||
243 | diva_trace_channel_trace_proc_t trace_proc; | ||
244 | diva_trace_error_proc_t error_notify_proc; | ||
245 | } diva_trace_library_user_interface_t; | ||
246 | |||
247 | /* | ||
248 | Interface from Library to User | ||
249 | */ | ||
250 | typedef int (*DivaSTraceLibraryStart_proc_t)(void* hLib); | ||
251 | typedef int (*DivaSTraceLibraryFinit_proc_t)(void* hLib); | ||
252 | typedef int (*DivaSTraceMessageInput_proc_t)(void* hLib); | ||
253 | typedef void* (*DivaSTraceGetHandle_proc_t)(void* hLib); | ||
254 | |||
255 | /* | ||
256 | Turn Audio Tap trace on/off | ||
257 | Channel should be in the range 1 ... Number of Channels | ||
258 | */ | ||
259 | typedef int (*DivaSTraceSetAudioTap_proc_t)(void* hLib, int Channel, int on); | ||
260 | |||
261 | /* | ||
262 | Turn B-channel trace on/off | ||
263 | Channel should be in the range 1 ... Number of Channels | ||
264 | */ | ||
265 | typedef int (*DivaSTraceSetBChannel_proc_t)(void* hLib, int Channel, int on); | ||
266 | |||
267 | /* | ||
268 | Turn D-channel (Layer1/Layer2/Layer3) trace on/off | ||
269 | Layer1 - All D-channel frames received/sent over the interface | ||
270 | inclusive Layer 2 headers, Layer 2 frames and TEI management frames | ||
271 | Layer2 - Events from LAPD protocol instance with SAPI of signalling protocol | ||
272 | Layer3 - All D-channel frames addressed to assigned to the card TEI and | ||
273 | SAPI of signalling protocol, and signalling protocol events. | ||
274 | */ | ||
275 | typedef int (*DivaSTraceSetDChannel_proc_t)(void* hLib, int on); | ||
276 | |||
277 | /* | ||
278 | Get overall card statistics | ||
279 | */ | ||
280 | typedef int (*DivaSTraceGetOutgoingCallStatistics_proc_t)(void* hLib); | ||
281 | typedef int (*DivaSTraceGetIncomingCallStatistics_proc_t)(void* hLib); | ||
282 | typedef int (*DivaSTraceGetModemStatistics_proc_t)(void* hLib); | ||
283 | typedef int (*DivaSTraceGetFaxStatistics_proc_t)(void* hLib); | ||
284 | typedef int (*DivaSTraceGetBLayer1Statistics_proc_t)(void* hLib); | ||
285 | typedef int (*DivaSTraceGetBLayer2Statistics_proc_t)(void* hLib); | ||
286 | typedef int (*DivaSTraceGetDLayer1Statistics_proc_t)(void* hLib); | ||
287 | typedef int (*DivaSTraceGetDLayer2Statistics_proc_t)(void* hLib); | ||
288 | |||
289 | /* | ||
290 | Call control | ||
291 | */ | ||
292 | typedef int (*DivaSTraceClearCall_proc_t)(void* hLib, int Channel); | ||
293 | |||
294 | typedef struct _diva_strace_library_interface { | ||
295 | void* hLib; | ||
296 | DivaSTraceLibraryStart_proc_t DivaSTraceLibraryStart; | ||
297 | DivaSTraceLibraryStart_proc_t DivaSTraceLibraryStop; | ||
298 | DivaSTraceLibraryFinit_proc_t DivaSTraceLibraryFinit; | ||
299 | DivaSTraceMessageInput_proc_t DivaSTraceMessageInput; | ||
300 | DivaSTraceGetHandle_proc_t DivaSTraceGetHandle; | ||
301 | DivaSTraceSetAudioTap_proc_t DivaSTraceSetAudioTap; | ||
302 | DivaSTraceSetBChannel_proc_t DivaSTraceSetBChannel; | ||
303 | DivaSTraceSetDChannel_proc_t DivaSTraceSetDChannel; | ||
304 | DivaSTraceSetDChannel_proc_t DivaSTraceSetInfo; | ||
305 | DivaSTraceGetOutgoingCallStatistics_proc_t \ | ||
306 | DivaSTraceGetOutgoingCallStatistics; | ||
307 | DivaSTraceGetIncomingCallStatistics_proc_t \ | ||
308 | DivaSTraceGetIncomingCallStatistics; | ||
309 | DivaSTraceGetModemStatistics_proc_t \ | ||
310 | DivaSTraceGetModemStatistics; | ||
311 | DivaSTraceGetFaxStatistics_proc_t \ | ||
312 | DivaSTraceGetFaxStatistics; | ||
313 | DivaSTraceGetBLayer1Statistics_proc_t \ | ||
314 | DivaSTraceGetBLayer1Statistics; | ||
315 | DivaSTraceGetBLayer2Statistics_proc_t \ | ||
316 | DivaSTraceGetBLayer2Statistics; | ||
317 | DivaSTraceGetDLayer1Statistics_proc_t \ | ||
318 | DivaSTraceGetDLayer1Statistics; | ||
319 | DivaSTraceGetDLayer2Statistics_proc_t \ | ||
320 | DivaSTraceGetDLayer2Statistics; | ||
321 | DivaSTraceClearCall_proc_t DivaSTraceClearCall; | ||
322 | } diva_strace_library_interface_t; | ||
323 | |||
324 | /* | ||
325 | Create and return Library interface | ||
326 | */ | ||
327 | diva_strace_library_interface_t* DivaSTraceLibraryCreateInstance (int Adapter, | ||
328 | const diva_trace_library_user_interface_t* user_proc, | ||
329 | byte* pmem); | ||
330 | dword DivaSTraceGetMemotyRequirement (int channels); | ||
331 | |||
332 | #define DIVA_MAX_ADAPTERS 64 | ||
333 | #define DIVA_MAX_LINES 32 | ||
334 | |||
335 | #endif | ||
336 | |||