Path: blob/master/drivers/isdn/hardware/eicon/di_defs.h
15115 views
1/*2*3Copyright (c) Eicon Networks, 2002.4*5This source file is supplied for the use with6Eicon Networks range of DIVA Server Adapters.7*8Eicon File Revision : 2.19*10This program is free software; you can redistribute it and/or modify11it under the terms of the GNU General Public License as published by12the Free Software Foundation; either version 2, or (at your option)13any later version.14*15This program is distributed in the hope that it will be useful,16but WITHOUT ANY WARRANTY OF ANY KIND WHATSOEVER INCLUDING ANY17implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.18See the GNU General Public License for more details.19*20You should have received a copy of the GNU General Public License21along with this program; if not, write to the Free Software22Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.23*24*/25#ifndef _DI_DEFS_26#define _DI_DEFS_27/* typedefs for our data structures */28typedef struct get_name_s GET_NAME;29/* The entity_s structure is used to pass all30parameters between application and IDI */31typedef struct entity_s ENTITY;32typedef struct buffers_s BUFFERS;33typedef struct postcall_s POSTCALL;34typedef struct get_para_s GET_PARA;35#define BOARD_NAME_LENGTH 936#define IDI_CALL_LINK_T37#define IDI_CALL_ENTITY_T38/* typedef void ( * IDI_CALL)(ENTITY *); */39/* --------------------------------------------------------40IDI_CALL41-------------------------------------------------------- */42typedef void (IDI_CALL_LINK_T * IDI_CALL)(ENTITY IDI_CALL_ENTITY_T *);43typedef struct {44word length; /* length of data/parameter field */45byte P[270]; /* data/parameter field */46} DBUFFER;47struct get_name_s {48word command; /* command = 0x0100 */49byte name[BOARD_NAME_LENGTH];50};51struct postcall_s {52word command; /* command = 0x0300 */53word dummy; /* not used */54void ( * callback)(void *); /* call back */55void *context; /* context pointer */56};57#define REQ_PARA 0x0600 /* request command line parameters */58#define REQ_PARA_LEN 1 /* number of data bytes */59#define L1_STARTUP_DOWN_POS 0 /* '-y' command line parameter in......*/60#define L1_STARTUP_DOWN_MSK 0x01 /* first byte position (index 0) with value 0x01 */61struct get_para_s {62word command; /* command = 0x0600 */63byte len; /* max length of para field in bytes */64byte para[REQ_PARA_LEN]; /* parameter field */65};66struct buffers_s {67word PLength;68byte * P;69};70struct entity_s {71byte Req; /* pending request */72byte Rc; /* return code received */73byte Ind; /* indication received */74byte ReqCh; /* channel of current Req */75byte RcCh; /* channel of current Rc */76byte IndCh; /* channel of current Ind */77byte Id; /* ID used by this entity */78byte GlobalId; /* reserved field */79byte XNum; /* number of X-buffers */80byte RNum; /* number of R-buffers */81BUFFERS * X; /* pointer to X-buffer list */82BUFFERS * R; /* pointer to R-buffer list */83word RLength; /* length of current R-data */84DBUFFER * RBuffer; /* buffer of current R-data */85byte RNR; /* receive not ready flag */86byte complete; /* receive complete status */87IDI_CALL callback;88word user[2];89/* fields used by the driver internally */90byte No; /* entity number */91byte reserved2; /* reserved field */92byte More; /* R/X More flags */93byte MInd; /* MDATA coding for this ID */94byte XCurrent; /* current transmit buffer */95byte RCurrent; /* current receive buffer */96word XOffset; /* offset in x-buffer */97word ROffset; /* offset in r-buffer */98};99typedef struct {100byte type;101byte channels;102word features;103IDI_CALL request;104} DESCRIPTOR;105/* descriptor type field coding */106#define IDI_ADAPTER_S 1107#define IDI_ADAPTER_PR 2108#define IDI_ADAPTER_DIVA 3109#define IDI_ADAPTER_MAESTRA 4110#define IDI_VADAPTER 0x40111#define IDI_DRIVER 0x80112#define IDI_DADAPTER 0xfd113#define IDI_DIDDPNP 0xfe114#define IDI_DIMAINT 0xff115/* Hardware IDs ISA PNP */116#define HW_ID_DIVA_PRO 3 /* same as IDI_ADAPTER_DIVA */117#define HW_ID_MAESTRA 4 /* same as IDI_ADAPTER_MAESTRA */118#define HW_ID_PICCOLA 5119#define HW_ID_DIVA_PRO20 6120#define HW_ID_DIVA20 7121#define HW_ID_DIVA_PRO20_U 8122#define HW_ID_DIVA20_U 9123#define HW_ID_DIVA30 10124#define HW_ID_DIVA30_U 11125/* Hardware IDs PCI */126#define HW_ID_EICON_PCI 0x1133127#define HW_ID_SIEMENS_PCI 0x8001 /* unused SubVendor ID for Siemens Cornet-N cards */128#define HW_ID_PROTTYPE_CORNETN 0x0014 /* SubDevice ID for Siemens Cornet-N cards */129#define HW_ID_FUJITSU_SIEMENS_PCI 0x110A /* SubVendor ID for Fujitsu Siemens */130#define HW_ID_GS03_PCI 0x0021 /* SubDevice ID for Fujitsu Siemens ISDN S0 card */131#define HW_ID_DIVA_PRO20_PCI 0xe001132#define HW_ID_DIVA20_PCI 0xe002133#define HW_ID_DIVA_PRO20_PCI_U 0xe003134#define HW_ID_DIVA20_PCI_U 0xe004135#define HW_ID_DIVA201_PCI 0xe005136#define HW_ID_DIVA_CT_ST 0xe006137#define HW_ID_DIVA_CT_U 0xe007138#define HW_ID_DIVA_CTL_ST 0xe008139#define HW_ID_DIVA_CTL_U 0xe009140#define HW_ID_DIVA_ISDN_V90_PCI 0xe00a141#define HW_ID_DIVA202_PCI_ST 0xe00b142#define HW_ID_DIVA202_PCI_U 0xe00c143#define HW_ID_DIVA_PRO30_PCI 0xe00d144#define HW_ID_MAESTRA_PCI 0xe010145#define HW_ID_MAESTRAQ_PCI 0xe012146#define HW_ID_DSRV_Q8M_V2_PCI 0xe013147#define HW_ID_MAESTRAP_PCI 0xe014148#define HW_ID_DSRV_P30M_V2_PCI 0xe015149#define HW_ID_DSRV_VOICE_Q8M_PCI 0xe016150#define HW_ID_DSRV_VOICE_Q8M_V2_PCI 0xe017151#define HW_ID_DSRV_B2M_V2_PCI 0xe018152#define HW_ID_DSRV_VOICE_P30M_V2_PCI 0xe019153#define HW_ID_DSRV_B2F_PCI 0xe01a154#define HW_ID_DSRV_VOICE_B2M_V2_PCI 0xe01b155/* Hardware IDs USB */156#define EICON_USB_VENDOR_ID 0x071D157#define HW_ID_DIVA_USB_REV1 0x1000158#define HW_ID_DIVA_USB_REV2 0x1003159#define HW_ID_TELEDAT_SURF_USB_REV2 0x1004160#define HW_ID_TELEDAT_SURF_USB_REV1 0x2000161/* --------------------------------------------------------------------------162Adapter array change notification framework163-------------------------------------------------------------------------- */164typedef void (IDI_CALL_LINK_T* didd_adapter_change_callback_t)( void IDI_CALL_ENTITY_T * context, DESCRIPTOR* adapter, int removal);165/* -------------------------------------------------------------------------- */166#define DI_VOICE 0x0 /* obsolete define */167#define DI_FAX3 0x1168#define DI_MODEM 0x2169#define DI_POST 0x4170#define DI_V110 0x8171#define DI_V120 0x10172#define DI_POTS 0x20173#define DI_CODEC 0x40174#define DI_MANAGE 0x80175#define DI_V_42 0x0100176#define DI_EXTD_FAX 0x0200 /* Extended FAX (ECM, 2D, T.6, Polling) */177#define DI_AT_PARSER 0x0400 /* Build-in AT Parser in the L2 */178#define DI_VOICE_OVER_IP 0x0800 /* Voice over IP support */179typedef void (IDI_CALL_LINK_T* _IDI_CALL)(void*, ENTITY*);180#endif181182183