11da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 21da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* 31da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 4475be4d85a274d0961593db41cf85689db1d583cJoe Perches Copyright (c) Eicon Networks, 2002. 51da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 6475be4d85a274d0961593db41cf85689db1d583cJoe Perches This source file is supplied for the use with 7475be4d85a274d0961593db41cf85689db1d583cJoe Perches Eicon Networks range of DIVA Server Adapters. 81da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 9475be4d85a274d0961593db41cf85689db1d583cJoe Perches Eicon File Revision : 2.1 101da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 11475be4d85a274d0961593db41cf85689db1d583cJoe Perches This program is free software; you can redistribute it and/or modify 12475be4d85a274d0961593db41cf85689db1d583cJoe Perches it under the terms of the GNU General Public License as published by 13475be4d85a274d0961593db41cf85689db1d583cJoe Perches the Free Software Foundation; either version 2, or (at your option) 14475be4d85a274d0961593db41cf85689db1d583cJoe Perches any later version. 151da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 16475be4d85a274d0961593db41cf85689db1d583cJoe Perches This program is distributed in the hope that it will be useful, 17475be4d85a274d0961593db41cf85689db1d583cJoe Perches but WITHOUT ANY WARRANTY OF ANY KIND WHATSOEVER INCLUDING ANY 18475be4d85a274d0961593db41cf85689db1d583cJoe Perches implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 19475be4d85a274d0961593db41cf85689db1d583cJoe Perches See the GNU General Public License for more details. 201da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 21475be4d85a274d0961593db41cf85689db1d583cJoe Perches You should have received a copy of the GNU General Public License 22475be4d85a274d0961593db41cf85689db1d583cJoe Perches along with this program; if not, write to the Free Software 23475be4d85a274d0961593db41cf85689db1d583cJoe Perches Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 241da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 251da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds */ 26475be4d85a274d0961593db41cf85689db1d583cJoe Perches#ifndef _DI_DEFS_ 271da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define _DI_DEFS_ 28475be4d85a274d0961593db41cf85689db1d583cJoe Perches/* typedefs for our data structures */ 291da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldstypedef struct get_name_s GET_NAME; 301da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* The entity_s structure is used to pass all 311da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds parameters between application and IDI */ 321da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldstypedef struct entity_s ENTITY; 331da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldstypedef struct buffers_s BUFFERS; 341da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldstypedef struct postcall_s POSTCALL; 351da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldstypedef struct get_para_s GET_PARA; 361da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define BOARD_NAME_LENGTH 9 371da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define IDI_CALL_LINK_T 381da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define IDI_CALL_ENTITY_T 391da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* typedef void ( * IDI_CALL)(ENTITY *); */ 401da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* -------------------------------------------------------- 41475be4d85a274d0961593db41cf85689db1d583cJoe Perches IDI_CALL 421da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds -------------------------------------------------------- */ 43475be4d85a274d0961593db41cf85689db1d583cJoe Perchestypedef void (IDI_CALL_LINK_T *IDI_CALL)(ENTITY IDI_CALL_ENTITY_T *); 441da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldstypedef struct { 45475be4d85a274d0961593db41cf85689db1d583cJoe Perches word length; /* length of data/parameter field */ 46475be4d85a274d0961593db41cf85689db1d583cJoe Perches byte P[270]; /* data/parameter field */ 471da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds} DBUFFER; 481da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsstruct get_name_s { 49475be4d85a274d0961593db41cf85689db1d583cJoe Perches word command; /* command = 0x0100 */ 50475be4d85a274d0961593db41cf85689db1d583cJoe Perches byte name[BOARD_NAME_LENGTH]; 511da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds}; 521da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsstruct postcall_s { 53475be4d85a274d0961593db41cf85689db1d583cJoe Perches word command; /* command = 0x0300 */ 54475be4d85a274d0961593db41cf85689db1d583cJoe Perches word dummy; /* not used */ 55475be4d85a274d0961593db41cf85689db1d583cJoe Perches void (*callback)(void *); /* call back */ 56475be4d85a274d0961593db41cf85689db1d583cJoe Perches void *context; /* context pointer */ 571da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds}; 581da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define REQ_PARA 0x0600 /* request command line parameters */ 591da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define REQ_PARA_LEN 1 /* number of data bytes */ 601da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define L1_STARTUP_DOWN_POS 0 /* '-y' command line parameter in......*/ 611da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define L1_STARTUP_DOWN_MSK 0x01 /* first byte position (index 0) with value 0x01 */ 621da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsstruct get_para_s { 63475be4d85a274d0961593db41cf85689db1d583cJoe Perches word command; /* command = 0x0600 */ 64475be4d85a274d0961593db41cf85689db1d583cJoe Perches byte len; /* max length of para field in bytes */ 65475be4d85a274d0961593db41cf85689db1d583cJoe Perches byte para[REQ_PARA_LEN]; /* parameter field */ 661da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds}; 671da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsstruct buffers_s { 68475be4d85a274d0961593db41cf85689db1d583cJoe Perches word PLength; 69475be4d85a274d0961593db41cf85689db1d583cJoe Perches byte *P; 701da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds}; 711da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsstruct entity_s { 72475be4d85a274d0961593db41cf85689db1d583cJoe Perches byte Req; /* pending request */ 73475be4d85a274d0961593db41cf85689db1d583cJoe Perches byte Rc; /* return code received */ 74475be4d85a274d0961593db41cf85689db1d583cJoe Perches byte Ind; /* indication received */ 75475be4d85a274d0961593db41cf85689db1d583cJoe Perches byte ReqCh; /* channel of current Req */ 76475be4d85a274d0961593db41cf85689db1d583cJoe Perches byte RcCh; /* channel of current Rc */ 77475be4d85a274d0961593db41cf85689db1d583cJoe Perches byte IndCh; /* channel of current Ind */ 78475be4d85a274d0961593db41cf85689db1d583cJoe Perches byte Id; /* ID used by this entity */ 79475be4d85a274d0961593db41cf85689db1d583cJoe Perches byte GlobalId; /* reserved field */ 80475be4d85a274d0961593db41cf85689db1d583cJoe Perches byte XNum; /* number of X-buffers */ 81475be4d85a274d0961593db41cf85689db1d583cJoe Perches byte RNum; /* number of R-buffers */ 82475be4d85a274d0961593db41cf85689db1d583cJoe Perches BUFFERS *X; /* pointer to X-buffer list */ 83475be4d85a274d0961593db41cf85689db1d583cJoe Perches BUFFERS *R; /* pointer to R-buffer list */ 84475be4d85a274d0961593db41cf85689db1d583cJoe Perches word RLength; /* length of current R-data */ 85475be4d85a274d0961593db41cf85689db1d583cJoe Perches DBUFFER *RBuffer; /* buffer of current R-data */ 86475be4d85a274d0961593db41cf85689db1d583cJoe Perches byte RNR; /* receive not ready flag */ 87475be4d85a274d0961593db41cf85689db1d583cJoe Perches byte complete; /* receive complete status */ 88475be4d85a274d0961593db41cf85689db1d583cJoe Perches IDI_CALL callback; 89475be4d85a274d0961593db41cf85689db1d583cJoe Perches word user[2]; 90475be4d85a274d0961593db41cf85689db1d583cJoe Perches /* fields used by the driver internally */ 91475be4d85a274d0961593db41cf85689db1d583cJoe Perches byte No; /* entity number */ 92475be4d85a274d0961593db41cf85689db1d583cJoe Perches byte reserved2; /* reserved field */ 93475be4d85a274d0961593db41cf85689db1d583cJoe Perches byte More; /* R/X More flags */ 94475be4d85a274d0961593db41cf85689db1d583cJoe Perches byte MInd; /* MDATA coding for this ID */ 95475be4d85a274d0961593db41cf85689db1d583cJoe Perches byte XCurrent; /* current transmit buffer */ 96475be4d85a274d0961593db41cf85689db1d583cJoe Perches byte RCurrent; /* current receive buffer */ 97475be4d85a274d0961593db41cf85689db1d583cJoe Perches word XOffset; /* offset in x-buffer */ 98475be4d85a274d0961593db41cf85689db1d583cJoe Perches word ROffset; /* offset in r-buffer */ 991da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds}; 1001da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldstypedef struct { 101475be4d85a274d0961593db41cf85689db1d583cJoe Perches byte type; 102475be4d85a274d0961593db41cf85689db1d583cJoe Perches byte channels; 103475be4d85a274d0961593db41cf85689db1d583cJoe Perches word features; 104475be4d85a274d0961593db41cf85689db1d583cJoe Perches IDI_CALL request; 1051da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds} DESCRIPTOR; 106475be4d85a274d0961593db41cf85689db1d583cJoe Perches/* descriptor type field coding */ 1071da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define IDI_ADAPTER_S 1 1081da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define IDI_ADAPTER_PR 2 1091da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define IDI_ADAPTER_DIVA 3 1101da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define IDI_ADAPTER_MAESTRA 4 1111da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define IDI_VADAPTER 0x40 1121da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define IDI_DRIVER 0x80 1131da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define IDI_DADAPTER 0xfd 1141da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define IDI_DIDDPNP 0xfe 1151da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define IDI_DIMAINT 0xff 116475be4d85a274d0961593db41cf85689db1d583cJoe Perches/* Hardware IDs ISA PNP */ 1171da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define HW_ID_DIVA_PRO 3 /* same as IDI_ADAPTER_DIVA */ 1181da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define HW_ID_MAESTRA 4 /* same as IDI_ADAPTER_MAESTRA */ 1191da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define HW_ID_PICCOLA 5 1201da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define HW_ID_DIVA_PRO20 6 1211da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define HW_ID_DIVA20 7 1221da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define HW_ID_DIVA_PRO20_U 8 1231da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define HW_ID_DIVA20_U 9 1241da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define HW_ID_DIVA30 10 1251da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define HW_ID_DIVA30_U 11 126475be4d85a274d0961593db41cf85689db1d583cJoe Perches/* Hardware IDs PCI */ 1271da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define HW_ID_EICON_PCI 0x1133 1281da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define HW_ID_SIEMENS_PCI 0x8001 /* unused SubVendor ID for Siemens Cornet-N cards */ 1291da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define HW_ID_PROTTYPE_CORNETN 0x0014 /* SubDevice ID for Siemens Cornet-N cards */ 1301da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define HW_ID_FUJITSU_SIEMENS_PCI 0x110A /* SubVendor ID for Fujitsu Siemens */ 1311da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define HW_ID_GS03_PCI 0x0021 /* SubDevice ID for Fujitsu Siemens ISDN S0 card */ 1321da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define HW_ID_DIVA_PRO20_PCI 0xe001 1331da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define HW_ID_DIVA20_PCI 0xe002 1341da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define HW_ID_DIVA_PRO20_PCI_U 0xe003 1351da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define HW_ID_DIVA20_PCI_U 0xe004 1361da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define HW_ID_DIVA201_PCI 0xe005 1371da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define HW_ID_DIVA_CT_ST 0xe006 1381da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define HW_ID_DIVA_CT_U 0xe007 1391da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define HW_ID_DIVA_CTL_ST 0xe008 1401da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define HW_ID_DIVA_CTL_U 0xe009 1411da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define HW_ID_DIVA_ISDN_V90_PCI 0xe00a 1421da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define HW_ID_DIVA202_PCI_ST 0xe00b 1431da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define HW_ID_DIVA202_PCI_U 0xe00c 1441da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define HW_ID_DIVA_PRO30_PCI 0xe00d 1451da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define HW_ID_MAESTRA_PCI 0xe010 1461da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define HW_ID_MAESTRAQ_PCI 0xe012 1471da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define HW_ID_DSRV_Q8M_V2_PCI 0xe013 1481da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define HW_ID_MAESTRAP_PCI 0xe014 1491da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define HW_ID_DSRV_P30M_V2_PCI 0xe015 1501da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define HW_ID_DSRV_VOICE_Q8M_PCI 0xe016 1511da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define HW_ID_DSRV_VOICE_Q8M_V2_PCI 0xe017 1521da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define HW_ID_DSRV_B2M_V2_PCI 0xe018 1531da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define HW_ID_DSRV_VOICE_P30M_V2_PCI 0xe019 1541da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define HW_ID_DSRV_B2F_PCI 0xe01a 1551da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define HW_ID_DSRV_VOICE_B2M_V2_PCI 0xe01b 156475be4d85a274d0961593db41cf85689db1d583cJoe Perches/* Hardware IDs USB */ 1571da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define EICON_USB_VENDOR_ID 0x071D 1581da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define HW_ID_DIVA_USB_REV1 0x1000 1591da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define HW_ID_DIVA_USB_REV2 0x1003 1601da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define HW_ID_TELEDAT_SURF_USB_REV2 0x1004 1611da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define HW_ID_TELEDAT_SURF_USB_REV1 0x2000 1621da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* -------------------------------------------------------------------------- 163475be4d85a274d0961593db41cf85689db1d583cJoe Perches Adapter array change notification framework 164475be4d85a274d0961593db41cf85689db1d583cJoe Perches -------------------------------------------------------------------------- */ 165475be4d85a274d0961593db41cf85689db1d583cJoe Perchestypedef void (IDI_CALL_LINK_T *didd_adapter_change_callback_t)(void IDI_CALL_ENTITY_T *context, DESCRIPTOR *adapter, int removal); 1661da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* -------------------------------------------------------------------------- */ 1671da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define DI_VOICE 0x0 /* obsolete define */ 1681da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define DI_FAX3 0x1 1691da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define DI_MODEM 0x2 1701da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define DI_POST 0x4 1711da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define DI_V110 0x8 1721da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define DI_V120 0x10 1731da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define DI_POTS 0x20 1741da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define DI_CODEC 0x40 1751da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define DI_MANAGE 0x80 1761da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define DI_V_42 0x0100 1771da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define DI_EXTD_FAX 0x0200 /* Extended FAX (ECM, 2D, T.6, Polling) */ 1781da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define DI_AT_PARSER 0x0400 /* Build-in AT Parser in the L2 */ 1791da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define DI_VOICE_OVER_IP 0x0800 /* Voice over IP support */ 180475be4d85a274d0961593db41cf85689db1d583cJoe Perchestypedef void (IDI_CALL_LINK_T *_IDI_CALL)(void *, ENTITY *); 181475be4d85a274d0961593db41cf85689db1d583cJoe Perches#endif 182