Kernel  |  3.10

下载     查看原文件
C++程序  |  1099行  |  39.43 KB

/*
 *
 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 _CARDTYPE_H_
#define _CARDTYPE_H_
#ifndef CARDTYPE_H_WANT_DATA
#define CARDTYPE_H_WANT_DATA   0
#endif
#ifndef CARDTYPE_H_WANT_IDI_DATA
#define CARDTYPE_H_WANT_IDI_DATA  0
#endif
#ifndef CARDTYPE_H_WANT_RESOURCE_DATA
#define CARDTYPE_H_WANT_RESOURCE_DATA 1
#endif
#ifndef CARDTYPE_H_WANT_FILE_DATA
#define CARDTYPE_H_WANT_FILE_DATA  1
#endif
/*
 * D-channel protocol identifiers
 *
 * Attention: Unfortunately the identifiers defined here differ from
 *      the identifiers used in Protocol/1/Common/prot/q931.h .
 *     The only reason for this is that q931.h has not a global
 *     scope and we did not know about the definitions there.
 *     But the definitions here cannot be changed easily because
 *     they are used in setup scripts and programs.
 *     Thus the definitions here have to be mapped if they are
 *     used in the protocol code context !
 *
 * Now the identifiers are defined in the q931lib/constant.h file.
 * Unfortunately this file has also not a global scope.
 * But beginning with PROTTYPE_US any new identifier will get the same
 * value as the corresponding PROT_* definition in q931lib/constant.h !
 */
#define PROTTYPE_MINVAL     0
#define PROTTYPE_ETSI       0
#define PROTTYPE_1TR6       1
#define PROTTYPE_BELG       2
#define PROTTYPE_FRANC      3
#define PROTTYPE_ATEL       4
#define PROTTYPE_NI         5  /* DMS 100, Nortel, National ISDN */
#define PROTTYPE_5ESS       6  /* 5ESS   , AT&T,   5ESS Custom   */
#define PROTTYPE_JAPAN      7
#define PROTTYPE_SWED       8
#define PROTTYPE_US         9  /* US autodetect */
#define PROTTYPE_ITALY      10
#define PROTTYPE_TWAN       11
#define PROTTYPE_AUSTRAL    12
#define PROTTYPE_4ESDN      13
#define PROTTYPE_4ESDS      14
#define PROTTYPE_4ELDS      15
#define PROTTYPE_4EMGC      16
#define PROTTYPE_4EMGI      17
#define PROTTYPE_HONGKONG   18
#define PROTTYPE_RBSCAS     19
#define PROTTYPE_CORNETN    20
#define PROTTYPE_QSIG       21
#define PROTTYPE_NI_EWSD    22 /* EWSD, Siemens, National ISDN   */
#define PROTTYPE_5ESS_NI    23 /* 5ESS, Lucent, National ISDN    */
#define PROTTYPE_T1CORNETN  24
#define PROTTYPE_CORNETNQ   25
#define PROTTYPE_T1CORNETNQ 26
#define PROTTYPE_T1QSIG     27
#define PROTTYPE_E1UNCH     28
#define PROTTYPE_T1UNCH     29
#define PROTTYPE_E1CHAN     30
#define PROTTYPE_T1CHAN     31
#define PROTTYPE_R2CAS      32
#define PROTTYPE_MAXVAL     32
/*
 * Card type identifiers
 */
#define CARD_UNKNOWN                      0
#define CARD_NONE                         0
/* DIVA cards */
#define CARDTYPE_DIVA_MCA                 0
#define CARDTYPE_DIVA_ISA                 1
#define CARDTYPE_DIVA_PCM                 2
#define CARDTYPE_DIVAPRO_ISA              3
#define CARDTYPE_DIVAPRO_PCM              4
#define CARDTYPE_DIVAPICO_ISA             5
#define CARDTYPE_DIVAPICO_PCM             6
/* DIVA 2.0 cards */
#define CARDTYPE_DIVAPRO20_PCI            7
#define CARDTYPE_DIVA20_PCI               8
/* S cards */
#define CARDTYPE_QUADRO_ISA               9
#define CARDTYPE_S_ISA                    10
#define CARDTYPE_S_MCA                    11
#define CARDTYPE_SX_ISA                   12
#define CARDTYPE_SX_MCA                   13
#define CARDTYPE_SXN_ISA                  14
#define CARDTYPE_SXN_MCA                  15
#define CARDTYPE_SCOM_ISA                 16
#define CARDTYPE_SCOM_MCA                 17
#define CARDTYPE_PR_ISA                   18
#define CARDTYPE_PR_MCA                   19
/* Diva Server cards (formerly called Maestra, later Amadeo) */
#define CARDTYPE_MAESTRA_ISA              20
#define CARDTYPE_MAESTRA_PCI              21
/* Diva Server cards to be developed (Quadro, Primary rate) */
#define CARDTYPE_DIVASRV_Q_8M_PCI         22
#define CARDTYPE_DIVASRV_P_30M_PCI        23
#define CARDTYPE_DIVASRV_P_2M_PCI         24
#define CARDTYPE_DIVASRV_P_9M_PCI         25
/* DIVA 2.0 cards */
#define CARDTYPE_DIVA20_ISA               26
#define CARDTYPE_DIVA20U_ISA              27
#define CARDTYPE_DIVA20U_PCI              28
#define CARDTYPE_DIVAPRO20_ISA            29
#define CARDTYPE_DIVAPRO20U_ISA           30
#define CARDTYPE_DIVAPRO20U_PCI           31
/* DIVA combi cards (piccola ISDN + rockwell V.34 modem) */
#define CARDTYPE_DIVAMOBILE_PCM           32
#define CARDTYPE_TDKGLOBALPRO_PCM         33
/* DIVA Pro PC OEM card for 'New Media Corporation' */
#define CARDTYPE_NMC_DIVAPRO_PCM          34
/* DIVA Pro 2.0 OEM cards for 'British Telecom' */
#define CARDTYPE_BT_EXLANE_PCI            35
#define CARDTYPE_BT_EXLANE_ISA            36
/* DIVA low cost cards, 1st name DIVA 3.0, 2nd DIVA 2.01, 3rd ??? */
#define CARDTYPE_DIVALOW_ISA              37
#define CARDTYPE_DIVALOWU_ISA             38
#define CARDTYPE_DIVALOW_PCI              39
#define CARDTYPE_DIVALOWU_PCI             40
/* DIVA combi cards (piccola ISDN + rockwell V.90 modem) */
#define CARDTYPE_DIVAMOBILE_V90_PCM       41
#define CARDTYPE_TDKGLOBPRO_V90_PCM       42
#define CARDTYPE_DIVASRV_P_23M_PCI        43
#define CARDTYPE_DIVALOW_USB              44
/* DIVA Audio (CT) family */
#define CARDTYPE_DIVA_CT_ST               45
#define CARDTYPE_DIVA_CT_U                46
#define CARDTYPE_DIVA_CTLITE_ST           47
#define CARDTYPE_DIVA_CTLITE_U            48
/* DIVA ISDN plus V.90 series */
#define CARDTYPE_DIVAISDN_V90_PCM         49
#define CARDTYPE_DIVAISDN_V90_PCI         50
#define CARDTYPE_DIVAISDN_TA              51
/* DIVA Server Voice cards */
#define CARDTYPE_DIVASRV_VOICE_Q_8M_PCI   52
/* DIVA Server V2 cards */
#define CARDTYPE_DIVASRV_Q_8M_V2_PCI      53
#define CARDTYPE_DIVASRV_P_30M_V2_PCI     54
/* DIVA Server Voice V2 cards */
#define CARDTYPE_DIVASRV_VOICE_Q_8M_V2_PCI 55
#define CARDTYPE_DIVASRV_VOICE_P_30M_V2_PCI 56
/* Diva LAN */
#define CARDTYPE_DIVAISDN_LAN             57
#define CARDTYPE_DIVA_202_PCI_ST          58
#define CARDTYPE_DIVA_202_PCI_U           59
#define CARDTYPE_DIVASRV_B_2M_V2_PCI      60
#define CARDTYPE_DIVASRV_B_2F_PCI         61
#define CARDTYPE_DIVALOW_USBV2            62
#define CARDTYPE_DIVASRV_VOICE_B_2M_V2_PCI 63
#define CARDTYPE_DIVA_PRO_30_PCI_ST       64
#define CARDTYPE_DIVA_CT_ST_V20           65
/* Diva Mobile V.90 PC Card and Diva ISDN PC Card */
#define CARDTYPE_DIVAMOBILE_V2_PCM        66
#define CARDTYPE_DIVA_V2_PCM              67
/* Re-badged Diva Pro PC Card */
#define CARDTYPE_DIVA_PC_CARD             68
/* next free card type identifier */
#define CARDTYPE_MAX                      69
/*
 * The card families
 */
#define FAMILY_DIVA   1
#define FAMILY_S   2
#define FAMILY_MAESTRA  3
#define FAMILY_MAX   4
/*
 * The basic card types
 */
#define CARD_DIVA           1  /* DSP based, old DSP */
#define CARD_PRO            2  /* DSP based, new DSP */
#define CARD_PICO           3  /* HSCX based   */
#define CARD_S    4  /* IDI on board based */
#define CARD_SX    5  /* IDI on board based */
#define CARD_SXN   6  /* IDI on board based */
#define CARD_SCOM   7  /* IDI on board based */
#define CARD_QUAD   8  /* IDI on board based */
#define CARD_PR    9  /* IDI on board based */
#define CARD_MAE         10  /* IDI on board based */
#define CARD_MAEQ        11  /* IDI on board based */
#define CARD_MAEP        12  /* IDI on board based */
#define CARD_DIVALOW  13  /* IPAC based   */
#define CARD_CT    14  /* SCOUT based          */
#define CARD_DIVATA   15  /* DIVA TA */
#define CARD_DIVALAN  16  /* DIVA LAN */
#define CARD_MAE2         17  /* IDI on board based */
#define CARD_MAX   18
/*
 * The internal card types of the S family
 */
#define CARD_I_NONE   0
#define CARD_I_S   0
#define CARD_I_SX   1
#define CARD_I_SCOM   2
#define CARD_I_QUAD   3
#define CARD_I_PR   4
/*
 * The bus types we support
 */
#define BUS_ISA             1
#define BUS_PCM             2
#define BUS_PCI             3
#define BUS_MCA             4
#define BUS_USB             5
#define BUS_COM    6
#define BUS_LAN    7
/*
 * The chips we use for B-channel traffic
 */
#define CHIP_NONE           0
#define CHIP_DSP            1
#define CHIP_HSCX           2
#define CHIP_IPAC           3
#define CHIP_SCOUT          4
#define CHIP_EXTERN         5
#define CHIP_IPACX          6
/*
 * The structures where the card properties are aggregated by id
 */
typedef struct CARD_PROPERTIES
{   char     *Name;  /* official marketing name     */
	unsigned short PnPId;  /* plug and play ID (for non PCMIA cards) */
	unsigned short Version; /* major and minor version no of the card */
	unsigned char DescType; /* card type to set in the IDI descriptor */
	unsigned char  Family;  /* basic family of the card     */
	unsigned short  Features; /* features bits to set in the IDI desc. */
	unsigned char Card;  /* basic card type       */
	unsigned char IType;  /* internal type of S cards (read from ram) */
	unsigned char  Bus;  /* bus type this card is designed for  */
	unsigned char  Chip;  /* chipset used on card      */
	unsigned char Adapters; /* number of adapters on card    */
	unsigned char Channels; /* # of channels per adapter    */
	unsigned short E_info;  /* # of ram entity info structs per adapter */
	unsigned short SizeIo;  /* size of IO window per adapter   */
	unsigned short SizeMem; /* size of memory window per adapter  */
} CARD_PROPERTIES;
typedef struct CARD_RESOURCE
{ unsigned char Int[10];
	unsigned short IoFirst;
	unsigned short IoStep;
	unsigned short IoCnt;
	unsigned long MemFirst;
	unsigned long MemStep;
	unsigned short MemCnt;
} CARD_RESOURCE;
/* test if the card of type 't' is a plug & play card */
#define IS_PNP(t)						\
	(							\
		(						\
			CardProperties[t].Bus != BUS_ISA	\
			&&					\
			CardProperties[t].Bus != BUS_MCA	\
			)					\
		||						\
		(						\
			CardProperties[t].Family != FAMILY_S	\
			&&					\
			CardProperties[t].Card != CARD_DIVA	\
			)					\
		)
/* extract IDI Descriptor info for card type 't' (p == DescType/Features) */
#define IDI_PROP(t, p) (CardProperties[t].p)
#if CARDTYPE_H_WANT_DATA
#if CARDTYPE_H_WANT_IDI_DATA
/* include "di_defs.h" for IDI adapter type and feature flag definitions */
#include "di_defs.h"
#else /*!CARDTYPE_H_WANT_IDI_DATA*/
/* define IDI adapter types and feature flags here to prevent inclusion  */
#ifndef IDI_ADAPTER_S
#define IDI_ADAPTER_S           1
#define IDI_ADAPTER_PR          2
#define IDI_ADAPTER_DIVA        3
#define IDI_ADAPTER_MAESTRA     4
#endif
#ifndef DI_VOICE
#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 */
#endif
#endif /*CARDTYPE_H_WANT_IDI_DATA*/
#define DI_V1x0         (DI_V110 | DI_V120)
#define DI_NULL         0x0000
#if defined(SOFT_DSP_SUPPORT)
#define SOFT_DSP_ADD_FEATURES  (DI_MODEM | DI_FAX3 | DI_AT_PARSER)
#else
#define SOFT_DSP_ADD_FEATURES  0
#endif
#if defined(SOFT_V110_SUPPORT)
#define DI_SOFT_V110  DI_V110
#else
#define DI_SOFT_V110  0
#endif
/*--- CardProperties [Index=CARDTYPE_....] ---------------------------------*/
CARD_PROPERTIES CardProperties[] =
{
	{ /*  0  */
		"Diva MCA",       0x6336,  0x0100,
		IDI_ADAPTER_DIVA, FAMILY_DIVA, DI_V1x0 | DI_FAX3,
		CARD_DIVA,   CARD_I_NONE, BUS_MCA, CHIP_DSP,
		1, 2,  0,   8,      0
	},
	{ /*  1  */
		"Diva ISA",       0x0000,  0x0100,
		IDI_ADAPTER_DIVA, FAMILY_DIVA, DI_V1x0 | DI_FAX3,
		CARD_DIVA,   CARD_I_NONE, BUS_ISA, CHIP_DSP,
		1, 2,  0,   8,      0
	},
	{ /*  2  */
		"Diva/PCM",       0x0000,  0x0100,
		IDI_ADAPTER_DIVA, FAMILY_DIVA, DI_V1x0 | DI_FAX3,
		CARD_DIVA,   CARD_I_NONE, BUS_PCM, CHIP_DSP,
		1, 2,  0,   8,      0
	},
	{ /*  3  */
		"Diva PRO ISA",      0x0031,  0x0100,
		IDI_ADAPTER_DIVA, FAMILY_DIVA, DI_V1x0 | DI_FAX3 | DI_MODEM | DI_CODEC,
		CARD_PRO,   CARD_I_NONE, BUS_ISA, CHIP_DSP,
		1, 2,  0,   8,      0
	},
	{ /*  4  */
		"Diva PRO PC-Card",     0x0000,  0x0100,
		IDI_ADAPTER_DIVA, FAMILY_DIVA, DI_V1x0 | DI_FAX3 | DI_MODEM,
		CARD_PRO,   CARD_I_NONE, BUS_PCM, CHIP_DSP,
		1, 2,   0,   8,      0
	},
	{ /*  5  */
		"Diva PICCOLA ISA",     0x0051,  0x0100,
		IDI_ADAPTER_DIVA, FAMILY_DIVA, DI_V120 | SOFT_DSP_ADD_FEATURES,
		CARD_PICO,   CARD_I_NONE, BUS_ISA, CHIP_HSCX,
		1, 2,   0,   8,      0
	},
	{ /*  6  */
		"Diva PICCOLA PCM",     0x0000,  0x0100,
		IDI_ADAPTER_DIVA, FAMILY_DIVA, DI_V120 | SOFT_DSP_ADD_FEATURES,
		CARD_PICO,   CARD_I_NONE, BUS_PCM, CHIP_HSCX,
		1, 2,   0,   8,      0
	},
	{ /*  7  */
		"Diva PRO 2.0 S/T PCI",    0xe001,  0x0200,
		IDI_ADAPTER_DIVA, FAMILY_DIVA, DI_V1x0 | DI_FAX3 | DI_MODEM | DI_POTS,
		CARD_PRO,   CARD_I_NONE, BUS_PCI, CHIP_DSP,
		1, 2,   0,   8,      0
	},
	{ /*  8  */
		"Diva 2.0 S/T PCI",     0xe002,  0x0200,
		IDI_ADAPTER_DIVA, FAMILY_DIVA, DI_V120 | DI_POTS | SOFT_DSP_ADD_FEATURES,
		CARD_PICO,   CARD_I_NONE, BUS_PCI, CHIP_HSCX,
		1, 2,   0,   8,      0
	},
	{ /*  9  */
		"QUADRO ISA",      0x0000,  0x0100,
		IDI_ADAPTER_S,  FAMILY_S,  DI_NULL,
		CARD_QUAD,   CARD_I_QUAD, BUS_ISA, CHIP_NONE,
		4, 2,   16,  0,  0x800
	},
	{ /* 10  */
		"S ISA",       0x0000,  0x0100,
		IDI_ADAPTER_S,  FAMILY_S,  DI_CODEC,
		CARD_S,    CARD_I_S,  BUS_ISA, CHIP_NONE,
		1, 1,   16,  0,  0x800
	},
	{ /* 11  */
		"S MCA",       0x6a93,  0x0100,
		IDI_ADAPTER_S,  FAMILY_S,  DI_CODEC,
		CARD_S,    CARD_I_S,  BUS_MCA, CHIP_NONE,
		1, 1,   16,  16,  0x400
	},
	{ /* 12 */
		"SX ISA",       0x0000,  0x0100,
		IDI_ADAPTER_S,  FAMILY_S,  DI_NULL,
		CARD_SX,   CARD_I_SX,  BUS_ISA, CHIP_NONE,
		1, 2,  16,  0,  0x800
	},
	{ /* 13 */
		"SX MCA",       0x6a93,  0x0100,
		IDI_ADAPTER_S,  FAMILY_S,  DI_NULL,
		CARD_SX,   CARD_I_SX,  BUS_MCA, CHIP_NONE,
		1, 2,  16,  16,  0x400
	},
	{ /* 14 */
		"SXN ISA",       0x0000,  0x0100,
		IDI_ADAPTER_S,  FAMILY_S,  DI_NULL,
		CARD_SXN,   CARD_I_SCOM, BUS_ISA, CHIP_NONE,
		1, 2,   16,  0,   0x800
	},
	{ /* 15 */
		"SXN MCA",       0x6a93,  0x0100,
		IDI_ADAPTER_S,  FAMILY_S,  DI_NULL,
		CARD_SXN,   CARD_I_SCOM, BUS_MCA, CHIP_NONE,
		1, 2,  16,  16,  0x400
	},
	{ /* 16 */
		"SCOM ISA",       0x0000,  0x0100,
		IDI_ADAPTER_S,  FAMILY_S,  DI_CODEC,
		CARD_SCOM,   CARD_I_SCOM, BUS_ISA, CHIP_NONE,
		1, 2,   16,  0,   0x800
	},
	{ /* 17 */
		"SCOM MCA",       0x6a93,  0x0100,
		IDI_ADAPTER_S,  FAMILY_S,  DI_CODEC,
		CARD_SCOM,   CARD_I_SCOM, BUS_MCA, CHIP_NONE,
		1, 2,  16,  16,  0x400
	},
	{ /* 18 */
		"S2M ISA",       0x0000,  0x0100,
		IDI_ADAPTER_PR,  FAMILY_S,  DI_NULL,
		CARD_PR,   CARD_I_PR,  BUS_ISA, CHIP_NONE,
		1, 30,  256, 0,   0x4000
	},
	{ /* 19 */
		"S2M MCA",       0x6abb,  0x0100,
		IDI_ADAPTER_PR,  FAMILY_S,  DI_NULL,
		CARD_PR,   CARD_I_PR,  BUS_MCA, CHIP_NONE,
		1, 30,  256, 16,  0x4000
	},
	{ /* 20 */
		"Diva Server BRI-2M ISA",   0x0041,  0x0100,
		IDI_ADAPTER_MAESTRA, FAMILY_MAESTRA, DI_V1x0 | DI_FAX3 | DI_MODEM,
		CARD_MAE,   CARD_I_NONE, BUS_ISA, CHIP_DSP,
		1, 2,   16,  8,  0
	},
	{ /* 21 */
		"Diva Server BRI-2M PCI",   0xE010,  0x0100,
		IDI_ADAPTER_MAESTRA, FAMILY_MAESTRA, DI_V1x0 | DI_FAX3 | DI_MODEM,
		CARD_MAE,   CARD_I_NONE, BUS_PCI, CHIP_DSP,
		1, 2,   16,  8,   0
	},
	{ /* 22 */
		"Diva Server 4BRI-8M PCI",   0xE012,  0x0100,
		IDI_ADAPTER_MAESTRA, FAMILY_MAESTRA, DI_V1x0 | DI_FAX3 | DI_MODEM,
		CARD_MAEQ,   CARD_I_NONE, BUS_PCI, CHIP_DSP,
		4, 2,   16,  8,   0
	},
	{ /* 23 */
		"Diva Server PRI-30M PCI",   0xE014,  0x0100,
		IDI_ADAPTER_MAESTRA, FAMILY_MAESTRA, DI_V1x0 | DI_FAX3 | DI_MODEM,
		CARD_MAEP,   CARD_I_NONE, BUS_PCI, CHIP_DSP,
		1, 30,  256,  8,   0
	},
	{ /* 24 */
		"Diva Server PRI-2M PCI",   0xe014,  0x0100,
		IDI_ADAPTER_MAESTRA, FAMILY_MAESTRA, DI_V1x0 | DI_FAX3 | DI_MODEM,
		CARD_MAEP,   CARD_I_NONE, BUS_PCI, CHIP_DSP,
		1, 30,  256,  8,   0
	},
	{ /* 25 */
		"Diva Server PRI-9M PCI",   0x0000,  0x0100,
		IDI_ADAPTER_MAESTRA, FAMILY_MAESTRA, DI_V1x0 | DI_FAX3 | DI_MODEM,
		CARD_MAEP,   CARD_I_NONE, BUS_PCI, CHIP_DSP,
		1, 30,     256,  8,   0
	},
	{ /* 26 */
		"Diva 2.0 S/T ISA",     0x0071,  0x0200,
		IDI_ADAPTER_DIVA, FAMILY_DIVA, DI_V120 | DI_POTS | SOFT_DSP_ADD_FEATURES,
		CARD_PICO,   CARD_I_NONE, BUS_ISA, CHIP_HSCX,
		1, 2,  0,   8,   0
	},
	{ /* 27 */
		"Diva 2.0 U ISA",     0x0091,  0x0200,
		IDI_ADAPTER_DIVA, FAMILY_DIVA, DI_V120 | DI_POTS | SOFT_DSP_ADD_FEATURES,
		CARD_PICO,   CARD_I_NONE, BUS_ISA, CHIP_HSCX,
		1, 2,   0,   8,   0
	},
	{ /* 28 */
		"Diva 2.0 U PCI",     0xe004,  0x0200,
		IDI_ADAPTER_DIVA, FAMILY_DIVA, DI_V120 | DI_POTS | SOFT_DSP_ADD_FEATURES,
		CARD_PICO,   CARD_I_NONE, BUS_PCI, CHIP_HSCX,
		1, 2,   0,   8,   0
	},
	{ /* 29 */
		"Diva PRO 2.0 S/T ISA",    0x0061,  0x0200,
		IDI_ADAPTER_DIVA, FAMILY_DIVA, DI_V1x0 | DI_FAX3 | DI_MODEM | DI_POTS,
		CARD_PRO,   CARD_I_NONE, BUS_ISA, CHIP_DSP,
		1, 2,  0,   8,   0
	},
	{ /* 30 */
		"Diva PRO 2.0 U ISA",    0x0081,  0x0200,
		IDI_ADAPTER_DIVA, FAMILY_DIVA, DI_V1x0 | DI_FAX3 | DI_MODEM | DI_POTS,
		CARD_PRO,   CARD_I_NONE, BUS_ISA, CHIP_DSP,
		1, 2,  0,   8,   0
	},
	{ /* 31 */
		"Diva PRO 2.0 U PCI",    0xe003,  0x0200,
		IDI_ADAPTER_DIVA, FAMILY_DIVA, DI_V1x0 | DI_FAX3 | DI_MODEM | DI_POTS,
		CARD_PRO,   CARD_I_NONE, BUS_PCI, CHIP_DSP,
		1, 2,   0,   8,   0
	},
	{ /* 32 */
		"Diva MOBILE",      0x0000,  0x0100,
		IDI_ADAPTER_DIVA, FAMILY_DIVA, DI_V120 | SOFT_DSP_ADD_FEATURES,
		CARD_PICO,   CARD_I_NONE, BUS_PCM, CHIP_HSCX,
		1, 2,  0,   8,   0
	},
	{ /* 33 */
		"TDK DFI3600",      0x0000,  0x0100,
		IDI_ADAPTER_DIVA, FAMILY_DIVA, DI_V120 | SOFT_DSP_ADD_FEATURES,
		CARD_PICO,   CARD_I_NONE, BUS_PCM, CHIP_HSCX,
		1, 2,  0,   8,   0
	},
	{ /* 34 (OEM version of 4 - "Diva PRO PC-Card") */
		"New Media ISDN",     0x0000,  0x0100,
		IDI_ADAPTER_DIVA, FAMILY_DIVA, DI_V1x0 | DI_FAX3 | DI_MODEM,
		CARD_PRO,   CARD_I_NONE, BUS_PCM, CHIP_DSP,
		1, 2,   0,   8,   0
	},
	{ /* 35 (OEM version of 7 - "Diva PRO 2.0 S/T PCI") */
		"BT ExLane PCI",     0xe101,  0x0200,
		IDI_ADAPTER_DIVA, FAMILY_DIVA, DI_V1x0 | DI_FAX3 | DI_MODEM | DI_POTS,
		CARD_PRO,   CARD_I_NONE, BUS_PCI, CHIP_DSP,
		1, 2,   0,   8,   0
	},
	{ /* 36 (OEM version of 29 - "Diva PRO 2.0 S/T ISA") */
		"BT ExLane ISA",     0x1061,  0x0200,
		IDI_ADAPTER_DIVA, FAMILY_DIVA, DI_V1x0 | DI_FAX3 | DI_MODEM | DI_POTS,
		CARD_PRO,   CARD_I_NONE, BUS_ISA, CHIP_DSP,
		1, 2,   0,   8,   0
	},
	{ /* 37 */
		"Diva 2.01 S/T ISA",    0x00A1,  0x0300,
		IDI_ADAPTER_DIVA, FAMILY_DIVA, DI_V120 | SOFT_DSP_ADD_FEATURES,
		CARD_DIVALOW,  CARD_I_NONE, BUS_ISA, CHIP_IPAC,
		1, 2,   0,   8,      0
	},
	{ /* 38 */
		"Diva 2.01 U ISA",     0x00B1,  0x0300,
		IDI_ADAPTER_DIVA, FAMILY_DIVA, DI_V120 | SOFT_DSP_ADD_FEATURES,
		CARD_DIVALOW,  CARD_I_NONE, BUS_ISA, CHIP_IPAC,
		1, 2,   0,   8,      0
	},
	{ /* 39 */
		"Diva 2.01 S/T PCI",    0xe005,  0x0300,
		IDI_ADAPTER_DIVA, FAMILY_DIVA, DI_V120 | SOFT_DSP_ADD_FEATURES,
		CARD_DIVALOW,  CARD_I_NONE, BUS_PCI, CHIP_IPAC,
		1, 2,   0,   8,   0
	},
	{ /* 40        no ID yet */
		"Diva 2.01 U PCI",     0x0000,  0x0300,
		IDI_ADAPTER_DIVA, FAMILY_DIVA, DI_V120 | SOFT_DSP_ADD_FEATURES,
		CARD_DIVALOW,  CARD_I_NONE, BUS_PCI, CHIP_IPAC,
		1, 2,   0,   8,   0
	},
	{ /* 41 */
		"Diva MOBILE V.90",     0x0000,  0x0100,
		IDI_ADAPTER_DIVA, FAMILY_DIVA, DI_V120 | SOFT_DSP_ADD_FEATURES,
		CARD_PICO,   CARD_I_NONE, BUS_PCM, CHIP_HSCX,
		1, 2,  0,   8,   0
	},
	{ /* 42 */
		"TDK DFI3600 V.90",     0x0000,  0x0100,
		IDI_ADAPTER_DIVA, FAMILY_DIVA, DI_V120 | SOFT_DSP_ADD_FEATURES,
		CARD_PICO,   CARD_I_NONE, BUS_PCM, CHIP_HSCX,
		1, 2,  0,   8,   0
	},
	{ /* 43 */
		"Diva Server PRI-23M PCI",   0xe014,  0x0100,
		IDI_ADAPTER_MAESTRA, FAMILY_MAESTRA, DI_V1x0 | DI_FAX3 | DI_MODEM,
		CARD_MAEP,   CARD_I_NONE, BUS_PCI, CHIP_DSP,
		1, 30,  256,  8,   0
	},
	{ /* 44 */
		"Diva 2.01 S/T USB",    0x1000,     0x0300,
		IDI_ADAPTER_DIVA   , FAMILY_DIVA, DI_V120 | SOFT_DSP_ADD_FEATURES,
		CARD_DIVALOW,  CARD_I_NONE, BUS_USB, CHIP_IPAC,
		1,  2,  0,  8,   0
	},
	{ /* 45 */
		"Diva CT S/T PCI",    0xe006,  0x0300,
		IDI_ADAPTER_DIVA   , FAMILY_DIVA, DI_V1x0 | DI_FAX3 | DI_MODEM | DI_CODEC,
		CARD_CT,       CARD_I_NONE, BUS_PCI, CHIP_DSP,
		1,  2,  0,  0,   0
	},
	{ /* 46 */
		"Diva CT U PCI",     0xe007,  0x0300,
		IDI_ADAPTER_DIVA   , FAMILY_DIVA, DI_V1x0 | DI_FAX3 | DI_MODEM | DI_CODEC,
		CARD_CT,       CARD_I_NONE, BUS_PCI, CHIP_DSP,
		1,  2,  0,  0,   0
	},
	{ /* 47 */
		"Diva CT Lite S/T PCI",   0xe008,  0x0300,
		IDI_ADAPTER_DIVA   , FAMILY_DIVA, DI_V1x0 | DI_FAX3 | DI_MODEM | DI_CODEC,
		CARD_CT,       CARD_I_NONE, BUS_PCI, CHIP_DSP,
		1,  2,  0,  0,   0
	},
	{ /* 48 */
		"Diva CT Lite U PCI",   0xe009,  0x0300,
		IDI_ADAPTER_DIVA   , FAMILY_DIVA, DI_V1x0 | DI_FAX3 | DI_MODEM | DI_CODEC,
		CARD_CT,       CARD_I_NONE, BUS_PCI, CHIP_DSP,
		1,  2,  0,  0,   0
	},
	{ /* 49 */
		"Diva ISDN+V.90 PC Card", 0x8D8C, 0x0100,
		IDI_ADAPTER_DIVA, FAMILY_DIVA, DI_V1x0 | DI_FAX3 | DI_MODEM | DI_CODEC,
		CARD_DIVALOW, CARD_I_NONE, BUS_PCM, CHIP_IPAC,
		1, 2,  0,   8,   0
	},
	{ /* 50 */
		"Diva ISDN+V.90 PCI",    0xe00A,  0x0100,
		IDI_ADAPTER_DIVA, FAMILY_DIVA, DI_V120  | SOFT_DSP_ADD_FEATURES,
		CARD_DIVALOW,  CARD_I_NONE, BUS_PCI, CHIP_IPAC,
		1, 2,   0,   8,   0
	},
	{ /* 51 (DivaTA)      no ID */
		"Diva TA",       0x0000,  0x0300,
		IDI_ADAPTER_DIVA, FAMILY_DIVA, DI_V110 | DI_FAX3 | SOFT_DSP_ADD_FEATURES,
		CARD_DIVATA,  CARD_I_NONE, BUS_COM, CHIP_EXTERN,
		1, 1,   0,   8,   0
	},
	{ /* 52 (Diva Server 4BRI-8M PCI adapter enabled for Voice) */
		"Diva Server Voice 4BRI-8M PCI", 0xE016,  0x0100,
		IDI_ADAPTER_MAESTRA, FAMILY_MAESTRA, DI_V1x0 | DI_FAX3 | DI_MODEM | DI_VOICE_OVER_IP,
		CARD_MAEQ,   CARD_I_NONE, BUS_PCI, CHIP_DSP,
		4, 2,   16,  8,   0
	},
	{ /* 53 (Diva Server 4BRI 2.0 adapter) */
		"Diva Server 4BRI-8M 2.0 PCI",  0xE013,  0x0200,
		IDI_ADAPTER_MAESTRA, FAMILY_MAESTRA, DI_V1x0 | DI_FAX3 | DI_MODEM,
		CARD_MAEQ,   CARD_I_NONE, BUS_PCI, CHIP_DSP,
		4, 2,   16,  8,   0
	},
	{ /* 54 (Diva Server PRI 2.0 adapter) */
		"Diva Server PRI 2.0 PCI",   0xE015,  0x0200,
		IDI_ADAPTER_MAESTRA, FAMILY_MAESTRA, DI_V1x0 | DI_FAX3 | DI_MODEM,
		CARD_MAEP,   CARD_I_NONE, BUS_PCI, CHIP_DSP,
		1, 30,  256,  8,   0
	},
	{ /* 55 (Diva Server 4BRI-8M 2.0 PCI adapter enabled for Voice) */
		"Diva Server Voice 4BRI-8M 2.0 PCI", 0xE017,  0x0200,
		IDI_ADAPTER_MAESTRA, FAMILY_MAESTRA, DI_V1x0 | DI_FAX3 | DI_MODEM | DI_VOICE_OVER_IP,
		CARD_MAEQ,   CARD_I_NONE, BUS_PCI, CHIP_DSP,
		4, 2,   16,  8,   0
	},
	{ /* 56 (Diva Server PRI 2.0 PCI adapter enabled for Voice) */
		"Diva Server Voice PRI 2.0 PCI",  0xE019,  0x0200,
		IDI_ADAPTER_MAESTRA, FAMILY_MAESTRA, DI_V1x0 | DI_FAX3 | DI_MODEM | DI_VOICE_OVER_IP,
		CARD_MAEP,   CARD_I_NONE, BUS_PCI, CHIP_DSP,
		1, 30,  256,  8,   0
	},
	{
		/* 57 (DivaLan )      no ID */
		"Diva LAN",       0x0000,  0x0300,
		IDI_ADAPTER_DIVA, FAMILY_DIVA, DI_V110 | DI_FAX3 | SOFT_DSP_ADD_FEATURES,
		CARD_DIVALAN,  CARD_I_NONE, BUS_LAN, CHIP_EXTERN,
		1, 1,   0,   8,   0
	},
	{ /* 58 */
		"Diva 2.02 PCI S/T",    0xE00B,  0x0300,
		IDI_ADAPTER_DIVA, FAMILY_DIVA, DI_V120 | SOFT_DSP_ADD_FEATURES | DI_SOFT_V110,
		CARD_DIVALOW,  CARD_I_NONE, BUS_PCI, CHIP_IPACX,
		1, 2,   0,   8,   0
	},
	{ /* 59 */
		"Diva 2.02 PCI U",     0xE00C,  0x0300,
		IDI_ADAPTER_DIVA, FAMILY_DIVA, DI_V120 | SOFT_DSP_ADD_FEATURES,
		CARD_DIVALOW,  CARD_I_NONE, BUS_PCI, CHIP_IPACX,
		1, 2,   0,   8,   0
	},
	{ /* 60 */
		"Diva Server BRI-2M 2.0 PCI",     0xE018,  0x0200,
		IDI_ADAPTER_MAESTRA, FAMILY_MAESTRA, DI_V1x0 | DI_FAX3 | DI_MODEM,
		CARD_MAE2,   CARD_I_NONE, BUS_PCI, CHIP_DSP,
		1, 2,   16,  8,   0
	},
	{ /* 61  (the previous name was Diva Server BRI-2F 2.0 PCI) */
		"Diva Server 2FX",                      0xE01A,     0x0200,
		IDI_ADAPTER_MAESTRA, FAMILY_MAESTRA, DI_V1x0 | DI_FAX3 | DI_MODEM | DI_SOFT_V110,
		CARD_MAE2,          CARD_I_NONE,    BUS_PCI,    CHIP_IPACX,
		1,  2,      16,     8,   0
	},
	{ /* 62 */
		" Diva ISDN USB 2.0",    0x1003,     0x0300,
		IDI_ADAPTER_DIVA   , FAMILY_DIVA, DI_V120 | SOFT_DSP_ADD_FEATURES,
		CARD_DIVALOW,  CARD_I_NONE, BUS_USB, CHIP_IPACX,
		1, 2,  0,  8,   0
	},
	{ /* 63 (Diva Server BRI-2M 2.0 PCI adapter enabled for Voice) */
		"Diva Server Voice BRI-2M 2.0 PCI", 0xE01B,  0x0200,
		IDI_ADAPTER_MAESTRA, FAMILY_MAESTRA, DI_V1x0 | DI_FAX3 | DI_MODEM | DI_VOICE_OVER_IP,
		CARD_MAE2,   CARD_I_NONE, BUS_PCI, CHIP_DSP,
		1, 2,   16,  8,   0
	},
	{ /* 64 */
		"Diva Pro 3.0 PCI",    0xe00d,  0x0300,
		IDI_ADAPTER_DIVA   , FAMILY_DIVA, DI_V1x0 | DI_FAX3 | DI_MODEM,
		CARD_PRO,       CARD_I_NONE, BUS_PCI, CHIP_DSP,
		1,  2,  0,  0,   0
	},
	{ /* 65 */
		"Diva ISDN + CT 2.0",    0xE00E,  0x0300,
		IDI_ADAPTER_DIVA   , FAMILY_DIVA, DI_V1x0 | DI_FAX3 | DI_MODEM | DI_CODEC,
		CARD_CT,       CARD_I_NONE, BUS_PCI, CHIP_DSP,
		1,  2,  0,  0,   0
	},
	{ /* 66 */
		"Diva Mobile V.90 PC Card",  0x8331,  0x0100,
		IDI_ADAPTER_DIVA, FAMILY_DIVA, DI_V120 | SOFT_DSP_ADD_FEATURES,
		CARD_PICO,   CARD_I_NONE, BUS_PCM, CHIP_IPACX,
		1, 2,  0,   8,   0
	},
	{ /* 67 */
		"Diva ISDN PC Card",  0x8311,  0x0100,
		IDI_ADAPTER_DIVA, FAMILY_DIVA, DI_V120 | SOFT_DSP_ADD_FEATURES,
		CARD_PICO,   CARD_I_NONE, BUS_PCM, CHIP_IPACX,
		1, 2,  0,   8,   0
	},
	{ /* 68 */
		"Diva ISDN PC Card",  0x0000,  0x0100,
		IDI_ADAPTER_DIVA, FAMILY_DIVA, DI_V120 | SOFT_DSP_ADD_FEATURES,
		CARD_PRO,   CARD_I_NONE, BUS_PCM, CHIP_DSP,
		1, 2,   0,   8,      0
	},
};
#if CARDTYPE_H_WANT_RESOURCE_DATA
/*--- CardResource [Index=CARDTYPE_....]   ---------------------------(GEI)-*/
CARD_RESOURCE CardResource[] = {
/*   Interrupts     IO-Address   Mem-Address */
	/* 0*/ {  3,4,9,0,0,0,0,0,0,0,   0x200,0x20,16,   0x0,0x0,0   }, // DIVA MCA
	/* 1*/ {  3,4,9,10,11,12,0,0,0,0,  0x200,0x20,16,   0x0,0x0,0   }, // DIVA ISA
	/* 2*/ {  3,4,5,7,9,10,11,12,14,15, 0x0,0x8,8192,  0x0,0x0,0   }, // DIVA PCMCIA
	/* 3*/ {  3,5,7,9,10,11,12,14,15,0, 0x200,0x20,16,   0x0,0x0,0   }, // DIVA PRO ISA
	/* 4*/ {  3,4,5,7,9,10,11,12,14,15, 0x0,0x8,8192,  0x0,0x0,0   }, // DIVA PRO PCMCIA
	/* 5*/ {  3,5,7,9,10,11,12,14,15,0, 0x200,0x20,16,  0x0,0x0,0   }, // DIVA PICCOLA ISA
	/* 6*/ {  0,0,0,0,0,0,0,0,0,0,  0x0,0x0,0,   0x0,0x0,0   }, // DIVA PICCOLA PCMCIA
	/* 7*/ {  3,4,5,7,9,10,11,12,14,15, 0x0,0x8,8192,  0x0,0x0,0   }, // DIVA PRO 2.0 PCI
	/* 8*/ {  3,4,5,7,9,10,11,12,14,15, 0x0,0x8,8192,  0x0,0x0,0   }, // DIVA 2.0 PCI
	/* 9*/ {  3,4,5,7,9,10,11,12,0,0,  0x0,0x0,0,   0x80000,0x2000,64 }, // QUADRO ISA
	/*10*/ {  3,4,9,10,11,12,0,0,0,0,  0x0,0x0,0,   0xc0000,0x2000,16 }, // S ISA
	/*11*/ {  3,4,9,0,0,0,0,0,0,0,  0xc00,0x10,16,  0xc0000,0x2000,16 }, // S MCA
	/*12*/ {  3,4,9,10,11,12,0,0,0,0,  0x0,0x0,0,   0xc0000,0x2000,16 }, // SX ISA
	/*13*/ {  3,4,9,0,0,0,0,0,0,0,  0xc00,0x10,16,  0xc0000,0x2000,16 }, // SX MCA
	/*14*/ {  3,4,5,7,9,10,11,12,0,0,  0x0,0x0,0,   0x80000,0x0800,256 }, // SXN ISA
	/*15*/ {  3,4,9,0,0,0,0,0,0,0,  0xc00,0x10,16,  0xc0000,0x2000,16 }, // SXN MCA
	/*16*/ {  3,4,5,7,9,10,11,12,0,0,  0x0,0x0,0,   0x80000,0x0800,256 }, // SCOM ISA
	/*17*/ {  3,4,9,0,0,0,0,0,0,0,  0xc00,0x10,16,  0xc0000,0x2000,16 }, // SCOM MCA
	/*18*/ {  3,4,5,7,9,10,11,12,0,0,  0x0,0x0,0,   0xc0000,0x4000,16 }, // S2M ISA
	/*19*/ {  3,4,9,0,0,0,0,0,0,0,  0xc00,0x10,16,  0xc0000,0x4000,16 }, // S2M MCA
	/*20*/ {  3,5,7,9,10,11,12,14,15,0, 0x200,0x20,16,  0x0,0x0,0   }, // MAESTRA ISA
	/*21*/ {  3,4,5,7,9,10,11,12,14,15, 0x0,0x8,8192,  0x0,0x0,0   }, // MAESTRA PCI
	/*22*/ {  3,5,7,9,10,11,12,14,15,0, 0x200,0x20,16,  0x0,0x0,0   }, // MAESTRA QUADRO ISA
	/*23*/ {  3,4,5,7,9,10,11,12,14,15, 0x0,0x20,2048,  0x0,0x0,0   }, // MAESTRA QUADRO PCI
	/*24*/ {  3,5,7,9,10,11,12,14,15,0, 0x200,0x20,16,  0x0,0x0,0   }, // MAESTRA PRIMARY ISA
	/*25*/ {  3,4,5,7,9,10,11,12,14,15, 0x0,0x8,8192,  0x0,0x0,0   }, // MAESTRA PRIMARY PCI
	/*26*/ {  3,5,7,9,10,11,12,14,15,0, 0x200,0x20,16,  0x0,0x0,0   }, // DIVA 2.0 ISA
	/*27*/ {  3,5,7,9,10,11,12,14,15,0, 0x200,0x20,16,  0x0,0x0,0   }, // DIVA 2.0 /U ISA
	/*28*/ {  3,4,5,7,9,10,11,12,14,15, 0x0,0x8,8192,  0x0,0x0,0   }, // DIVA 2.0 /U PCI
	/*29*/ {  3,5,7,9,10,11,12,14,15,0, 0x200,0x20,16,   0x0,0x0,0   }, // DIVA PRO 2.0 ISA
	/*30*/ {  3,5,7,9,10,11,12,14,15,0, 0x200,0x20,16,   0x0,0x0,0   }, // DIVA PRO 2.0 /U ISA
	/*31*/ {  3,4,5,7,9,10,11,12,14,15, 0x0,0x8,8192,  0x0,0x0,0   }, // DIVA PRO 2.0 /U PCI
	/*32*/ {  0,0,0,0,0,0,0,0,0,0,  0x0,0x0,0,   0x0,0x0,0   }, // DIVA MOBILE
	/*33*/ {  0,0,0,0,0,0,0,0,0,0,  0x0,0x0,0,   0x0,0x0,0   }, // TDK DFI3600 (same as DIVA MOBILE [32])
	/*34*/ {  3,4,5,7,9,10,11,12,14,15, 0x0,0x8,8192,  0x0,0x0,0   }, // New Media ISDN (same as DIVA PRO PCMCIA [4])
	/*35*/ {  3,4,5,7,9,10,11,12,14,15, 0x0,0x8,8192,  0x0,0x0,0   }, // BT ExLane PCI (same as DIVA PRO 2.0 PCI [7])
	/*36*/ {  3,5,7,9,10,11,12,14,15,0, 0x200,0x20,16,   0x0,0x0,0   }, // BT ExLane ISA (same as DIVA PRO 2.0 ISA [29])
	/*37*/ {  3,5,7,9,10,11,12,14,15,0, 0x200,0x20,16,  0x0,0x0,0   }, // DIVA 2.01 S/T ISA
	/*38*/ {  3,5,7,9,10,11,12,14,15,0, 0x200,0x20,16,  0x0,0x0,0   }, // DIVA 2.01 U ISA
	/*39*/ {  3,4,5,7,9,10,11,12,14,15, 0x0,0x8,8192,  0x0,0x0,0   }, // DIVA 2.01 S/T PCI
	/*40*/ {  3,4,5,7,9,10,11,12,14,15, 0x0,0x8,8192,  0x0,0x0,0   }, // DIVA 2.01 U PCI
	/*41*/ {  0,0,0,0,0,0,0,0,0,0,  0x0,0x0,0,   0x0,0x0,0   }, // DIVA MOBILE V.90
	/*42*/ {  0,0,0,0,0,0,0,0,0,0,  0x0,0x0,0,   0x0,0x0,0   }, // TDK DFI3600 V.90 (same as DIVA MOBILE V.90 [39])
	/*43*/ {  3,4,5,7,9,10,11,12,14,15, 0x0,0x20,2048,  0x0,0x0,0   }, // DIVA Server PRI-23M PCI
	/*44*/ {  0,0,0,0,0,0,0,0,0,0,  0x0,0x0,0,   0x0,0x0,0   }, // DIVA 2.01 S/T USB
	/*45*/ {  0,0,0,0,0,0,0,0,0,0,  0x0,0x0,0,   0x0,0x0,0   }, // DIVA CT S/T PCI
	/*46*/ {  0,0,0,0,0,0,0,0,0,0,  0x0,0x0,0,   0x0,0x0,0   }, // DIVA CT U PCI
	/*47*/ {  0,0,0,0,0,0,0,0,0,0,  0x0,0x0,0,   0x0,0x0,0   }, // DIVA CT Lite S/T PCI
	/*48*/ {  0,0,0,0,0,0,0,0,0,0,  0x0,0x0,0,   0x0,0x0,0   }, // DIVA CT Lite U PCI
	/*49*/ {  0,0,0,0,0,0,0,0,0,0,  0x0,0x0,0,   0x0,0x0,0   }, // DIVA ISDN+V.90 PC Card
	/*50*/ {  3,4,5,7,9,10,11,12,14,15, 0x0,0x8,8192,  0x0,0x0,0   }, // DIVA ISDN+V.90 PCI
	/*51*/ {  0,0,0,0,0,0,0,0,0,0,  0x0,0x0,0,   0x0,0x0,0   }, // DIVA TA
	/*52*/ {  3,4,5,7,9,10,11,12,14,15, 0x0,0x20,2048,  0x0,0x0,0   }, // MAESTRA VOICE QUADRO PCI
	/*53*/ {  3,4,5,7,9,10,11,12,14,15, 0x0,0x20,2048,  0x0,0x0,0   }, // MAESTRA VOICE QUADRO PCI
	/*54*/ {  3,4,5,7,9,10,11,12,14,15, 0x0,0x8,8192,  0x0,0x0,0   }, // MAESTRA VOICE PRIMARY PCI
	/*55*/ {  3,4,5,7,9,10,11,12,14,15, 0x0,0x20,2048,  0x0,0x0,0   }, // MAESTRA VOICE QUADRO PCI
	/*56*/ {  3,4,5,7,9,10,11,12,14,15, 0x0,0x8,8192,  0x0,0x0,0   }, // MAESTRA VOICE PRIMARY PCI
	/*57*/ {  0,0,0,0,0,0,0,0,0,0,  0x0,0x0,0,   0x0,0x0,0   }, // DIVA LAN
	/*58*/ {  3,4,5,7,9,10,11,12,14,15, 0x0,0x8,8192,  0x0,0x0,0   }, // DIVA 2.02 S/T PCI
	/*59*/ {  3,4,5,7,9,10,11,12,14,15, 0x0,0x8,8192,  0x0,0x0,0   }, // DIVA 2.02 U PCI
	/*60*/ {  0,0,0,0,0,0,0,0,0,0,  0x0,0x0,0,   0x0,0x0,0   }, // Diva Server BRI-2M 2.0 PCI
	/*61*/ {  0,0,0,0,0,0,0,0,0,0,  0x0,0x0,0,   0x0,0x0,0   }, // Diva Server BRI-2F PCI
	/*62*/ {  0,0,0,0,0,0,0,0,0,0,  0x0,0x0,0,   0x0,0x0,0   }, // DIVA 2.01 S/T USB
	/*63*/ {  0,0,0,0,0,0,0,0,0,0,  0x0,0x0,0,   0x0,0x0,0   }, // Diva Server Voice BRI-2M 2.0 PCI
	/*64*/ {  3,4,5,7,9,10,11,12,14,15, 0x0,0x8,8192,  0x0,0x0,0   }, // DIVA 3.0 PCI
	/*65*/ {  0,0,0,0,0,0,0,0,0,0,  0x0,0x0,0,   0x0,0x0,0   }, // DIVA CT S/T PCI V2.0
	/*66*/ {  0,0,0,0,0,0,0,0,0,0,  0x0,0x0,0,   0x0,0x0,0   }, // DIVA Mobile V.90 PC Card
	/*67*/ {  0,0,0,0,0,0,0,0,0,0,  0x0,0x0,0,   0x0,0x0,0   }, // DIVA ISDN PC Card
	/*68*/ {  3,4,5,7,9,10,11,12,14,15, 0x0,0x8,8192,  0x0,0x0,0   }, // DIVA ISDN PC Card
};
#endif /*CARDTYPE_H_WANT_RESOURCE_DATA*/
#else /*!CARDTYPE_H_WANT_DATA*/
extern CARD_PROPERTIES  CardProperties[];
extern CARD_RESOURCE  CardResource[];
#endif /*CARDTYPE_H_WANT_DATA*/
/*
 * all existing download files
 */
#define CARD_DSP_CNT  5
#define CARD_PROT_CNT  9
#define CARD_FT_UNKNOWN     0
#define CARD_FT_B   1
#define CARD_FT_D   2
#define CARD_FT_S   3
#define CARD_FT_M   4
#define CARD_FT_NEW_DSP_COMBIFILE 5  /* File format of new DSP code (the DSP code powered by Telindus) */
#define CARD_FILE_NONE      0
#define CARD_B_S   1
#define CARD_B_P   2
#define CARD_D_K1   3
#define CARD_D_K2   4
#define CARD_D_H   5
#define CARD_D_V   6
#define CARD_D_M   7
#define CARD_D_F   8
#define CARD_P_S_E   9
#define CARD_P_S_1   10
#define CARD_P_S_B   11
#define CARD_P_S_F   12
#define CARD_P_S_A   13
#define CARD_P_S_N   14
#define CARD_P_S_5   15
#define CARD_P_S_J   16
#define CARD_P_SX_E   17
#define CARD_P_SX_1   18
#define CARD_P_SX_B   19
#define CARD_P_SX_F   20
#define CARD_P_SX_A   21
#define CARD_P_SX_N   22
#define CARD_P_SX_5   23
#define CARD_P_SX_J   24
#define CARD_P_SY_E   25
#define CARD_P_SY_1   26
#define CARD_P_SY_B   27
#define CARD_P_SY_F   28
#define CARD_P_SY_A   29
#define CARD_P_SY_N   30
#define CARD_P_SY_5   31
#define CARD_P_SY_J   32
#define CARD_P_SQ_E   33
#define CARD_P_SQ_1   34
#define CARD_P_SQ_B   35
#define CARD_P_SQ_F   36
#define CARD_P_SQ_A   37
#define CARD_P_SQ_N   38
#define CARD_P_SQ_5   39
#define CARD_P_SQ_J   40
#define CARD_P_P_E   41
#define CARD_P_P_1   42
#define CARD_P_P_B   43
#define CARD_P_P_F   44
#define CARD_P_P_A   45
#define CARD_P_P_N   46
#define CARD_P_P_5   47
#define CARD_P_P_J   48
#define CARD_P_M_E   49
#define CARD_P_M_1   50
#define CARD_P_M_B   51
#define CARD_P_M_F   52
#define CARD_P_M_A   53
#define CARD_P_M_N   54
#define CARD_P_M_5   55
#define CARD_P_M_J   56
#define CARD_P_S_S   57
#define CARD_P_SX_S   58
#define CARD_P_SY_S   59
#define CARD_P_SQ_S   60
#define CARD_P_P_S   61
#define CARD_P_M_S   62
#define CARD_D_NEW_DSP_COMBIFILE 63
typedef struct CARD_FILES_DATA
{
	char *Name;
	unsigned char  Type;
}
	CARD_FILES_DATA;
typedef struct CARD_FILES
{
	unsigned char  Boot;
	unsigned char  Dsp[CARD_DSP_CNT];
	unsigned char  DspTelindus;
	unsigned char  Prot[CARD_PROT_CNT];
}
	CARD_FILES;
#if CARDTYPE_H_WANT_DATA
#if CARDTYPE_H_WANT_FILE_DATA
CARD_FILES_DATA CardFData[] = {
// Filename   Filetype
	0,     CARD_FT_UNKNOWN,
	"didnload.bin",  CARD_FT_B,
	"diprload.bin",  CARD_FT_B,
	"didiva.bin",  CARD_FT_D,
	"didivapp.bin",  CARD_FT_D,
	"dihscx.bin",  CARD_FT_D,
	"div110.bin",  CARD_FT_D,
	"dimodem.bin",  CARD_FT_D,
	"difax.bin",  CARD_FT_D,
	"di_etsi.bin",  CARD_FT_S,
	"di_1tr6.bin",  CARD_FT_S,
	"di_belg.bin",  CARD_FT_S,
	"di_franc.bin",  CARD_FT_S,
	"di_atel.bin",  CARD_FT_S,
	"di_ni.bin",  CARD_FT_S,
	"di_5ess.bin",  CARD_FT_S,
	"di_japan.bin",  CARD_FT_S,
	"di_etsi.sx",  CARD_FT_S,
	"di_1tr6.sx",  CARD_FT_S,
	"di_belg.sx",  CARD_FT_S,
	"di_franc.sx",  CARD_FT_S,
	"di_atel.sx",  CARD_FT_S,
	"di_ni.sx",   CARD_FT_S,
	"di_5ess.sx",  CARD_FT_S,
	"di_japan.sx",  CARD_FT_S,
	"di_etsi.sy",  CARD_FT_S,
	"di_1tr6.sy",  CARD_FT_S,
	"di_belg.sy",  CARD_FT_S,
	"di_franc.sy",  CARD_FT_S,
	"di_atel.sy",  CARD_FT_S,
	"di_ni.sy",   CARD_FT_S,
	"di_5ess.sy",  CARD_FT_S,
	"di_japan.sy",  CARD_FT_S,
	"di_etsi.sq",  CARD_FT_S,
	"di_1tr6.sq",  CARD_FT_S,
	"di_belg.sq",  CARD_FT_S,
	"di_franc.sq",  CARD_FT_S,
	"di_atel.sq",  CARD_FT_S,
	"di_ni.sq",   CARD_FT_S,
	"di_5ess.sq",  CARD_FT_S,
	"di_japan.sq",  CARD_FT_S,
	"di_etsi.p",  CARD_FT_S,
	"di_1tr6.p",  CARD_FT_S,
	"di_belg.p",  CARD_FT_S,
	"di_franc.p",  CARD_FT_S,
	"di_atel.p",  CARD_FT_S,
	"di_ni.p",   CARD_FT_S,
	"di_5ess.p",  CARD_FT_S,
	"di_japan.p",  CARD_FT_S,
	"di_etsi.sm",  CARD_FT_M,
	"di_1tr6.sm",  CARD_FT_M,
	"di_belg.sm",  CARD_FT_M,
	"di_franc.sm",  CARD_FT_M,
	"di_atel.sm",  CARD_FT_M,
	"di_ni.sm",   CARD_FT_M,
	"di_5ess.sm",  CARD_FT_M,
	"di_japan.sm",  CARD_FT_M,
	"di_swed.bin",  CARD_FT_S,
	"di_swed.sx",  CARD_FT_S,
	"di_swed.sy",  CARD_FT_S,
	"di_swed.sq",  CARD_FT_S,
	"di_swed.p",  CARD_FT_S,
	"di_swed.sm",  CARD_FT_M,
	"didspdld.bin",     CARD_FT_NEW_DSP_COMBIFILE
};
CARD_FILES CardFiles[] =
{
	{ /* CARD_UNKNOWN */
		CARD_FILE_NONE,
		CARD_FILE_NONE, CARD_FILE_NONE, CARD_FILE_NONE, CARD_FILE_NONE, CARD_FILE_NONE,
		CARD_FILE_NONE,
		CARD_FILE_NONE, CARD_FILE_NONE, CARD_FILE_NONE, CARD_FILE_NONE,
		CARD_FILE_NONE, CARD_FILE_NONE, CARD_FILE_NONE, CARD_FILE_NONE,
		CARD_FILE_NONE
	},
	{ /* CARD_DIVA */
		CARD_FILE_NONE,
		CARD_D_K1, CARD_D_H, CARD_D_V, CARD_FILE_NONE, CARD_D_F,
		CARD_D_NEW_DSP_COMBIFILE,
		CARD_FILE_NONE, CARD_FILE_NONE, CARD_FILE_NONE, CARD_FILE_NONE,
		CARD_FILE_NONE, CARD_FILE_NONE, CARD_FILE_NONE, CARD_FILE_NONE,
		CARD_FILE_NONE
	},
	{ /* CARD_PRO  */
		CARD_FILE_NONE,
		CARD_D_K2, CARD_D_H, CARD_D_V, CARD_D_M, CARD_D_F,
		CARD_D_NEW_DSP_COMBIFILE,
		CARD_FILE_NONE, CARD_FILE_NONE, CARD_FILE_NONE, CARD_FILE_NONE,
		CARD_FILE_NONE, CARD_FILE_NONE, CARD_FILE_NONE, CARD_FILE_NONE,
		CARD_FILE_NONE
	},
	{ /* CARD_PICO */
		CARD_FILE_NONE,
		CARD_FILE_NONE, CARD_FILE_NONE, CARD_FILE_NONE, CARD_FILE_NONE, CARD_FILE_NONE,
		CARD_FILE_NONE,
		CARD_FILE_NONE, CARD_FILE_NONE, CARD_FILE_NONE, CARD_FILE_NONE,
		CARD_FILE_NONE, CARD_FILE_NONE, CARD_FILE_NONE, CARD_FILE_NONE,
		CARD_FILE_NONE
	},
	{ /* CARD_S    */
		CARD_B_S,
		CARD_FILE_NONE, CARD_FILE_NONE, CARD_FILE_NONE, CARD_FILE_NONE, CARD_FILE_NONE,
		CARD_FILE_NONE,
		CARD_P_S_E, CARD_P_S_1, CARD_P_S_B, CARD_P_S_F,
		CARD_P_S_A, CARD_P_S_N, CARD_P_S_5, CARD_P_S_J,
		CARD_P_S_S
	},
	{ /* CARD_SX   */
		CARD_B_S,
		CARD_FILE_NONE, CARD_FILE_NONE, CARD_FILE_NONE, CARD_FILE_NONE, CARD_FILE_NONE,
		CARD_FILE_NONE,
		CARD_P_SX_E, CARD_P_SX_1, CARD_P_SX_B, CARD_P_SX_F,
		CARD_P_SX_A, CARD_P_SX_N, CARD_P_SX_5, CARD_P_SX_J,
		CARD_P_SX_S
	},
	{ /* CARD_SXN  */
		CARD_B_S,
		CARD_FILE_NONE, CARD_FILE_NONE, CARD_FILE_NONE, CARD_FILE_NONE, CARD_FILE_NONE,
		CARD_FILE_NONE,
		CARD_P_SY_E, CARD_P_SY_1, CARD_P_SY_B, CARD_P_SY_F,
		CARD_P_SY_A, CARD_P_SY_N, CARD_P_SY_5, CARD_P_SY_J,
		CARD_P_SY_S
	},
	{ /* CARD_SCOM */
		CARD_B_S,
		CARD_FILE_NONE, CARD_FILE_NONE, CARD_FILE_NONE, CARD_FILE_NONE, CARD_FILE_NONE,
		CARD_FILE_NONE,
		CARD_P_SY_E, CARD_P_SY_1, CARD_P_SY_B, CARD_P_SY_F,
		CARD_P_SY_A, CARD_P_SY_N, CARD_P_SY_5, CARD_P_SY_J,
		CARD_P_SY_S
	},
	{ /* CARD_QUAD */
		CARD_B_S,
		CARD_FILE_NONE, CARD_FILE_NONE, CARD_FILE_NONE, CARD_FILE_NONE, CARD_FILE_NONE,
		CARD_FILE_NONE,
		CARD_P_SQ_E, CARD_P_SQ_1, CARD_P_SQ_B, CARD_P_SQ_F,
		CARD_P_SQ_A, CARD_P_SQ_N, CARD_P_SQ_5, CARD_P_SQ_J,
		CARD_P_SQ_S
	},
	{ /* CARD_PR   */
		CARD_B_P,
		CARD_FILE_NONE, CARD_FILE_NONE, CARD_FILE_NONE, CARD_FILE_NONE, CARD_FILE_NONE,
		CARD_FILE_NONE,
		CARD_P_P_E, CARD_P_P_1, CARD_P_P_B, CARD_P_P_F,
		CARD_P_P_A, CARD_P_P_N, CARD_P_P_5, CARD_P_P_J,
		CARD_P_P_S
	},
	{ /* CARD_MAE  */
		CARD_FILE_NONE,
		CARD_D_K2, CARD_D_H, CARD_D_V, CARD_D_M, CARD_D_F,
		CARD_D_NEW_DSP_COMBIFILE,
		CARD_P_M_E, CARD_P_M_1, CARD_P_M_B, CARD_P_M_F,
		CARD_P_M_A, CARD_P_M_N, CARD_P_M_5, CARD_P_M_J,
		CARD_P_M_S
	},
	{ /* CARD_MAEQ */  /* currently not supported */
		CARD_FILE_NONE,
		CARD_FILE_NONE, CARD_FILE_NONE, CARD_FILE_NONE, CARD_FILE_NONE, CARD_FILE_NONE,
		CARD_FILE_NONE,
		CARD_FILE_NONE, CARD_FILE_NONE, CARD_FILE_NONE, CARD_FILE_NONE,
		CARD_FILE_NONE, CARD_FILE_NONE, CARD_FILE_NONE, CARD_FILE_NONE,
		CARD_FILE_NONE
	},
	{ /* CARD_MAEP */  /* currently not supported */
		CARD_FILE_NONE,
		CARD_FILE_NONE, CARD_FILE_NONE, CARD_FILE_NONE, CARD_FILE_NONE, CARD_FILE_NONE,
		CARD_FILE_NONE,
		CARD_FILE_NONE, CARD_FILE_NONE, CARD_FILE_NONE, CARD_FILE_NONE,
		CARD_FILE_NONE, CARD_FILE_NONE, CARD_FILE_NONE, CARD_FILE_NONE,
		CARD_FILE_NONE
	}
};
#endif /*CARDTYPE_H_WANT_FILE_DATA*/
#else /*!CARDTYPE_H_WANT_DATA*/
extern CARD_FILES_DATA  CardFData[];
extern CARD_FILES   CardFiles[];
#endif /*CARDTYPE_H_WANT_DATA*/
#endif /* _CARDTYPE_H_ */