summaryrefslogtreecommitdiffstats
path: root/drivers/isdn/hardware/eicon/di_defs.h
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-06 01:02:30 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-06 01:02:30 +0000
commit76cb841cb886eef6b3bee341a2266c76578724ad (patch)
treef5892e5ba6cc11949952a6ce4ecbe6d516d6ce58 /drivers/isdn/hardware/eicon/di_defs.h
parentInitial commit. (diff)
downloadlinux-upstream.tar.xz
linux-upstream.zip
Adding upstream version 4.19.249.upstream/4.19.249upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'drivers/isdn/hardware/eicon/di_defs.h')
-rw-r--r--drivers/isdn/hardware/eicon/di_defs.h181
1 files changed, 181 insertions, 0 deletions
diff --git a/drivers/isdn/hardware/eicon/di_defs.h b/drivers/isdn/hardware/eicon/di_defs.h
new file mode 100644
index 000000000..a5094d221
--- /dev/null
+++ b/drivers/isdn/hardware/eicon/di_defs.h
@@ -0,0 +1,181 @@
+
+/*
+ *
+ Copyright (c) Eicon Networks, 2002.
+ *
+ This source file is supplied for the use with
+ Eicon Networks range of DIVA Server Adapters.
+ *
+ Eicon File Revision : 2.1
+ *
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+ *
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY OF ANY KIND WHATSOEVER INCLUDING ANY
+ implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ See the GNU General Public License for more details.
+ *
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ *
+ */
+#ifndef _DI_DEFS_
+#define _DI_DEFS_
+/* typedefs for our data structures */
+typedef struct get_name_s GET_NAME;
+/* The entity_s structure is used to pass all
+ parameters between application and IDI */
+typedef struct entity_s ENTITY;
+typedef struct buffers_s BUFFERS;
+typedef struct postcall_s POSTCALL;
+typedef struct get_para_s GET_PARA;
+#define BOARD_NAME_LENGTH 9
+#define IDI_CALL_LINK_T
+#define IDI_CALL_ENTITY_T
+/* typedef void ( * IDI_CALL)(ENTITY *); */
+/* --------------------------------------------------------
+ IDI_CALL
+ -------------------------------------------------------- */
+typedef void (IDI_CALL_LINK_T *IDI_CALL)(ENTITY IDI_CALL_ENTITY_T *);
+typedef struct {
+ word length; /* length of data/parameter field */
+ byte P[270]; /* data/parameter field */
+} DBUFFER;
+struct get_name_s {
+ word command; /* command = 0x0100 */
+ byte name[BOARD_NAME_LENGTH];
+};
+struct postcall_s {
+ word command; /* command = 0x0300 */
+ word dummy; /* not used */
+ void (*callback)(void *); /* call back */
+ void *context; /* context pointer */
+};
+#define REQ_PARA 0x0600 /* request command line parameters */
+#define REQ_PARA_LEN 1 /* number of data bytes */
+#define L1_STARTUP_DOWN_POS 0 /* '-y' command line parameter in......*/
+#define L1_STARTUP_DOWN_MSK 0x01 /* first byte position (index 0) with value 0x01 */
+struct get_para_s {
+ word command; /* command = 0x0600 */
+ byte len; /* max length of para field in bytes */
+ byte para[REQ_PARA_LEN]; /* parameter field */
+};
+struct buffers_s {
+ word PLength;
+ byte *P;
+};
+struct entity_s {
+ byte Req; /* pending request */
+ byte Rc; /* return code received */
+ byte Ind; /* indication received */
+ byte ReqCh; /* channel of current Req */
+ byte RcCh; /* channel of current Rc */
+ byte IndCh; /* channel of current Ind */
+ byte Id; /* ID used by this entity */
+ byte GlobalId; /* reserved field */
+ byte XNum; /* number of X-buffers */
+ byte RNum; /* number of R-buffers */
+ BUFFERS *X; /* pointer to X-buffer list */
+ BUFFERS *R; /* pointer to R-buffer list */
+ word RLength; /* length of current R-data */
+ DBUFFER *RBuffer; /* buffer of current R-data */
+ byte RNR; /* receive not ready flag */
+ byte complete; /* receive complete status */
+ IDI_CALL callback;
+ word user[2];
+ /* fields used by the driver internally */
+ byte No; /* entity number */
+ byte reserved2; /* reserved field */
+ byte More; /* R/X More flags */
+ byte MInd; /* MDATA coding for this ID */
+ byte XCurrent; /* current transmit buffer */
+ byte RCurrent; /* current receive buffer */
+ word XOffset; /* offset in x-buffer */
+ word ROffset; /* offset in r-buffer */
+};
+typedef struct {
+ byte type;
+ byte channels;
+ word features;
+ IDI_CALL request;
+} DESCRIPTOR;
+/* descriptor type field coding */
+#define IDI_ADAPTER_S 1
+#define IDI_ADAPTER_PR 2
+#define IDI_ADAPTER_DIVA 3
+#define IDI_ADAPTER_MAESTRA 4
+#define IDI_VADAPTER 0x40
+#define IDI_DRIVER 0x80
+#define IDI_DADAPTER 0xfd
+#define IDI_DIDDPNP 0xfe
+#define IDI_DIMAINT 0xff
+/* Hardware IDs ISA PNP */
+#define HW_ID_DIVA_PRO 3 /* same as IDI_ADAPTER_DIVA */
+#define HW_ID_MAESTRA 4 /* same as IDI_ADAPTER_MAESTRA */
+#define HW_ID_PICCOLA 5
+#define HW_ID_DIVA_PRO20 6
+#define HW_ID_DIVA20 7
+#define HW_ID_DIVA_PRO20_U 8
+#define HW_ID_DIVA20_U 9
+#define HW_ID_DIVA30 10
+#define HW_ID_DIVA30_U 11
+/* Hardware IDs PCI */
+#define HW_ID_EICON_PCI 0x1133
+#define HW_ID_SIEMENS_PCI 0x8001 /* unused SubVendor ID for Siemens Cornet-N cards */
+#define HW_ID_PROTTYPE_CORNETN 0x0014 /* SubDevice ID for Siemens Cornet-N cards */
+#define HW_ID_FUJITSU_SIEMENS_PCI 0x110A /* SubVendor ID for Fujitsu Siemens */
+#define HW_ID_GS03_PCI 0x0021 /* SubDevice ID for Fujitsu Siemens ISDN S0 card */
+#define HW_ID_DIVA_PRO20_PCI 0xe001
+#define HW_ID_DIVA20_PCI 0xe002
+#define HW_ID_DIVA_PRO20_PCI_U 0xe003
+#define HW_ID_DIVA20_PCI_U 0xe004
+#define HW_ID_DIVA201_PCI 0xe005
+#define HW_ID_DIVA_CT_ST 0xe006
+#define HW_ID_DIVA_CT_U 0xe007
+#define HW_ID_DIVA_CTL_ST 0xe008
+#define HW_ID_DIVA_CTL_U 0xe009
+#define HW_ID_DIVA_ISDN_V90_PCI 0xe00a
+#define HW_ID_DIVA202_PCI_ST 0xe00b
+#define HW_ID_DIVA202_PCI_U 0xe00c
+#define HW_ID_DIVA_PRO30_PCI 0xe00d
+#define HW_ID_MAESTRA_PCI 0xe010
+#define HW_ID_MAESTRAQ_PCI 0xe012
+#define HW_ID_DSRV_Q8M_V2_PCI 0xe013
+#define HW_ID_MAESTRAP_PCI 0xe014
+#define HW_ID_DSRV_P30M_V2_PCI 0xe015
+#define HW_ID_DSRV_VOICE_Q8M_PCI 0xe016
+#define HW_ID_DSRV_VOICE_Q8M_V2_PCI 0xe017
+#define HW_ID_DSRV_B2M_V2_PCI 0xe018
+#define HW_ID_DSRV_VOICE_P30M_V2_PCI 0xe019
+#define HW_ID_DSRV_B2F_PCI 0xe01a
+#define HW_ID_DSRV_VOICE_B2M_V2_PCI 0xe01b
+/* Hardware IDs USB */
+#define EICON_USB_VENDOR_ID 0x071D
+#define HW_ID_DIVA_USB_REV1 0x1000
+#define HW_ID_DIVA_USB_REV2 0x1003
+#define HW_ID_TELEDAT_SURF_USB_REV2 0x1004
+#define HW_ID_TELEDAT_SURF_USB_REV1 0x2000
+/* --------------------------------------------------------------------------
+ Adapter array change notification framework
+ -------------------------------------------------------------------------- */
+typedef void (IDI_CALL_LINK_T *didd_adapter_change_callback_t)(void IDI_CALL_ENTITY_T *context, DESCRIPTOR *adapter, int removal);
+/* -------------------------------------------------------------------------- */
+#define DI_VOICE 0x0 /* obsolete define */
+#define DI_FAX3 0x1
+#define DI_MODEM 0x2
+#define DI_POST 0x4
+#define DI_V110 0x8
+#define DI_V120 0x10
+#define DI_POTS 0x20
+#define DI_CODEC 0x40
+#define DI_MANAGE 0x80
+#define DI_V_42 0x0100
+#define DI_EXTD_FAX 0x0200 /* Extended FAX (ECM, 2D, T.6, Polling) */
+#define DI_AT_PARSER 0x0400 /* Build-in AT Parser in the L2 */
+#define DI_VOICE_OVER_IP 0x0800 /* Voice over IP support */
+typedef void (IDI_CALL_LINK_T *_IDI_CALL)(void *, ENTITY *);
+#endif