1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26#ifndef __DIVA_SYNC__H
27#define __DIVA_SYNC__H
28#define IDI_SYNC_REQ_REMOVE 0x00
29#define IDI_SYNC_REQ_GET_NAME 0x01
30#define IDI_SYNC_REQ_GET_SERIAL 0x02
31#define IDI_SYNC_REQ_SET_POSTCALL 0x03
32#define IDI_SYNC_REQ_GET_XLOG 0x04
33#define IDI_SYNC_REQ_GET_FEATURES 0x05
34#define IDI_SYNC_REQ_USB_REGISTER 0x06
35#define IDI_SYNC_REQ_USB_RELEASE 0x07
36#define IDI_SYNC_REQ_USB_ADD_DEVICE 0x08
37#define IDI_SYNC_REQ_USB_START_DEVICE 0x09
38#define IDI_SYNC_REQ_USB_STOP_DEVICE 0x0A
39#define IDI_SYNC_REQ_USB_REMOVE_DEVICE 0x0B
40#define IDI_SYNC_REQ_GET_CARDTYPE 0x0C
41#define IDI_SYNC_REQ_GET_DBG_XLOG 0x0D
42#define DIVA_USB
43#define DIVA_USB_REQ 0xAC
44#define DIVA_USB_TEST 0xAB
45#define DIVA_USB_ADD_ADAPTER 0xAC
46#define DIVA_USB_REMOVE_ADAPTER 0xAD
47#define IDI_SYNC_REQ_SERIAL_HOOK 0x80
48#define IDI_SYNC_REQ_XCHANGE_STATUS 0x81
49#define IDI_SYNC_REQ_USB_HOOK 0x82
50#define IDI_SYNC_REQ_PORTDRV_HOOK 0x83
51#define IDI_SYNC_REQ_SLI 0x84
52#define IDI_SYNC_REQ_RECONFIGURE 0x85
53#define IDI_SYNC_REQ_RESET 0x86
54#define IDI_SYNC_REQ_GET_85X_DEVICE_DATA 0x87
55#define IDI_SYNC_REQ_LOCK_85X 0x88
56#define IDI_SYNC_REQ_DIVA_85X_USB_DATA_EXCHANGE 0x99
57#define IDI_SYNC_REQ_DIPORT_EXCHANGE_REQ 0x98
58#define IDI_SYNC_REQ_GET_85X_EXT_PORT_TYPE 0xA0
59
60#define IDI_SYNC_REQ_XDI_GET_EXTENDED_FEATURES 0x92
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75typedef struct _diva_xdi_get_extended_xdi_features {
76 dword buffer_length_in_bytes;
77 byte *features;
78} diva_xdi_get_extended_xdi_features_t;
79
80
81
82#define DIVA_XDI_EXTENDED_FEATURES_VALID 0x01
83#define DIVA_XDI_EXTENDED_FEATURE_CMA 0x02
84#define DIVA_XDI_EXTENDED_FEATURE_SDRAM_BAR 0x04
85#define DIVA_XDI_EXTENDED_FEATURE_CAPI_PRMS 0x08
86#define DIVA_XDI_EXTENDED_FEATURE_NO_CANCEL_RC 0x10
87#define DIVA_XDI_EXTENDED_FEATURE_RX_DMA 0x20
88#define DIVA_XDI_EXTENDED_FEATURE_MANAGEMENT_DMA 0x40
89#define DIVA_XDI_EXTENDED_FEATURE_WIDE_ID 0x80
90#define DIVA_XDI_EXTENDED_FEATURES_MAX_SZ 1
91
92#define IDI_SYNC_REQ_XDI_GET_ADAPTER_SDRAM_BAR 0x93
93typedef struct _diva_xdi_get_adapter_sdram_bar {
94 dword bar;
95} diva_xdi_get_adapter_sdram_bar_t;
96
97#define IDI_SYNC_REQ_XDI_GET_CAPI_PARAMS 0x94
98
99
100
101typedef struct _diva_xdi_get_capi_parameters {
102 dword structure_length;
103 byte flag_dynamic_l1_down;
104 byte group_optimization_enabled;
105} diva_xdi_get_capi_parameters_t;
106
107#define IDI_SYNC_REQ_XDI_GET_LOGICAL_ADAPTER_NUMBER 0x95
108
109
110
111
112
113
114
115typedef struct _diva_xdi_get_logical_adapter_number {
116 dword logical_adapter_number;
117 dword controller;
118 dword total_controllers;
119} diva_xdi_get_logical_adapter_number_s_t;
120
121#define IDI_SYNC_REQ_UP1DM_OPERATION 0x96
122
123#define IDI_SYNC_REQ_DMA_DESCRIPTOR_OPERATION 0x97
124#define IDI_SYNC_REQ_DMA_DESCRIPTOR_ALLOC 0x01
125#define IDI_SYNC_REQ_DMA_DESCRIPTOR_FREE 0x02
126typedef struct _diva_xdi_dma_descriptor_operation {
127 int operation;
128 int descriptor_number;
129 void *descriptor_address;
130 dword descriptor_magic;
131} diva_xdi_dma_descriptor_operation_t;
132
133#define IDI_SYNC_REQ_DIDD_REGISTER_ADAPTER_NOTIFY 0x01
134#define IDI_SYNC_REQ_DIDD_REMOVE_ADAPTER_NOTIFY 0x02
135#define IDI_SYNC_REQ_DIDD_ADD_ADAPTER 0x03
136#define IDI_SYNC_REQ_DIDD_REMOVE_ADAPTER 0x04
137#define IDI_SYNC_REQ_DIDD_READ_ADAPTER_ARRAY 0x05
138#define IDI_SYNC_REQ_DIDD_GET_CFG_LIB_IFC 0x10
139typedef struct _diva_didd_adapter_notify {
140 dword handle;
141 void *callback;
142 void *context;
143} diva_didd_adapter_notify_t;
144typedef struct _diva_didd_add_adapter {
145 void *descriptor;
146} diva_didd_add_adapter_t;
147typedef struct _diva_didd_remove_adapter {
148 IDI_CALL p_request;
149} diva_didd_remove_adapter_t;
150typedef struct _diva_didd_read_adapter_array {
151 void *buffer;
152 dword length;
153} diva_didd_read_adapter_array_t;
154typedef struct _diva_didd_get_cfg_lib_ifc {
155 void *ifc;
156} diva_didd_get_cfg_lib_ifc_t;
157
158#define IDI_SYNC_REQ_XDI_GET_STREAM 0x91
159#define DIVA_XDI_SYNCHRONOUS_SERVICE 0x01
160#define DIVA_XDI_DMA_SERVICE 0x02
161#define DIVA_XDI_AUTO_SERVICE 0x03
162#define DIVA_ISTREAM_COMPLETE_NOTIFY 0
163#define DIVA_ISTREAM_COMPLETE_READ 1
164#define DIVA_ISTREAM_COMPLETE_WRITE 2
165typedef struct _diva_xdi_stream_interface {
166 unsigned char Id;
167 unsigned char provided_service;
168 unsigned char requested_service;
169 void *xdi_context;
170 void *client_context;
171 int (*write)(void *context,
172 int Id,
173 void *data,
174 int length,
175 int final,
176 byte usr1,
177 byte usr2);
178 int (*read)(void *context,
179 int Id,
180 void *data,
181 int max_length,
182 int *final,
183 byte *usr1,
184 byte *usr2);
185 int (*complete)(void *client_context,
186 int Id,
187 int what,
188 void *data,
189 int length,
190 int *final);
191} diva_xdi_stream_interface_t;
192
193
194
195
196typedef struct
197{ unsigned char LineState;
198#define SERIAL_GSM_CELL 0x01
199 unsigned char CardState;
200 unsigned char IsdnState;
201 unsigned char HookState;
202#define SERIAL_ON_HOOK 0x02
203} SERIAL_STATE;
204typedef int (*SERIAL_INT_CB)(void *Context);
205typedef int (*SERIAL_DPC_CB)(void *Context);
206typedef unsigned char (*SERIAL_I_SYNC)(void *Context);
207typedef struct
208{
209 unsigned char Req;
210 unsigned char Rc;
211 unsigned char Function;
212#define SERIAL_HOOK_ATTACH 0x81
213#define SERIAL_HOOK_STATUS 0x82
214#define SERIAL_HOOK_I_SYNC 0x83
215#define SERIAL_HOOK_NOECHO 0x84
216#define SERIAL_HOOK_RING 0x85
217#define SERIAL_HOOK_DETACH 0x8f
218 unsigned char Flags;
219
220 SERIAL_INT_CB InterruptHandler;
221 SERIAL_DPC_CB DeferredHandler;
222 void *HandlerContext;
223
224 unsigned long IoBase;
225 SERIAL_STATE State;
226
227 SERIAL_I_SYNC SyncFunction;
228 void *SyncContext;
229 unsigned char SyncResult;
230} SERIAL_HOOK;
231
232
233
234
235typedef struct
236{
237 unsigned char Req;
238 unsigned char Rc;
239#define DRIVER_STATUS_BOOT 0xA1
240#define DRIVER_STATUS_INIT_DEV 0xA2
241#define DRIVER_STATUS_RUNNING 0xA3
242#define DRIVER_STATUS_SHUTDOWN 0xAF
243#define DRIVER_STATUS_TRAPPED 0xAE
244 unsigned char wmpStatus;
245 unsigned char idiStatus;
246 unsigned long wizProto;
247
248 unsigned long cardType;
249 unsigned long nt2;
250 unsigned long permanent;
251 unsigned long stableL2;
252 unsigned long tei;
253#define CRC4_MASK 0x00000003
254#define L1_TRISTATE_MASK 0x00000004
255#define WATCHDOG_MASK 0x00000008
256#define NO_ORDER_CHECK_MASK 0x00000010
257#define LOW_CHANNEL_MASK 0x00000020
258#define NO_HSCX30_MASK 0x00000040
259#define SET_BOARD 0x00001000
260#define SET_CRC4 0x00030000
261#define SET_L1_TRISTATE 0x00040000
262#define SET_WATCHDOG 0x00080000
263#define SET_NO_ORDER_CHECK 0x00100000
264#define SET_LOW_CHANNEL 0x00200000
265#define SET_NO_HSCX30 0x00400000
266#define SET_MODE 0x00800000
267#define SET_PROTO 0x02000000
268#define SET_CARDTYPE 0x04000000
269#define SET_NT2 0x08000000
270#define SET_PERMANENT 0x10000000
271#define SET_STABLEL2 0x20000000
272#define SET_TEI 0x40000000
273#define SET_NUMBERLEN 0x80000000
274 unsigned long Flag;
275 unsigned long NumberLen;
276 union {
277 struct {
278 unsigned long SerialNumber;
279 char *pCardname;
280 } board;
281 struct {
282 void *pRawResources;
283 void *pXlatResources;
284 } res;
285 struct {
286#define GLARE_RESOLVE_MASK 0x00000001
287#define DID_MASK 0x00000002
288#define BEARER_CAP_MASK 0x0000000c
289#define SET_GLARE_RESOLVE 0x00010000
290#define SET_DID 0x00020000
291#define SET_BEARER_CAP 0x000c0000
292 unsigned long Flag;
293 unsigned short DigitTimeout;
294 unsigned short AnswerDelay;
295 } rbs;
296 struct {
297#define CALL_REF_LENGTH1_MASK 0x00000001
298#define BRI_CHANNEL_ID_MASK 0x00000002
299#define SET_CALL_REF_LENGTH 0x00010000
300#define SET_BRI_CHANNEL_ID 0x00020000
301 unsigned long Flag;
302 } qsig;
303 struct {
304#define SET_SPID1 0x00010000
305#define SET_NUMBER1 0x00020000
306#define SET_SUBADDRESS1 0x00040000
307#define SET_SPID2 0x00100000
308#define SET_NUMBER2 0x00200000
309#define SET_SUBADDRESS2 0x00400000
310#define MASK_SET 0xffff0000
311 unsigned long Flag;
312 unsigned char *pBuffer;
313 } isdnNo;
314 }
315 parms
316 ;
317} isdnProps;
318
319
320
321typedef void (*PORTDRV_HOOK_CB)(void *Context, int Plug);
322typedef struct
323{
324 unsigned char Req;
325 unsigned char Rc;
326 unsigned char Function;
327 unsigned char Flags;
328 PORTDRV_HOOK_CB Callback;
329 void *Context;
330 unsigned long Info;
331} PORTDRV_HOOK;
332
333#define SLI_INSTALL (0xA1)
334#define SLI_UNINSTALL (0xA2)
335typedef int (*SLIENTRYPOINT)(void *p3SignalAPI, void *pContext);
336typedef struct
337{
338 unsigned char Req;
339 unsigned char Rc;
340 unsigned char Function;
341 unsigned char Flags;
342 SLIENTRYPOINT Callback;
343 void *Context;
344 unsigned long Info;
345} SLIENTRYPOINT_REQ;
346
347
348
349
350typedef int (*USB_SEND_REQ)(unsigned char PipeIndex, unsigned char Type, void *Data, int sizeData);
351typedef int (*USB_START_DEV)(void *Adapter, void *Ipac);
352
353typedef void (*USB_RECV_NOTIFY)(void *Ipac, void *msg);
354typedef void (*USB_XMIT_NOTIFY)(void *Ipac, unsigned char PipeIndex);
355
356
357
358
359
360
361
362typedef union
363{ ENTITY Entity;
364 struct
365 {
366 unsigned char Req;
367 unsigned char Rc;
368 } Request;
369 struct
370 { unsigned char Req;
371 unsigned char Rc;
372 unsigned char name[BOARD_NAME_LENGTH];
373 } GetName;
374 struct
375 { unsigned char Req;
376 unsigned char Rc;
377 unsigned long serial;
378 } GetSerial;
379 struct
380 { unsigned char Req;
381 unsigned char Rc;
382 unsigned long lineIdx;
383 } GetLineIdx;
384 struct
385 { unsigned char Req;
386 unsigned char Rc;
387 unsigned long cardtype;
388 } GetCardType;
389 struct
390 { unsigned short command;
391 unsigned short dummy;
392 IDI_CALL callback;
393 ENTITY *contxt;
394 } PostCall;
395 struct
396 { unsigned char Req;
397 unsigned char Rc;
398 unsigned char pcm[1];
399 } GetXlog;
400 struct
401 { unsigned char Req;
402 unsigned char Rc;
403 unsigned short features;
404 } GetFeatures;
405 SERIAL_HOOK SerialHook;
406
407 struct
408 { unsigned char Req;
409 unsigned char Rc;
410 USB_SEND_REQ UsbSendRequest;
411
412
413 USB_RECV_NOTIFY usb_recv;
414
415 USB_XMIT_NOTIFY usb_xmit;
416
417 USB_START_DEV UsbStartDevice;
418 IDI_CALL callback;
419 ENTITY *contxt;
420 void **ipac_ptr;
421 } Usb_Msg_old;
422
423 struct
424 { unsigned char Req;
425 unsigned char Rc;
426 USB_SEND_REQ pUsbSendRequest;
427
428
429 USB_RECV_NOTIFY p_usb_recv;
430
431 USB_XMIT_NOTIFY p_usb_xmit;
432
433 void *ipac_ptr;
434 } Usb_Msg;
435 PORTDRV_HOOK PortdrvHook;
436 SLIENTRYPOINT_REQ sliEntryPointReq;
437 struct {
438 unsigned char Req;
439 unsigned char Rc;
440 diva_xdi_stream_interface_t info;
441 } xdi_stream_info;
442 struct {
443 unsigned char Req;
444 unsigned char Rc;
445 diva_xdi_get_extended_xdi_features_t info;
446 } xdi_extended_features;
447 struct {
448 unsigned char Req;
449 unsigned char Rc;
450 diva_xdi_get_adapter_sdram_bar_t info;
451 } xdi_sdram_bar;
452 struct {
453 unsigned char Req;
454 unsigned char Rc;
455 diva_xdi_get_capi_parameters_t info;
456 } xdi_capi_prms;
457 struct {
458 ENTITY e;
459 diva_didd_adapter_notify_t info;
460 } didd_notify;
461 struct {
462 ENTITY e;
463 diva_didd_add_adapter_t info;
464 } didd_add_adapter;
465 struct {
466 ENTITY e;
467 diva_didd_remove_adapter_t info;
468 } didd_remove_adapter;
469 struct {
470 ENTITY e;
471 diva_didd_read_adapter_array_t info;
472 } didd_read_adapter_array;
473 struct {
474 ENTITY e;
475 diva_didd_get_cfg_lib_ifc_t info;
476 } didd_get_cfg_lib_ifc;
477 struct {
478 unsigned char Req;
479 unsigned char Rc;
480 diva_xdi_get_logical_adapter_number_s_t info;
481 } xdi_logical_adapter_number;
482 struct {
483 unsigned char Req;
484 unsigned char Rc;
485 diva_xdi_dma_descriptor_operation_t info;
486 } xdi_dma_descriptor_operation;
487} IDI_SYNC_REQ;
488
489#endif
490