aboutsummaryrefslogtreecommitdiff
path: root/drivers/isdn/hardware/eicon
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@ppc970.osdl.org>2005-04-16 15:20:36 -0700
committerLinus Torvalds <torvalds@ppc970.osdl.org>2005-04-16 15:20:36 -0700
commit1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 (patch)
tree0bba044c4ce775e45a88a51686b5d9f90697ea9d /drivers/isdn/hardware/eicon
Linux-2.6.12-rc2v2.6.12-rc2
Initial git repository build. I'm not bothering with the full history, even though we have it. We can create a separate "historical" git archive of that later if we want to, and in the meantime it's about 3.2GB when imported into git - space that would just make the early git days unnecessarily complicated, when we don't have a lot of good infrastructure for it. Let it rip!
Diffstat (limited to 'drivers/isdn/hardware/eicon')
-rw-r--r--drivers/isdn/hardware/eicon/Kconfig53
-rw-r--r--drivers/isdn/hardware/eicon/Makefile23
-rw-r--r--drivers/isdn/hardware/eicon/adapter.h17
-rw-r--r--drivers/isdn/hardware/eicon/capi20.h699
-rw-r--r--drivers/isdn/hardware/eicon/capidtmf.c685
-rw-r--r--drivers/isdn/hardware/eicon/capidtmf.h79
-rw-r--r--drivers/isdn/hardware/eicon/capifunc.c1219
-rw-r--r--drivers/isdn/hardware/eicon/capifunc.h40
-rw-r--r--drivers/isdn/hardware/eicon/capimain.c147
-rw-r--r--drivers/isdn/hardware/eicon/cardtype.h1098
-rw-r--r--drivers/isdn/hardware/eicon/cp_vers.h26
-rw-r--r--drivers/isdn/hardware/eicon/dadapter.c366
-rw-r--r--drivers/isdn/hardware/eicon/dadapter.h34
-rw-r--r--drivers/isdn/hardware/eicon/dbgioctl.h198
-rw-r--r--drivers/isdn/hardware/eicon/debug.c2133
-rw-r--r--drivers/isdn/hardware/eicon/debug_if.h90
-rw-r--r--drivers/isdn/hardware/eicon/debuglib.c156
-rw-r--r--drivers/isdn/hardware/eicon/debuglib.h322
-rw-r--r--drivers/isdn/hardware/eicon/dfifo.h54
-rw-r--r--drivers/isdn/hardware/eicon/di.c835
-rw-r--r--drivers/isdn/hardware/eicon/di.h118
-rw-r--r--drivers/isdn/hardware/eicon/di_dbg.h37
-rw-r--r--drivers/isdn/hardware/eicon/di_defs.h181
-rw-r--r--drivers/isdn/hardware/eicon/did_vers.h26
-rw-r--r--drivers/isdn/hardware/eicon/diddfunc.c115
-rw-r--r--drivers/isdn/hardware/eicon/diva.c660
-rw-r--r--drivers/isdn/hardware/eicon/diva.h31
-rw-r--r--drivers/isdn/hardware/eicon/diva_didd.c151
-rw-r--r--drivers/isdn/hardware/eicon/diva_dma.c94
-rw-r--r--drivers/isdn/hardware/eicon/diva_dma.h48
-rw-r--r--drivers/isdn/hardware/eicon/diva_pci.h19
-rw-r--r--drivers/isdn/hardware/eicon/divacapi.h1360
-rw-r--r--drivers/isdn/hardware/eicon/divamnt.c257
-rw-r--r--drivers/isdn/hardware/eicon/divasfunc.c238
-rw-r--r--drivers/isdn/hardware/eicon/divasi.c581
-rw-r--r--drivers/isdn/hardware/eicon/divasmain.c856
-rw-r--r--drivers/isdn/hardware/eicon/divasproc.c441
-rw-r--r--drivers/isdn/hardware/eicon/divasync.h490
-rw-r--r--drivers/isdn/hardware/eicon/dqueue.c110
-rw-r--r--drivers/isdn/hardware/eicon/dqueue.h31
-rw-r--r--drivers/isdn/hardware/eicon/dsp_defs.h304
-rw-r--r--drivers/isdn/hardware/eicon/dsp_tst.h47
-rw-r--r--drivers/isdn/hardware/eicon/dspdids.h75
-rw-r--r--drivers/isdn/hardware/eicon/dsrv4bri.h40
-rw-r--r--drivers/isdn/hardware/eicon/dsrv_bri.h37
-rw-r--r--drivers/isdn/hardware/eicon/dsrv_pri.h38
-rw-r--r--drivers/isdn/hardware/eicon/entity.h28
-rw-r--r--drivers/isdn/hardware/eicon/helpers.h51
-rw-r--r--drivers/isdn/hardware/eicon/idifunc.c267
-rw-r--r--drivers/isdn/hardware/eicon/io.c852
-rw-r--r--drivers/isdn/hardware/eicon/io.h308
-rw-r--r--drivers/isdn/hardware/eicon/istream.c226
-rw-r--r--drivers/isdn/hardware/eicon/kst_ifc.h336
-rw-r--r--drivers/isdn/hardware/eicon/main_if.h50
-rw-r--r--drivers/isdn/hardware/eicon/maintidi.c2194
-rw-r--r--drivers/isdn/hardware/eicon/maintidi.h172
-rw-r--r--drivers/isdn/hardware/eicon/man_defs.h133
-rw-r--r--drivers/isdn/hardware/eicon/mdm_msg.h346
-rw-r--r--drivers/isdn/hardware/eicon/message.c15047
-rw-r--r--drivers/isdn/hardware/eicon/mi_pc.h204
-rw-r--r--drivers/isdn/hardware/eicon/mntfunc.c370
-rw-r--r--drivers/isdn/hardware/eicon/os_4bri.c1131
-rw-r--r--drivers/isdn/hardware/eicon/os_4bri.h8
-rw-r--r--drivers/isdn/hardware/eicon/os_bri.c813
-rw-r--r--drivers/isdn/hardware/eicon/os_bri.h8
-rw-r--r--drivers/isdn/hardware/eicon/os_capi.h21
-rw-r--r--drivers/isdn/hardware/eicon/os_pri.c1051
-rw-r--r--drivers/isdn/hardware/eicon/os_pri.h8
-rw-r--r--drivers/isdn/hardware/eicon/pc.h738
-rw-r--r--drivers/isdn/hardware/eicon/pc_init.h267
-rw-r--r--drivers/isdn/hardware/eicon/pc_maint.h160
-rw-r--r--drivers/isdn/hardware/eicon/pkmaint.h44
-rw-r--r--drivers/isdn/hardware/eicon/platform.h394
-rw-r--r--drivers/isdn/hardware/eicon/pr_pc.h76
-rw-r--r--drivers/isdn/hardware/eicon/s_4bri.c510
-rw-r--r--drivers/isdn/hardware/eicon/s_bri.c191
-rw-r--r--drivers/isdn/hardware/eicon/s_pri.c205
-rw-r--r--drivers/isdn/hardware/eicon/sdp_hdr.h117
-rw-r--r--drivers/isdn/hardware/eicon/um_idi.c885
-rw-r--r--drivers/isdn/hardware/eicon/um_idi.h43
-rw-r--r--drivers/isdn/hardware/eicon/um_xdi.h68
-rw-r--r--drivers/isdn/hardware/eicon/xdi_adapter.h70
-rw-r--r--drivers/isdn/hardware/eicon/xdi_msg.h127
-rw-r--r--drivers/isdn/hardware/eicon/xdi_vers.h26
84 files changed, 42204 insertions, 0 deletions
diff --git a/drivers/isdn/hardware/eicon/Kconfig b/drivers/isdn/hardware/eicon/Kconfig
new file mode 100644
index 00000000000..51e66bc6420
--- /dev/null
+++ b/drivers/isdn/hardware/eicon/Kconfig
@@ -0,0 +1,53 @@
+#
+# ISDN DIVAS Eicon driver
+#
+
+menu "Active Eicon DIVA Server cards"
+ depends on NET && ISDN && ISDN_CAPI!=n
+
+config CAPI_EICON
+ bool "Support Eicon cards"
+ help
+ Enable support for Eicon Networks active ISDN cards.
+
+config ISDN_DIVAS
+ tristate "Support Eicon DIVA Server cards"
+ depends on CAPI_EICON && PROC_FS && PCI
+ help
+ Say Y here if you have an Eicon Networks DIVA Server PCI ISDN card.
+ In order to use this card, additional firmware is necessary, which
+ has to be downloaded into the card using the divactrl utility.
+
+config ISDN_DIVAS_BRIPCI
+ bool "DIVA Server BRI/PCI support"
+ depends on ISDN_DIVAS
+ help
+ Enable support for DIVA Server BRI-PCI.
+
+config ISDN_DIVAS_PRIPCI
+ bool "DIVA Server PRI/PCI support"
+ depends on ISDN_DIVAS
+ help
+ Enable support for DIVA Server PRI-PCI.
+
+config ISDN_DIVAS_DIVACAPI
+ tristate "DIVA CAPI2.0 interface support"
+ depends on ISDN_DIVAS && ISDN_CAPI
+ help
+ You need this to provide the CAPI interface
+ for DIVA Server cards.
+
+config ISDN_DIVAS_USERIDI
+ tristate "DIVA User-IDI interface support"
+ depends on ISDN_DIVAS
+ help
+ Enable support for user-mode IDI interface.
+
+config ISDN_DIVAS_MAINT
+ tristate "DIVA Maint driver support"
+ depends on ISDN_DIVAS && m
+ help
+ Enable Divas Maintainance driver.
+
+endmenu
+
diff --git a/drivers/isdn/hardware/eicon/Makefile b/drivers/isdn/hardware/eicon/Makefile
new file mode 100644
index 00000000000..4fa7fdb7df0
--- /dev/null
+++ b/drivers/isdn/hardware/eicon/Makefile
@@ -0,0 +1,23 @@
+# Makefile for the Eicon DIVA ISDN drivers.
+
+# Each configuration option enables a list of files.
+
+obj-$(CONFIG_ISDN_DIVAS) += divadidd.o divas.o
+obj-$(CONFIG_ISDN_DIVAS_MAINT) += diva_mnt.o
+obj-$(CONFIG_ISDN_DIVAS_USERIDI) += diva_idi.o
+obj-$(CONFIG_ISDN_DIVAS_DIVACAPI) += divacapi.o
+
+# Multipart objects.
+
+divas-y := divasmain.o divasfunc.o di.o io.o istream.o \
+ diva.o divasproc.o diva_dma.o
+divas-$(CONFIG_ISDN_DIVAS_BRIPCI) += os_bri.o s_bri.o os_4bri.o s_4bri.o
+divas-$(CONFIG_ISDN_DIVAS_PRIPCI) += os_pri.o s_pri.o
+
+divacapi-y := capimain.o capifunc.o message.o capidtmf.o
+
+divadidd-y := diva_didd.o diddfunc.o dadapter.o
+
+diva_mnt-y := divamnt.o mntfunc.o debug.o maintidi.o
+
+diva_idi-y := divasi.o idifunc.o um_idi.o dqueue.o
diff --git a/drivers/isdn/hardware/eicon/adapter.h b/drivers/isdn/hardware/eicon/adapter.h
new file mode 100644
index 00000000000..71a7c2f084a
--- /dev/null
+++ b/drivers/isdn/hardware/eicon/adapter.h
@@ -0,0 +1,17 @@
+/* $Id: adapter.h,v 1.4 2004/03/21 17:26:01 armin Exp $ */
+
+#ifndef __DIVA_USER_MODE_IDI_ADAPTER_H__
+#define __DIVA_USER_MODE_IDI_ADAPTER_H__
+
+#define DIVA_UM_IDI_ADAPTER_REMOVED 0x00000001
+
+typedef struct _diva_um_idi_adapter {
+ struct list_head link;
+ DESCRIPTOR d;
+ int adapter_nr;
+ struct list_head entity_q; /* entities linked to this adapter */
+ dword status;
+} diva_um_idi_adapter_t;
+
+
+#endif
diff --git a/drivers/isdn/hardware/eicon/capi20.h b/drivers/isdn/hardware/eicon/capi20.h
new file mode 100644
index 00000000000..7ebcccda74d
--- /dev/null
+++ b/drivers/isdn/hardware/eicon/capi20.h
@@ -0,0 +1,699 @@
+
+/*
+ *
+ 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 _INC_CAPI20
+#define _INC_CAPI20
+ /* operations on message queues */
+ /* the common device type for CAPI20 drivers */
+#define FILE_DEVICE_CAPI20 0x8001
+ /* DEVICE_CONTROL codes for user and kernel mode applications */
+#define CAPI20_CTL_REGISTER 0x0801
+#define CAPI20_CTL_RELEASE 0x0802
+#define CAPI20_CTL_GET_MANUFACTURER 0x0805
+#define CAPI20_CTL_GET_VERSION 0x0806
+#define CAPI20_CTL_GET_SERIAL 0x0807
+#define CAPI20_CTL_GET_PROFILE 0x0808
+ /* INTERNAL_DEVICE_CONTROL codes for kernel mode applicatios only */
+#define CAPI20_CTL_PUT_MESSAGE 0x0803
+#define CAPI20_CTL_GET_MESSAGE 0x0804
+ /* the wrapped codes as required by the system */
+#define CAPI_CTL_CODE(f,m) CTL_CODE(FILE_DEVICE_CAPI20,f,m,FILE_ANY_ACCESS)
+#define IOCTL_CAPI_REGISTER CAPI_CTL_CODE(CAPI20_CTL_REGISTER,METHOD_BUFFERED)
+#define IOCTL_CAPI_RELEASE CAPI_CTL_CODE(CAPI20_CTL_RELEASE,METHOD_BUFFERED)
+#define IOCTL_CAPI_GET_MANUFACTURER CAPI_CTL_CODE(CAPI20_CTL_GET_MANUFACTURER,METHOD_BUFFERED)
+#define IOCTL_CAPI_GET_VERSION CAPI_CTL_CODE(CAPI20_CTL_GET_VERSION,METHOD_BUFFERED)
+#define IOCTL_CAPI_GET_SERIAL CAPI_CTL_CODE(CAPI20_CTL_GET_SERIAL,METHOD_BUFFERED)
+#define IOCTL_CAPI_GET_PROFILE CAPI_CTL_CODE(CAPI20_CTL_GET_PROFILE,METHOD_BUFFERED)
+#define IOCTL_CAPI_PUT_MESSAGE CAPI_CTL_CODE(CAPI20_CTL_PUT_MESSAGE,METHOD_BUFFERED)
+#define IOCTL_CAPI_GET_MESSAGE CAPI_CTL_CODE(CAPI20_CTL_GET_MESSAGE,METHOD_BUFFERED)
+struct divas_capi_register_params {
+ word MessageBufferSize;
+ word maxLogicalConnection;
+ word maxBDataBlocks;
+ word maxBDataLen;
+};
+struct divas_capi_version {
+ word CapiMajor;
+ word CapiMinor;
+ word ManuMajor;
+ word ManuMinor;
+};
+typedef struct api_profile_s {
+ word Number;
+ word Channels;
+ dword Global_Options;
+ dword B1_Protocols;
+ dword B2_Protocols;
+ dword B3_Protocols;
+} API_PROFILE;
+ /* ISDN Common API message types */
+#define _ALERT_R 0x8001
+#define _CONNECT_R 0x8002
+#define _CONNECT_I 0x8202
+#define _CONNECT_ACTIVE_I 0x8203
+#define _DISCONNECT_R 0x8004
+#define _DISCONNECT_I 0x8204
+#define _LISTEN_R 0x8005
+#define _INFO_R 0x8008
+#define _INFO_I 0x8208
+#define _SELECT_B_REQ 0x8041
+#define _FACILITY_R 0x8080
+#define _FACILITY_I 0x8280
+#define _CONNECT_B3_R 0x8082
+#define _CONNECT_B3_I 0x8282
+#define _CONNECT_B3_ACTIVE_I 0x8283
+#define _DISCONNECT_B3_R 0x8084
+#define _DISCONNECT_B3_I 0x8284
+#define _DATA_B3_R 0x8086
+#define _DATA_B3_I 0x8286
+#define _RESET_B3_R 0x8087
+#define _RESET_B3_I 0x8287
+#define _CONNECT_B3_T90_ACTIVE_I 0x8288
+#define _MANUFACTURER_R 0x80ff
+#define _MANUFACTURER_I 0x82ff
+ /* OR this to convert a REQUEST to a CONFIRM */
+#define CONFIRM 0x0100
+ /* OR this to convert a INDICATION to a RESPONSE */
+#define RESPONSE 0x0100
+/*------------------------------------------------------------------*/
+/* diehl isdn private MANUFACTURER codes */
+/*------------------------------------------------------------------*/
+#define _DI_MANU_ID 0x44444944
+#define _DI_ASSIGN_PLCI 0x0001
+#define _DI_ADV_CODEC 0x0002
+#define _DI_DSP_CTRL 0x0003
+#define _DI_SIG_CTRL 0x0004
+#define _DI_RXT_CTRL 0x0005
+#define _DI_IDI_CTRL 0x0006
+#define _DI_CFG_CTRL 0x0007
+#define _DI_REMOVE_CODEC 0x0008
+#define _DI_OPTIONS_REQUEST 0x0009
+#define _DI_SSEXT_CTRL 0x000a
+#define _DI_NEGOTIATE_B3 0x000b
+/*------------------------------------------------------------------*/
+/* parameter structures */
+/*------------------------------------------------------------------*/
+ /* ALERT-REQUEST */
+typedef struct {
+ byte structs[1]; /* Additional Info */
+} _ALT_REQP;
+ /* ALERT-CONFIRM */
+typedef struct {
+ word Info;
+} _ALT_CONP;
+ /* CONNECT-REQUEST */
+typedef struct {
+ word CIP_Value;
+ byte structs[1]; /* Called party number,
+ Called party subaddress,
+ Calling party number,
+ Calling party subaddress,
+ B_protocol,
+ BC,
+ LLC,
+ HLC,
+ Additional Info */
+} _CON_REQP;
+ /* CONNECT-CONFIRM */
+typedef struct {
+ word Info;
+} _CON_CONP;
+ /* CONNECT-INDICATION */
+typedef struct {
+ word CIP_Value;
+ byte structs[1]; /* Called party number,
+ Called party subaddress,
+ Calling party number,
+ Calling party subaddress,
+ BC,
+ LLC,
+ HLC,
+ Additional Info */
+} _CON_INDP;
+ /* CONNECT-RESPONSE */
+typedef struct {
+ word Accept;
+ byte structs[1]; /* B_protocol,
+ Connected party number,
+ Connected party subaddress,
+ LLC */
+} _CON_RESP;
+ /* CONNECT-ACTIVE-INDICATION */
+typedef struct {
+ byte structs[1]; /* Connected party number,
+ Connected party subaddress,
+ LLC */
+} _CON_A_INDP;
+ /* CONNECT-ACTIVE-RESPONSE */
+typedef struct {
+ byte structs[1]; /* empty */
+} _CON_A_RESP;
+ /* DISCONNECT-REQUEST */
+typedef struct {
+ byte structs[1]; /* Additional Info */
+} _DIS_REQP;
+ /* DISCONNECT-CONFIRM */
+typedef struct {
+ word Info;
+} _DIS_CONP;
+ /* DISCONNECT-INDICATION */
+typedef struct {
+ word Info;
+} _DIS_INDP;
+ /* DISCONNECT-RESPONSE */
+typedef struct {
+ byte structs[1]; /* empty */
+} _DIS_RESP;
+ /* LISTEN-REQUEST */
+typedef struct {
+ dword Info_Mask;
+ dword CIP_Mask;
+ byte structs[1]; /* Calling party number,
+ Calling party subaddress */
+} _LIS_REQP;
+ /* LISTEN-CONFIRM */
+typedef struct {
+ word Info;
+} _LIS_CONP;
+ /* INFO-REQUEST */
+typedef struct {
+ byte structs[1]; /* Called party number,
+ Additional Info */
+} _INF_REQP;
+ /* INFO-CONFIRM */
+typedef struct {
+ word Info;
+} _INF_CONP;
+ /* INFO-INDICATION */
+typedef struct {
+ word Number;
+ byte structs[1]; /* Info element */
+} _INF_INDP;
+ /* INFO-RESPONSE */
+typedef struct {
+ byte structs[1]; /* empty */
+} _INF_RESP;
+ /* SELECT-B-REQUEST */
+typedef struct {
+ byte structs[1]; /* B-protocol */
+} _SEL_B_REQP;
+ /* SELECT-B-CONFIRM */
+typedef struct {
+ word Info;
+} _SEL_B_CONP;
+ /* FACILITY-REQUEST */
+typedef struct {
+ word Selector;
+ byte structs[1]; /* Facility parameters */
+} _FAC_REQP;
+ /* FACILITY-CONFIRM STRUCT FOR SUPPLEMENT. SERVICES */
+typedef struct {
+ byte struct_length;
+ word function;
+ byte length;
+ word SupplementaryServiceInfo;
+ dword SupportedServices;
+} _FAC_CON_STRUCTS;
+ /* FACILITY-CONFIRM */
+typedef struct {
+ word Info;
+ word Selector;
+ byte structs[1]; /* Facility parameters */
+} _FAC_CONP;
+ /* FACILITY-INDICATION */
+typedef struct {
+ word Selector;
+ byte stru