di_defs.h revision 1da177e4c3f41524e886b7f1b8a0c1fc7321cac
11da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 21da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* 31da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 41da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds Copyright (c) Eicon Networks, 2002. 51da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 61da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds This source file is supplied for the use with 71da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds Eicon Networks range of DIVA Server Adapters. 81da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 91da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds Eicon File Revision : 2.1 101da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 111da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds This program is free software; you can redistribute it and/or modify 121da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds it under the terms of the GNU General Public License as published by 131da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds the Free Software Foundation; either version 2, or (at your option) 141da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds any later version. 151da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 161da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds This program is distributed in the hope that it will be useful, 171da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds but WITHOUT ANY WARRANTY OF ANY KIND WHATSOEVER INCLUDING ANY 181da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 191da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds See the GNU General Public License for more details. 201da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 211da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds You should have received a copy of the GNU General Public License 221da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds along with this program; if not, write to the Free Software 231da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 241da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 251da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds */ 261da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#ifndef _DI_DEFS_ 271da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define _DI_DEFS_ 281da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds /* 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/* -------------------------------------------------------- 411da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds IDI_CALL 421da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds -------------------------------------------------------- */ 431da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldstypedef void (IDI_CALL_LINK_T * IDI_CALL)(ENTITY IDI_CALL_ENTITY_T *); 441da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldstypedef struct { 451da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds word length; /* length of data/parameter field */ 461da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds byte P[270]; /* data/parameter field */ 471da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds} DBUFFER; 481da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsstruct get_name_s { 491da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds word command; /* command = 0x0100 */ 501da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds byte name[BOARD_NAME_LENGTH]; 511da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds}; 521da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsstruct postcall_s { 531da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds word command; /* command = 0x0300 */ 541da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds word dummy; /* not used */ 551da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds void ( * callback)(void *); /* call back */ 561da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 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 { 631da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds word command; /* command = 0x0600 */ 641da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds byte len; /* max length of para field in bytes */ 651da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds byte para[REQ_PARA_LEN]; /* parameter field */ 661da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds}; 671da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsstruct buffers_s { 681da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds word PLength; 691da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds byte * P; 701da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds}; 711da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsstruct entity_s { 721da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds byte Req; /* pending request */ 731da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds byte Rc; /* return code received */ 741da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds byte Ind; /* indication received */ 751da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds byte ReqCh; /* channel of current Req */ 761da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds byte RcCh; /* channel of current Rc */ 771da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds byte IndCh; /* channel of current Ind */ 781da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds byte Id; /* ID used by this entity */ 791da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds byte GlobalId; /* reserved field */ 801da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds byte XNum; /* number of X-buffers */ 811da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds byte RNum; /* number of R-buffers */ 821da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds BUFFERS * X; /* pointer to X-buffer list */ 831da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds BUFFERS * R; /* pointer to R-buffer list */ 841da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds word RLength; /* length of current R-data */ 851da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds DBUFFER * RBuffer; /* buffer of current R-data */ 861da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds byte RNR; /* receive not ready flag */ 871da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds byte complete; /* receive complete status */ 881da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds IDI_CALL callback; 891da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds word user[2]; 901da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds /* fields used by the driver internally */ 911da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds byte No; /* entity number */ 921da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds byte reserved2; /* reserved field */ 931da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds byte More; /* R/X More flags */ 941da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds byte MInd; /* MDATA coding for this ID */ 951da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds byte XCurrent; /* current transmit buffer */ 961da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds byte RCurrent; /* current receive buffer */ 971da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds word XOffset; /* offset in x-buffer */ 981da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds word ROffset; /* offset in r-buffer */ 991da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds}; 1001da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldstypedef struct { 1011da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds byte type; 1021da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds byte channels; 1031da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds word features; 1041da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds IDI_CALL request; 1051da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds} DESCRIPTOR; 1061da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds /* 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 1161da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds /* 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 1261da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds /* 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 1561da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds /* 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/* -------------------------------------------------------------------------- 1631da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds Adapter array change notification framework 1641da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds -------------------------------------------------------------------------- */ 1651da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldstypedef 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 */ 1801da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldstypedef void (IDI_CALL_LINK_T* _IDI_CALL)(void*, ENTITY*); 1811da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#endif 182