isdn4linux-web/workshop/hisax/config.c.shtml

686 lines
32 KiB
Plaintext

<HTML>
<!-- Generated by c2html-1.0, Copyright 1998 by Dave Whittington -->
<HEAD>
<TITLE>config.c</TITLE>
<!--#include virtual="/ssi/js.shtml" -->
<!--#include virtual="/ssi/buttondefs.shtml" -->
</HEAD>
<BODY BGCOLOR="#FFFFFF">
<TABLE WIDTH="100%">
<TR>
<TD ALIGN=LEFT WIDTH="90"><!--#include virtual="/ssi/b_home.shtml" --></TD>
<TD ALIGN=RIGHT WIDTH="90"><!--#include virtual="/ssi/b_index.shtml" --></TD>
</TR>
</TABLE>
<CENTER><H1>config.c</H1></CENTER>
<HR>
<PRE>
<FONT COLOR=#0000FF>/* $Id$
* Author Karsten Keil (keil@temic-ech.spacenet.de)
* based on the teles driver from Jan den Ouden
*
*
* $Log$
* Revision 2.16 1998/05/25 14:10:03 keil
* HiSax 3.0
* X.75 and leased are working again.
*
* Revision 2.15 1998/05/25 12:57:43 keil
* HiSax golden code from certification, Don't use !!!
* No leased lines, no X75, but many changes.
*
* Revision 2.14 1998/04/15 16:38:25 keil
* Add S0Box and Teles PCI support
*
* Revision 2.13 1998/03/09 23:19:23 keil
* Changes for PCMCIA
*
* Revision 2.12 1998/02/11 17:28:02 keil
* Niccy PnP/PCI support
*
* Revision 2.11 1998/02/09 21:26:13 keil
* fix export module for 2.1
*
* Revision 2.10 1998/02/09 18:46:05 keil
* Support for Sedlbauer PCMCIA (Marcus Niemann)
*
* Revision 2.9 1998/02/03 23:31:28 keil
* add AMD7930 support
*
* Revision 2.8 1998/02/02 13:32:59 keil
* New card support
*
* Revision 2.7 1998/01/31 21:41:44 keil
* changes for newer 2.1 kernels
*
* Revision 2.6 1997/11/08 21:35:43 keil
* new l1 init
*
* Revision 2.5 1997/11/06 17:15:08 keil
* New 2.1 init; PCMCIA wrapper changes
*
* Revision 2.4 1997/10/29 19:07:52 keil
* changes for 2.1
*
* Revision 2.3 1997/10/01 09:21:33 fritz
* Removed old compatibility stuff for 2.0.X kernels.
* From now on, this code is for 2.1.X ONLY!
* Old stuff is still in the separate branch.
*
* Revision 2.2 1997/09/11 17:24:46 keil
* Add new cards
*
* Revision 2.1 1997/07/27 21:41:35 keil
* version change
*
* Revision 2.0 1997/06/26 11:06:28 keil
* New card and L1 interface.
* Eicon.Diehl Diva and Dynalink IS64PH support
*
* old changes removed /KKe
*
*/</FONT>
<FONT COLOR=#A521F7>#include</FONT> &lt;linux/types.h&gt;
<FONT COLOR=#A521F7>#include</FONT> &lt;linux/stddef.h&gt;
<FONT COLOR=#A521F7>#include</FONT> &lt;linux/timer.h&gt;
<FONT COLOR=#A521F7>#include</FONT> &lt;linux/config.h&gt;
<FONT COLOR=#A521F7>#include</FONT> <FONT COLOR="#FF0000">"hisax.h"</FONT>
<FONT COLOR=#0000FF>/*
* This structure array contains one entry per card. An entry looks
* like this:
*
* { type, protocol, p0, p1, p2, NULL }
*
* type
* 1 Teles 16.0 p0=irq p1=membase p2=iobase
* 2 Teles 8.0 p0=irq p1=membase
* 3 Teles 16.3 p0=irq p1=iobase
* 4 Creatix PNP p0=irq p1=IO0 (ISAC) p2=IO1 (HSCX)
* 5 AVM A1 (Fritz) p0=irq p1=iobase
* 6 ELSA PC [p0=iobase] or nothing (autodetect)
* 7 ELSA Quickstep p0=irq p1=iobase
* 8 Teles PCMCIA p0=irq p1=iobase
* 9 ITK ix1-micro p0=irq p1=iobase
* 10 ELSA PCMCIA p0=irq p1=iobase
* 11 Eicon.Diehl Diva p0=irq p1=iobase
* 12 Asuscom ISDNLink p0=irq p1=iobase
* 13 Teleint p0=irq p1=iobase
* 14 Teles 16.3c p0=irq p1=iobase
* 15 Sedlbauer speed p0=irq p1=iobase
* 16 USR Sportster internal p0=irq p1=iobase
* 17 MIC card p0=irq p1=iobase
* 18 ELSA Quickstep 1000PCI no parameter
* 19 Compaq ISDN S0 ISA card p0=irq p1=IO0 (HSCX) p2=IO1 (ISAC) p3=IO2
* 20 Travers Technologies NETjet PCI card
* 21 reserved TELES PCI
* 22 Sedlbauer Speed Star p0=irq p1=iobase
* 23 reserved
* 24 Dr Neuhaus Niccy PnP/PCI card p0=irq p1=IO0 p2=IO1 (PnP only)
*
*
* protocol can be either ISDN_PTYPE_EURO or ISDN_PTYPE_1TR6 or ISDN_PTYPE_NI1
*
*
*/</FONT>
<FONT COLOR=#A521F7>#ifdef</FONT> CONFIG_HISAX_ELSA
<FONT COLOR=#A521F7>#define</FONT> <A NAME="DEFAULT_CARD">DEFAULT_CARD</A> <A HREF="hisax.h.shtml#ISDN_CTYPE_ELSA">ISDN_CTYPE_ELSA</A>
<FONT COLOR=#A521F7>#define</FONT> <A NAME="DEFAULT_CFG">DEFAULT_CFG</A> {0,0,0,0}
<FONT COLOR="#298C52">int</FONT> <A HREF="#elsa_init_pcmcia">elsa_init_pcmcia</A>(<FONT COLOR="#298C52">void</FONT>*, <FONT COLOR="#298C52">int</FONT>, <FONT COLOR="#298C52">int</FONT>*, <FONT COLOR="#298C52">int</FONT>);
EXPORT_SYMBOL(<A HREF="#elsa_init_pcmcia">elsa_init_pcmcia</A>);
<FONT COLOR=#A521F7>#endif</FONT>
<FONT COLOR=#A521F7>#ifdef</FONT> CONFIG_HISAX_AVM_A1
<FONT COLOR=#A521F7>#undef</FONT> <A HREF="#DEFAULT_CARD">DEFAULT_CARD</A>
<FONT COLOR=#A521F7>#undef</FONT> <A HREF="#DEFAULT_CFG">DEFAULT_CFG</A>
<FONT COLOR=#A521F7>#define</FONT> <A HREF="#DEFAULT_CARD">DEFAULT_CARD</A> <A HREF="hisax.h.shtml#ISDN_CTYPE_A1">ISDN_CTYPE_A1</A>
<FONT COLOR=#A521F7>#define</FONT> <A HREF="#DEFAULT_CFG">DEFAULT_CFG</A> {10,0x340,0,0}
<FONT COLOR=#A521F7>#endif</FONT>
<FONT COLOR=#A521F7>#ifdef</FONT> CONFIG_HISAX_16_3
<FONT COLOR=#A521F7>#undef</FONT> <A HREF="#DEFAULT_CARD">DEFAULT_CARD</A>
<FONT COLOR=#A521F7>#undef</FONT> <A HREF="#DEFAULT_CFG">DEFAULT_CFG</A>
<FONT COLOR=#A521F7>#define</FONT> <A HREF="#DEFAULT_CARD">DEFAULT_CARD</A> <A HREF="hisax.h.shtml#ISDN_CTYPE_16_3">ISDN_CTYPE_16_3</A>
<FONT COLOR=#A521F7>#define</FONT> <A HREF="#DEFAULT_CFG">DEFAULT_CFG</A> {15,0x180,0,0}
<FONT COLOR=#A521F7>#endif</FONT>
<FONT COLOR=#A521F7>#ifdef</FONT> CONFIG_HISAX_S0BOX
<FONT COLOR=#A521F7>#undef</FONT> <A HREF="#DEFAULT_CARD">DEFAULT_CARD</A>
<FONT COLOR=#A521F7>#undef</FONT> <A HREF="#DEFAULT_CFG">DEFAULT_CFG</A>
<FONT COLOR=#A521F7>#define</FONT> <A HREF="#DEFAULT_CARD">DEFAULT_CARD</A> <A HREF="hisax.h.shtml#ISDN_CTYPE_S0BOX">ISDN_CTYPE_S0BOX</A>
<FONT COLOR=#A521F7>#define</FONT> <A HREF="#DEFAULT_CFG">DEFAULT_CFG</A> {7,0x378,0,0}
<FONT COLOR=#A521F7>#endif</FONT>
<FONT COLOR=#A521F7>#ifdef</FONT> CONFIG_HISAX_16_0
<FONT COLOR=#A521F7>#undef</FONT> <A HREF="#DEFAULT_CARD">DEFAULT_CARD</A>
<FONT COLOR=#A521F7>#undef</FONT> <A HREF="#DEFAULT_CFG">DEFAULT_CFG</A>
<FONT COLOR=#A521F7>#define</FONT> <A HREF="#DEFAULT_CARD">DEFAULT_CARD</A> <A HREF="hisax.h.shtml#ISDN_CTYPE_16_0">ISDN_CTYPE_16_0</A>
<FONT COLOR=#A521F7>#define</FONT> <A HREF="#DEFAULT_CFG">DEFAULT_CFG</A> {15,0xd0000,0xd80,0}
<FONT COLOR=#A521F7>#endif</FONT>
<FONT COLOR=#A521F7>#ifdef</FONT> CONFIG_HISAX_TELESPCI
<FONT COLOR=#A521F7>#undef</FONT> <A HREF="#DEFAULT_CARD">DEFAULT_CARD</A>
<FONT COLOR=#A521F7>#undef</FONT> <A HREF="#DEFAULT_CFG">DEFAULT_CFG</A>
<FONT COLOR=#A521F7>#define</FONT> <A HREF="#DEFAULT_CARD">DEFAULT_CARD</A> <A HREF="hisax.h.shtml#ISDN_CTYPE_TELESPCI">ISDN_CTYPE_TELESPCI</A>
<FONT COLOR=#A521F7>#define</FONT> <A HREF="#DEFAULT_CFG">DEFAULT_CFG</A> {0,0,0,0}
<FONT COLOR=#A521F7>#endif</FONT>
<FONT COLOR=#A521F7>#ifdef</FONT> CONFIG_HISAX_IX1MICROR2
<FONT COLOR=#A521F7>#undef</FONT> <A HREF="#DEFAULT_CARD">DEFAULT_CARD</A>
<FONT COLOR=#A521F7>#undef</FONT> <A HREF="#DEFAULT_CFG">DEFAULT_CFG</A>
<FONT COLOR=#A521F7>#define</FONT> <A HREF="#DEFAULT_CARD">DEFAULT_CARD</A> <A HREF="hisax.h.shtml#ISDN_CTYPE_IX1MICROR2">ISDN_CTYPE_IX1MICROR2</A>
<FONT COLOR=#A521F7>#define</FONT> <A HREF="#DEFAULT_CFG">DEFAULT_CFG</A> {5,0x390,0,0}
<FONT COLOR=#A521F7>#endif</FONT>
<FONT COLOR=#A521F7>#ifdef</FONT> CONFIG_HISAX_DIEHLDIVA
<FONT COLOR=#A521F7>#undef</FONT> <A HREF="#DEFAULT_CARD">DEFAULT_CARD</A>
<FONT COLOR=#A521F7>#undef</FONT> <A HREF="#DEFAULT_CFG">DEFAULT_CFG</A>
<FONT COLOR=#A521F7>#define</FONT> <A HREF="#DEFAULT_CARD">DEFAULT_CARD</A> <A HREF="hisax.h.shtml#ISDN_CTYPE_DIEHLDIVA">ISDN_CTYPE_DIEHLDIVA</A>
<FONT COLOR=#A521F7>#define</FONT> <A HREF="#DEFAULT_CFG">DEFAULT_CFG</A> {0,0x0,0,0}
<FONT COLOR=#A521F7>#endif</FONT>
<FONT COLOR=#A521F7>#ifdef</FONT> CONFIG_HISAX_ASUSCOM
<FONT COLOR=#A521F7>#undef</FONT> <A HREF="#DEFAULT_CARD">DEFAULT_CARD</A>
<FONT COLOR=#A521F7>#undef</FONT> <A HREF="#DEFAULT_CFG">DEFAULT_CFG</A>
<FONT COLOR=#A521F7>#define</FONT> <A HREF="#DEFAULT_CARD">DEFAULT_CARD</A> <A HREF="hisax.h.shtml#ISDN_CTYPE_ASUSCOM">ISDN_CTYPE_ASUSCOM</A>
<FONT COLOR=#A521F7>#define</FONT> <A HREF="#DEFAULT_CFG">DEFAULT_CFG</A> {5,0x200,0,0}
<FONT COLOR=#A521F7>#endif</FONT>
<FONT COLOR=#A521F7>#ifdef</FONT> CONFIG_HISAX_TELEINT
<FONT COLOR=#A521F7>#undef</FONT> <A HREF="#DEFAULT_CARD">DEFAULT_CARD</A>
<FONT COLOR=#A521F7>#undef</FONT> <A HREF="#DEFAULT_CFG">DEFAULT_CFG</A>
<FONT COLOR=#A521F7>#define</FONT> <A HREF="#DEFAULT_CARD">DEFAULT_CARD</A> <A HREF="hisax.h.shtml#ISDN_CTYPE_TELEINT">ISDN_CTYPE_TELEINT</A>
<FONT COLOR=#A521F7>#define</FONT> <A HREF="#DEFAULT_CFG">DEFAULT_CFG</A> {5,0x300,0,0}
<FONT COLOR=#A521F7>#endif</FONT>
<FONT COLOR=#A521F7>#ifdef</FONT> CONFIG_HISAX_SEDLBAUER
<FONT COLOR=#A521F7>#undef</FONT> <A HREF="#DEFAULT_CARD">DEFAULT_CARD</A>
<FONT COLOR=#A521F7>#undef</FONT> <A HREF="#DEFAULT_CFG">DEFAULT_CFG</A>
<FONT COLOR=#A521F7>#define</FONT> <A HREF="#DEFAULT_CARD">DEFAULT_CARD</A> <A HREF="hisax.h.shtml#ISDN_CTYPE_SEDLBAUER">ISDN_CTYPE_SEDLBAUER</A>
<FONT COLOR=#A521F7>#define</FONT> <A HREF="#DEFAULT_CFG">DEFAULT_CFG</A> {11,0x270,0,0}
<FONT COLOR="#298C52">int</FONT> <A HREF="#sedl_init_pcmcia">sedl_init_pcmcia</A>(<FONT COLOR="#298C52">void</FONT>*, <FONT COLOR="#298C52">int</FONT>, <FONT COLOR="#298C52">int</FONT>*, <FONT COLOR="#298C52">int</FONT>);
EXPORT_SYMBOL(<A HREF="#sedl_init_pcmcia">sedl_init_pcmcia</A>);
<FONT COLOR=#A521F7>#endif</FONT>
<FONT COLOR=#A521F7>#ifdef</FONT> CONFIG_HISAX_SPORTSTER
<FONT COLOR=#A521F7>#undef</FONT> <A HREF="#DEFAULT_CARD">DEFAULT_CARD</A>
<FONT COLOR=#A521F7>#undef</FONT> <A HREF="#DEFAULT_CFG">DEFAULT_CFG</A>
<FONT COLOR=#A521F7>#define</FONT> <A HREF="#DEFAULT_CARD">DEFAULT_CARD</A> <A HREF="hisax.h.shtml#ISDN_CTYPE_SPORTSTER">ISDN_CTYPE_SPORTSTER</A>
<FONT COLOR=#A521F7>#define</FONT> <A HREF="#DEFAULT_CFG">DEFAULT_CFG</A> {7,0x268,0,0}
<FONT COLOR=#A521F7>#endif</FONT>
<FONT COLOR=#A521F7>#ifdef</FONT> CONFIG_HISAX_MIC
<FONT COLOR=#A521F7>#undef</FONT> <A HREF="#DEFAULT_CARD">DEFAULT_CARD</A>
<FONT COLOR=#A521F7>#undef</FONT> <A HREF="#DEFAULT_CFG">DEFAULT_CFG</A>
<FONT COLOR=#A521F7>#define</FONT> <A HREF="#DEFAULT_CARD">DEFAULT_CARD</A> <A HREF="hisax.h.shtml#ISDN_CTYPE_MIC">ISDN_CTYPE_MIC</A>
<FONT COLOR=#A521F7>#define</FONT> <A HREF="#DEFAULT_CFG">DEFAULT_CFG</A> {12,0x3e0,0,0}
<FONT COLOR=#A521F7>#endif</FONT>
<FONT COLOR=#A521F7>#ifdef</FONT> CONFIG_HISAX_NETJET
<FONT COLOR=#A521F7>#undef</FONT> <A HREF="#DEFAULT_CARD">DEFAULT_CARD</A>
<FONT COLOR=#A521F7>#undef</FONT> <A HREF="#DEFAULT_CFG">DEFAULT_CFG</A>
<FONT COLOR=#A521F7>#define</FONT> <A HREF="#DEFAULT_CARD">DEFAULT_CARD</A> <A HREF="hisax.h.shtml#ISDN_CTYPE_NETJET">ISDN_CTYPE_NETJET</A>
<FONT COLOR=#A521F7>#define</FONT> <A HREF="#DEFAULT_CFG">DEFAULT_CFG</A> {0,0,0,0}
<FONT COLOR=#A521F7>#endif</FONT>
<FONT COLOR=#A521F7>#ifdef</FONT> CONFIG_HISAX_TELES3C
<FONT COLOR=#A521F7>#undef</FONT> <A HREF="#DEFAULT_CARD">DEFAULT_CARD</A>
<FONT COLOR=#A521F7>#undef</FONT> <A HREF="#DEFAULT_CFG">DEFAULT_CFG</A>
<FONT COLOR=#A521F7>#define</FONT> <A HREF="#DEFAULT_CARD">DEFAULT_CARD</A> <A HREF="hisax.h.shtml#ISDN_CTYPE_TELES3C">ISDN_CTYPE_TELES3C</A>
<FONT COLOR=#A521F7>#define</FONT> <A HREF="#DEFAULT_CFG">DEFAULT_CFG</A> {5,0x500,0,0}
<FONT COLOR=#A521F7>#endif</FONT>
<FONT COLOR=#A521F7>#ifdef</FONT> CONFIG_HISAX_AMD7930
<FONT COLOR=#A521F7>#undef</FONT> <A HREF="#DEFAULT_CARD">DEFAULT_CARD</A>
<FONT COLOR=#A521F7>#undef</FONT> <A HREF="#DEFAULT_CFG">DEFAULT_CFG</A>
<FONT COLOR=#A521F7>#define</FONT> <A HREF="#DEFAULT_CARD">DEFAULT_CARD</A> <A HREF="hisax.h.shtml#ISDN_CTYPE_AMD7930">ISDN_CTYPE_AMD7930</A>
<FONT COLOR=#A521F7>#define</FONT> <A HREF="#DEFAULT_CFG">DEFAULT_CFG</A> {12,0x3e0,0,0}
<FONT COLOR=#A521F7>#endif</FONT>
<FONT COLOR=#A521F7>#ifdef</FONT> CONFIG_HISAX_NICCY
<FONT COLOR=#A521F7>#undef</FONT> <A HREF="#DEFAULT_CARD">DEFAULT_CARD</A>
<FONT COLOR=#A521F7>#undef</FONT> <A HREF="#DEFAULT_CFG">DEFAULT_CFG</A>
<FONT COLOR=#A521F7>#define</FONT> <A HREF="#DEFAULT_CARD">DEFAULT_CARD</A> <A HREF="hisax.h.shtml#ISDN_CTYPE_NICCY">ISDN_CTYPE_NICCY</A>
<FONT COLOR=#A521F7>#define</FONT> <A HREF="#DEFAULT_CFG">DEFAULT_CFG</A> {0,0x0,0,0}
<FONT COLOR=#A521F7>#endif</FONT>
<FONT COLOR=#A521F7>#ifdef</FONT> CONFIG_HISAX_1TR6
<FONT COLOR=#A521F7>#define</FONT> <A NAME="DEFAULT_PROTO">DEFAULT_PROTO</A> ISDN_PTYPE_1TR6
<FONT COLOR=#A521F7>#define</FONT> <A NAME="DEFAULT_PROTO_NAME">DEFAULT_PROTO_NAME</A> <FONT COLOR="#FF0000">"1TR6"</FONT>
<FONT COLOR=#A521F7>#endif</FONT>
<FONT COLOR=#A521F7>#ifdef</FONT> CONFIG_HISAX_EURO
<FONT COLOR=#A521F7>#undef</FONT> <A HREF="#DEFAULT_PROTO">DEFAULT_PROTO</A>
<FONT COLOR=#A521F7>#define</FONT> <A HREF="#DEFAULT_PROTO">DEFAULT_PROTO</A> ISDN_PTYPE_EURO
<FONT COLOR=#A521F7>#undef</FONT> <A HREF="#DEFAULT_PROTO_NAME">DEFAULT_PROTO_NAME</A>
<FONT COLOR=#A521F7>#define</FONT> <A HREF="#DEFAULT_PROTO_NAME">DEFAULT_PROTO_NAME</A> <FONT COLOR="#FF0000">"EURO"</FONT>
<FONT COLOR=#A521F7>#endif</FONT>
<FONT COLOR=#A521F7>#ifdef</FONT> CONFIG_HISAX_NI1
<FONT COLOR=#A521F7>#undef</FONT> <A HREF="#DEFAULT_PROTO">DEFAULT_PROTO</A>
<FONT COLOR=#A521F7>#define</FONT> <A HREF="#DEFAULT_PROTO">DEFAULT_PROTO</A> ISDN_PTYPE_NI1
<FONT COLOR=#A521F7>#undef</FONT> <A HREF="#DEFAULT_PROTO_NAME">DEFAULT_PROTO_NAME</A>
<FONT COLOR=#A521F7>#define</FONT> <A HREF="#DEFAULT_PROTO_NAME">DEFAULT_PROTO_NAME</A> <FONT COLOR="#FF0000">"NI1"</FONT>
<FONT COLOR=#A521F7>#endif</FONT>
<FONT COLOR=#A521F7>#ifndef</FONT> <A HREF="#DEFAULT_PROTO">DEFAULT_PROTO</A>
<FONT COLOR=#A521F7>#define</FONT> <A HREF="#DEFAULT_PROTO">DEFAULT_PROTO</A> ISDN_PTYPE_UNKNOWN
<FONT COLOR=#A521F7>#define</FONT> <A HREF="#DEFAULT_PROTO_NAME">DEFAULT_PROTO_NAME</A> <FONT COLOR="#FF0000">"UNKNOWN"</FONT>
<FONT COLOR=#A521F7>#endif</FONT>
<FONT COLOR=#A521F7>#ifndef</FONT> <A HREF="#DEFAULT_CARD">DEFAULT_CARD</A>
<FONT COLOR=#A521F7>#error</FONT> <FONT COLOR="#FF0000">"HiSax: No cards configured"</FONT>
<FONT COLOR=#A521F7>#endif</FONT>
<FONT COLOR=#A521F7>#define</FONT> <A NAME="FIRST_CARD">FIRST_CARD</A> { \
<A HREF="#DEFAULT_CARD">DEFAULT_CARD</A>, \
<A HREF="#DEFAULT_PROTO">DEFAULT_PROTO</A>, \
<A HREF="#DEFAULT_CFG">DEFAULT_CFG</A>, \
NULL, \
}
<FONT COLOR=#A521F7>#define</FONT> <A NAME="EMPTY_CARD">EMPTY_CARD</A> {0, <A HREF="#DEFAULT_PROTO">DEFAULT_PROTO</A>, {0, 0, 0, 0}, NULL}
<FONT COLOR="#298C52">struct</FONT> IsdnCard cards[] =
{
<A HREF="#FIRST_CARD">FIRST_CARD</A>,
<A HREF="#EMPTY_CARD">EMPTY_CARD</A>,
<A HREF="#EMPTY_CARD">EMPTY_CARD</A>,
<A HREF="#EMPTY_CARD">EMPTY_CARD</A>,
<A HREF="#EMPTY_CARD">EMPTY_CARD</A>,
<A HREF="#EMPTY_CARD">EMPTY_CARD</A>,
<A HREF="#EMPTY_CARD">EMPTY_CARD</A>,
<A HREF="#EMPTY_CARD">EMPTY_CARD</A>,
};
<FONT COLOR="#298C52">static</FONT> <FONT COLOR="#298C52">char</FONT> HiSaxID[64] <A HREF="hisax.h.shtml#HISAX_INITDATA">HISAX_INITDATA</A> = <FONT COLOR="#FF0000">"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"</FONT> \
<FONT COLOR="#FF0000">"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"</FONT> \
<FONT COLOR="#FF0000">"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"</FONT>;
<FONT COLOR="#298C52">char</FONT> *HiSax_id <A HREF="hisax.h.shtml#HISAX_INITDATA">HISAX_INITDATA</A> = HiSaxID;
<FONT COLOR=#A521F7>#ifdef</FONT> MODULE
<FONT COLOR=#0000FF>/* Variables for insmod */</FONT>
<FONT COLOR="#298C52">static</FONT> <FONT COLOR="#298C52">int</FONT> type[] <A HREF="hisax.h.shtml#HISAX_INITDATA">HISAX_INITDATA</A> =
{0, 0, 0, 0, 0, 0, 0, 0};
<FONT COLOR="#298C52">static</FONT> <FONT COLOR="#298C52">int</FONT> protocol[] <A HREF="hisax.h.shtml#HISAX_INITDATA">HISAX_INITDATA</A> =
{0, 0, 0, 0, 0, 0, 0, 0};
<FONT COLOR="#298C52">static</FONT> <FONT COLOR="#298C52">int</FONT> io[] <A HREF="hisax.h.shtml#HISAX_INITDATA">HISAX_INITDATA</A> =
{0, 0, 0, 0, 0, 0, 0, 0};
<FONT COLOR=#A521F7>#undef</FONT> <A HREF="#IO0_IO1">IO0_IO1</A>
<FONT COLOR=#A521F7>#ifdef</FONT> CONFIG_HISAX_16_3
<FONT COLOR=#A521F7>#define</FONT> <A NAME="IO0_IO1">IO0_IO1</A>
<FONT COLOR=#A521F7>#endif</FONT>
<FONT COLOR=#A521F7>#ifdef</FONT> CONFIG_HISAX_NICCY
<FONT COLOR=#A521F7>#undef</FONT> <A HREF="#IO0_IO1">IO0_IO1</A>
<FONT COLOR=#A521F7>#define</FONT> <A HREF="#IO0_IO1">IO0_IO1</A>
<FONT COLOR=#A521F7>#endif</FONT>
<FONT COLOR=#A521F7>#ifdef</FONT> <A HREF="#IO0_IO1">IO0_IO1</A>
<FONT COLOR="#298C52">static</FONT> <FONT COLOR="#298C52">int</FONT> io0[] <A HREF="hisax.h.shtml#HISAX_INITDATA">HISAX_INITDATA</A> =
{0, 0, 0, 0, 0, 0, 0, 0};
<FONT COLOR="#298C52">static</FONT> <FONT COLOR="#298C52">int</FONT> io1[] <A HREF="hisax.h.shtml#HISAX_INITDATA">HISAX_INITDATA</A> =
{0, 0, 0, 0, 0, 0, 0, 0};
<FONT COLOR=#A521F7>#endif</FONT>
<FONT COLOR="#298C52">static</FONT> <FONT COLOR="#298C52">int</FONT> irq[] <A HREF="hisax.h.shtml#HISAX_INITDATA">HISAX_INITDATA</A> =
{0, 0, 0, 0, 0, 0, 0, 0};
<FONT COLOR="#298C52">static</FONT> <FONT COLOR="#298C52">int</FONT> mem[] <A HREF="hisax.h.shtml#HISAX_INITDATA">HISAX_INITDATA</A> =
{0, 0, 0, 0, 0, 0, 0, 0};
<FONT COLOR="#298C52">static</FONT> <FONT COLOR="#298C52">char</FONT> *id <A HREF="hisax.h.shtml#HISAX_INITDATA">HISAX_INITDATA</A> = HiSaxID;
MODULE_AUTHOR(<FONT COLOR="#FF0000">"Karsten Keil"</FONT>);
MODULE_PARM(type, <FONT COLOR="#FF0000">"1-8i"</FONT>);
MODULE_PARM(protocol, <FONT COLOR="#FF0000">"1-8i"</FONT>);
MODULE_PARM(io, <FONT COLOR="#FF0000">"1-8i"</FONT>);
MODULE_PARM(irq, <FONT COLOR="#FF0000">"1-8i"</FONT>);
MODULE_PARM(mem, <FONT COLOR="#FF0000">"1-8i"</FONT>);
MODULE_PARM(id, <FONT COLOR="#FF0000">"s"</FONT>);
<FONT COLOR=#A521F7>#ifdef</FONT> CONFIG_HISAX_16_3 <FONT COLOR=#0000FF>/* For Creatix/Teles PnP */</FONT>
MODULE_PARM(io0, <FONT COLOR="#FF0000">"1-8i"</FONT>);
MODULE_PARM(io1, <FONT COLOR="#FF0000">"1-8i"</FONT>);
<FONT COLOR=#A521F7>#endif</FONT>
<FONT COLOR=#A521F7>#endif</FONT>
<FONT COLOR="#298C52">int</FONT> nrcards;
<FONT COLOR="#298C52">extern</FONT> <FONT COLOR="#298C52">char</FONT> *l1_revision;
<FONT COLOR="#298C52">extern</FONT> <FONT COLOR="#298C52">char</FONT> *l2_revision;
<FONT COLOR="#298C52">extern</FONT> <FONT COLOR="#298C52">char</FONT> *l3_revision;
<FONT COLOR="#298C52">extern</FONT> <FONT COLOR="#298C52">char</FONT> *lli_revision;
<FONT COLOR="#298C52">extern</FONT> <FONT COLOR="#298C52">char</FONT> *tei_revision;
<A HREF="callc.c.shtml#HISAX_INITFUNC">HISAX_INITFUNC</A>(<FONT COLOR="#298C52">char</FONT> *
HiSax_getrev(<FONT COLOR="#298C52">const</FONT> <FONT COLOR="#298C52">char</FONT> *revision))
{
<FONT COLOR="#298C52">char</FONT> *rev;
<FONT COLOR="#298C52">char</FONT> *p;
<FONT COLOR="#298C52">if</FONT> ((p = strchr(revision, <FONT COLOR="#FF0000">':'</FONT>))) {
rev = p + 2;
p = strchr(rev, <FONT COLOR="#FF0000">'$'</FONT>);
*--p = 0;
} <FONT COLOR="#298C52">else</FONT>
rev = <FONT COLOR="#FF0000">"???"</FONT>;
<FONT COLOR="#298C52">return</FONT> rev;
}
<A HREF="callc.c.shtml#HISAX_INITFUNC">HISAX_INITFUNC</A>(<FONT COLOR="#298C52">void</FONT>
HiSaxVersion(<FONT COLOR="#298C52">void</FONT>))
{
<FONT COLOR="#298C52">char</FONT> tmp[64];
printk(KERN_INFO <FONT COLOR="#FF0000">"HiSax: Linux Driver for passive ISDN cards\n"</FONT>);
printk(KERN_INFO <FONT COLOR="#FF0000">"HiSax: Version 3.0\n"</FONT>);
strcpy(tmp, l1_revision);
printk(KERN_INFO <FONT COLOR="#FF0000">"HiSax: Layer1 Revision %s\n"</FONT>, HiSax_getrev(tmp));
strcpy(tmp, l2_revision);
printk(KERN_INFO <FONT COLOR="#FF0000">"HiSax: Layer2 Revision %s\n"</FONT>, HiSax_getrev(tmp));
strcpy(tmp, tei_revision);
printk(KERN_INFO <FONT COLOR="#FF0000">"HiSax: TeiMgr Revision %s\n"</FONT>, HiSax_getrev(tmp));
strcpy(tmp, l3_revision);
printk(KERN_INFO <FONT COLOR="#FF0000">"HiSax: Layer3 Revision %s\n"</FONT>, HiSax_getrev(tmp));
strcpy(tmp, lli_revision);
printk(KERN_INFO <FONT COLOR="#FF0000">"HiSax: LinkLayer Revision %s\n"</FONT>, HiSax_getrev(tmp));
}
<FONT COLOR="#298C52">void</FONT>
<A NAME="HiSax_mod_dec_use_count">HiSax_mod_dec_use_count</A>(<FONT COLOR="#298C52">void</FONT>)
{
MOD_DEC_USE_COUNT;
}
<FONT COLOR="#298C52">void</FONT>
<A NAME="HiSax_mod_inc_use_count">HiSax_mod_inc_use_count</A>(<FONT COLOR="#298C52">void</FONT>)
{
MOD_INC_USE_COUNT;
}
<FONT COLOR=#A521F7>#ifdef</FONT> MODULE
<FONT COLOR=#A521F7>#define</FONT> <A NAME="HiSax_init">HiSax_init</A> init_module
<FONT COLOR=#A521F7>#else</FONT>
<A HREF="asuscom.c.shtml#__initfunc">__initfunc</A>(<FONT COLOR="#298C52">void</FONT>
HiSax_setup(<FONT COLOR="#298C52">char</FONT> *str, <FONT COLOR="#298C52">int</FONT> *ints))
{
<FONT COLOR="#298C52">int</FONT> i, j, argc;
argc = ints[0];
i = 0;
j = 1;
<FONT COLOR="#298C52">while</FONT> (argc &amp;&amp; (i &lt; <A HREF="hisax.h.shtml#HISAX_MAX_CARDS">HISAX_MAX_CARDS</A>)) {
<FONT COLOR="#298C52">if</FONT> (argc) {
cards[i].typ = ints[j];
j++;
argc--;
}
<FONT COLOR="#298C52">if</FONT> (argc) {
cards[i].protocol = ints[j];
j++;
argc--;
}
<FONT COLOR="#298C52">if</FONT> (argc) {
cards[i].para[0] = ints[j];
j++;
argc--;
}
<FONT COLOR="#298C52">if</FONT> (argc) {
cards[i].para[1] = ints[j];
j++;
argc--;
}
<FONT COLOR="#298C52">if</FONT> (argc) {
cards[i].para[2] = ints[j];
j++;
argc--;
}
i++;
}
<FONT COLOR="#298C52">if</FONT> (strlen(str)) {
strcpy(HiSaxID, str);
HiSax_id = HiSaxID;
} <FONT COLOR="#298C52">else</FONT> {
strcpy(HiSaxID, <FONT COLOR="#FF0000">"HiSax"</FONT>);
HiSax_id = HiSaxID;
}
}
<FONT COLOR=#A521F7>#endif</FONT>
<A HREF="asuscom.c.shtml#__initfunc">__initfunc</A>(<FONT COLOR="#298C52">int</FONT>
<A HREF="#HiSax_init">HiSax_init</A>(<FONT COLOR="#298C52">void</FONT>))
{
<FONT COLOR="#298C52">int</FONT> i;
<FONT COLOR=#A521F7>#ifdef</FONT> MODULE
<FONT COLOR="#298C52">int</FONT> nzproto = 0;
<FONT COLOR=#A521F7>#ifdef</FONT> CONFIG_HISAX_ELSA
<FONT COLOR="#298C52">if</FONT> (type[0] == <A HREF="hisax.h.shtml#ISDN_CTYPE_ELSA_PCMCIA">ISDN_CTYPE_ELSA_PCMCIA</A>) {
<FONT COLOR=#0000FF>/* we have exported and return in this case */</FONT>
<FONT COLOR="#298C52">return</FONT> 0;
}
<FONT COLOR=#A521F7>#endif</FONT>
<FONT COLOR=#A521F7>#ifdef</FONT> CONFIG_HISAX_SEDLBAUER
<FONT COLOR="#298C52">if</FONT> (type[0] == <A HREF="hisax.h.shtml#ISDN_CTYPE_SEDLBAUER_PCMCIA">ISDN_CTYPE_SEDLBAUER_PCMCIA</A>) {
<FONT COLOR=#0000FF>/* we have to export and return in this case */</FONT>
<FONT COLOR="#298C52">return</FONT> 0;
}
<FONT COLOR=#A521F7>#endif</FONT>
<FONT COLOR=#A521F7>#endif</FONT>
nrcards = 0;
HiSaxVersion();
<FONT COLOR=#A521F7>#ifdef</FONT> MODULE
<FONT COLOR="#298C52">if</FONT> (id) <FONT COLOR=#0000FF>/* If id= string used */</FONT>
HiSax_id = id;
<FONT COLOR="#298C52">for</FONT> (i = 0; i &lt; <A HREF="hisax.h.shtml#HISAX_MAX_CARDS">HISAX_MAX_CARDS</A>; i++) {
cards[i].typ = type[i];
<FONT COLOR="#298C52">if</FONT> (protocol[i]) {
cards[i].protocol = protocol[i];
nzproto++;
}
<FONT COLOR="#298C52">switch</FONT> (type[i]) {
<FONT COLOR="#298C52">case</FONT> <A HREF="hisax.h.shtml#ISDN_CTYPE_16_0">ISDN_CTYPE_16_0</A>:
cards[i].para[0] = irq[i];
cards[i].para[1] = mem[i];
cards[i].para[2] = io[i];
<FONT COLOR="#298C52">break</FONT>;
<FONT COLOR="#298C52">case</FONT> <A HREF="hisax.h.shtml#ISDN_CTYPE_8_0">ISDN_CTYPE_8_0</A>:
cards[i].para[0] = irq[i];
cards[i].para[1] = mem[i];
<FONT COLOR="#298C52">break</FONT>;
<FONT COLOR=#A521F7>#ifdef</FONT> <A HREF="#IO0_IO1">IO0_IO1</A>
<FONT COLOR="#298C52">case</FONT> <A HREF="hisax.h.shtml#ISDN_CTYPE_PNP">ISDN_CTYPE_PNP</A>:
<FONT COLOR="#298C52">case</FONT> <A HREF="hisax.h.shtml#ISDN_CTYPE_NICCY">ISDN_CTYPE_NICCY</A>:
cards[i].para[0] = irq[i];
cards[i].para[1] = io0[i];
cards[i].para[2] = io1[i];
<FONT COLOR="#298C52">break</FONT>;
<FONT COLOR="#298C52">case</FONT> <A HREF="hisax.h.shtml#ISDN_CTYPE_COMPAQ_ISA">ISDN_CTYPE_COMPAQ_ISA</A>:
cards[i].para[0] = irq[i];
cards[i].para[1] = io0[i];
cards[i].para[2] = io1[i];
cards[i].para[3] = io[i];
<FONT COLOR="#298C52">break</FONT>;
<FONT COLOR=#A521F7>#endif</FONT>
<FONT COLOR="#298C52">case</FONT> <A HREF="hisax.h.shtml#ISDN_CTYPE_ELSA">ISDN_CTYPE_ELSA</A>:
cards[i].para[0] = io[i];
<FONT COLOR="#298C52">break</FONT>;
<FONT COLOR="#298C52">case</FONT> <A HREF="hisax.h.shtml#ISDN_CTYPE_16_3">ISDN_CTYPE_16_3</A>:
<FONT COLOR="#298C52">case</FONT> <A HREF="hisax.h.shtml#ISDN_CTYPE_TELESPCMCIA">ISDN_CTYPE_TELESPCMCIA</A>:
<FONT COLOR="#298C52">case</FONT> <A HREF="hisax.h.shtml#ISDN_CTYPE_A1">ISDN_CTYPE_A1</A>:
<FONT COLOR="#298C52">case</FONT> <A HREF="hisax.h.shtml#ISDN_CTYPE_ELSA_PNP">ISDN_CTYPE_ELSA_PNP</A>:
<FONT COLOR="#298C52">case</FONT> <A HREF="hisax.h.shtml#ISDN_CTYPE_ELSA_PCMCIA">ISDN_CTYPE_ELSA_PCMCIA</A>:
<FONT COLOR="#298C52">case</FONT> <A HREF="hisax.h.shtml#ISDN_CTYPE_IX1MICROR2">ISDN_CTYPE_IX1MICROR2</A>:
<FONT COLOR="#298C52">case</FONT> <A HREF="hisax.h.shtml#ISDN_CTYPE_DIEHLDIVA">ISDN_CTYPE_DIEHLDIVA</A>:
<FONT COLOR="#298C52">case</FONT> <A HREF="hisax.h.shtml#ISDN_CTYPE_ASUSCOM">ISDN_CTYPE_ASUSCOM</A>:
<FONT COLOR="#298C52">case</FONT> <A HREF="hisax.h.shtml#ISDN_CTYPE_TELEINT">ISDN_CTYPE_TELEINT</A>:
<FONT COLOR="#298C52">case</FONT> <A HREF="hisax.h.shtml#ISDN_CTYPE_SEDLBAUER">ISDN_CTYPE_SEDLBAUER</A>:
<FONT COLOR="#298C52">case</FONT> <A HREF="hisax.h.shtml#ISDN_CTYPE_SEDLBAUER_PCMCIA">ISDN_CTYPE_SEDLBAUER_PCMCIA</A>:
<FONT COLOR="#298C52">case</FONT> <A HREF="hisax.h.shtml#ISDN_CTYPE_SPORTSTER">ISDN_CTYPE_SPORTSTER</A>:
<FONT COLOR="#298C52">case</FONT> <A HREF="hisax.h.shtml#ISDN_CTYPE_MIC">ISDN_CTYPE_MIC</A>:
<FONT COLOR="#298C52">case</FONT> <A HREF="hisax.h.shtml#ISDN_CTYPE_TELES3C">ISDN_CTYPE_TELES3C</A>:
<FONT COLOR="#298C52">case</FONT> <A HREF="hisax.h.shtml#ISDN_CTYPE_S0BOX">ISDN_CTYPE_S0BOX</A>:
cards[i].para[0] = irq[i];
cards[i].para[1] = io[i];
<FONT COLOR="#298C52">break</FONT>;
<FONT COLOR="#298C52">case</FONT> <A HREF="hisax.h.shtml#ISDN_CTYPE_ELSA_PCI">ISDN_CTYPE_ELSA_PCI</A>:
<FONT COLOR="#298C52">case</FONT> <A HREF="hisax.h.shtml#ISDN_CTYPE_NETJET">ISDN_CTYPE_NETJET</A>:
<FONT COLOR="#298C52">case</FONT> <A HREF="hisax.h.shtml#ISDN_CTYPE_AMD7930">ISDN_CTYPE_AMD7930</A>:
<FONT COLOR="#298C52">case</FONT> <A HREF="hisax.h.shtml#ISDN_CTYPE_TELESPCI">ISDN_CTYPE_TELESPCI</A>:
<FONT COLOR="#298C52">break</FONT>;
}
}
<FONT COLOR="#298C52">if</FONT> (!nzproto) {
printk(KERN_WARNING <FONT COLOR="#FF0000">"HiSax: Warning - no protocol specified\n"</FONT>);
printk(KERN_WARNING <FONT COLOR="#FF0000">"HiSax: Note! module load syntax has changed.\n"</FONT>);
printk(KERN_WARNING <FONT COLOR="#FF0000">"HiSax: using protocol %s\n"</FONT>, <A HREF="#DEFAULT_PROTO_NAME">DEFAULT_PROTO_NAME</A>);
}
<FONT COLOR=#A521F7>#endif</FONT>
<FONT COLOR="#298C52">if</FONT> (!HiSax_id)
HiSax_id = HiSaxID;
<FONT COLOR="#298C52">if</FONT> (!HiSaxID[0])
strcpy(HiSaxID, <FONT COLOR="#FF0000">"HiSax"</FONT>);
<FONT COLOR="#298C52">for</FONT> (i = 0; i &lt; <A HREF="hisax.h.shtml#HISAX_MAX_CARDS">HISAX_MAX_CARDS</A>; i++)
<FONT COLOR="#298C52">if</FONT> (cards[i].typ &gt; 0)
nrcards++;
printk(KERN_DEBUG <FONT COLOR="#FF0000">"HiSax: Total %d card%s defined\n"</FONT>,
nrcards, (nrcards &gt; 1) ? <FONT COLOR="#FF0000">"s"</FONT> : <FONT COLOR="#FF0000">""</FONT>);
CallcNew();
Isdnl3New();
Isdnl2New();
TeiNew();
Isdnl1New();
<FONT COLOR="#298C52">if</FONT> (HiSax_inithardware(NULL)) {
<FONT COLOR=#0000FF>/* Install only, if at least one card found */</FONT>
<FONT COLOR=#0000FF>/* No symbols to export, hide all symbols */</FONT>
<FONT COLOR=#A521F7>#ifdef</FONT> MODULE
EXPORT_NO_SYMBOLS;
printk(KERN_INFO <FONT COLOR="#FF0000">"HiSax: module installed\n"</FONT>);
<FONT COLOR=#A521F7>#endif</FONT>
<FONT COLOR="#298C52">return</FONT> (0);
} <FONT COLOR="#298C52">else</FONT> {
<A HREF="isdnl1.c.shtml#Isdnl1Free">Isdnl1Free</A>();
<A HREF="tei.c.shtml#TeiFree">TeiFree</A>();
<A HREF="isdnl2.c.shtml#Isdnl2Free">Isdnl2Free</A>();
<A HREF="isdnl3.c.shtml#Isdnl3Free">Isdnl3Free</A>();
<A HREF="callc.c.shtml#CallcFree">CallcFree</A>();
<FONT COLOR="#298C52">return</FONT> -EIO;
}
}
<FONT COLOR=#A521F7>#ifdef</FONT> MODULE
<FONT COLOR="#298C52">void</FONT>
<A NAME="cleanup_module">cleanup_module</A>(<FONT COLOR="#298C52">void</FONT>)
{
<FONT COLOR="#298C52">int</FONT> cardnr = nrcards -1;
<FONT COLOR="#298C52">long</FONT> flags;
save_flags(flags);
cli();
<FONT COLOR="#298C52">while</FONT>(cardnr&gt;=0)
<A HREF="isdnl1.c.shtml#HiSax_closecard">HiSax_closecard</A>(cardnr--);
<A HREF="isdnl1.c.shtml#Isdnl1Free">Isdnl1Free</A>();
<A HREF="tei.c.shtml#TeiFree">TeiFree</A>();
<A HREF="isdnl2.c.shtml#Isdnl2Free">Isdnl2Free</A>();
<A HREF="isdnl3.c.shtml#Isdnl3Free">Isdnl3Free</A>();
<A HREF="callc.c.shtml#CallcFree">CallcFree</A>();
restore_flags(flags);
printk(KERN_INFO <FONT COLOR="#FF0000">"HiSax module removed\n"</FONT>);
}
<FONT COLOR=#A521F7>#ifdef</FONT> CONFIG_HISAX_ELSA
<FONT COLOR="#298C52">int</FONT> <A HREF="#elsa_init_pcmcia">elsa_init_pcmcia</A>(<FONT COLOR="#298C52">void</FONT> *pcm_iob, <FONT COLOR="#298C52">int</FONT> pcm_irq, <FONT COLOR="#298C52">int</FONT> *busy_flag, <FONT COLOR="#298C52">int</FONT> prot)
{
<FONT COLOR="#298C52">int</FONT> i;
<FONT COLOR="#298C52">int</FONT> nzproto = 0;
nrcards = 0;
HiSaxVersion();
<FONT COLOR="#298C52">if</FONT> (id) <FONT COLOR=#0000FF>/* If id= string used */</FONT>
HiSax_id = id;
<FONT COLOR=#0000FF>/* Initialize all 8 structs, even though we only accept
two pcmcia cards
*/</FONT>
<FONT COLOR="#298C52">for</FONT> (i = 0; i &lt; <A HREF="hisax.h.shtml#HISAX_MAX_CARDS">HISAX_MAX_CARDS</A>; i++) {
cards[i].para[0] = irq[i];
cards[i].para[1] = io[i];
cards[i].typ = type[i];
<FONT COLOR="#298C52">if</FONT> (protocol[i]) {
cards[i].protocol = protocol[i];
nzproto++;
}
}
cards[0].para[0] = pcm_irq;
cards[0].para[1] = (<FONT COLOR="#298C52">int</FONT>)pcm_iob;
cards[0].protocol = prot;
cards[0].typ = 10;
nzproto = 1;
<FONT COLOR="#298C52">if</FONT> (!HiSax_id)
HiSax_id = HiSaxID;
<FONT COLOR="#298C52">if</FONT> (!HiSaxID[0])
strcpy(HiSaxID, <FONT COLOR="#FF0000">"HiSax"</FONT>);
<FONT COLOR="#298C52">for</FONT> (i = 0; i &lt; <A HREF="hisax.h.shtml#HISAX_MAX_CARDS">HISAX_MAX_CARDS</A>; i++)
<FONT COLOR="#298C52">if</FONT> (cards[i].typ &gt; 0)
nrcards++;
printk(KERN_DEBUG <FONT COLOR="#FF0000">"HiSax: Total %d card%s defined\n"</FONT>,
nrcards, (nrcards &gt; 1) ? <FONT COLOR="#FF0000">"s"</FONT> : <FONT COLOR="#FF0000">""</FONT>);
Isdnl1New();
CallcNew();
Isdnl3New();
Isdnl2New();
TeiNew();
HiSax_inithardware(busy_flag);
printk(KERN_NOTICE <FONT COLOR="#FF0000">"HiSax: module installed\n"</FONT>);
<FONT COLOR="#298C52">return</FONT> (0);
}
<FONT COLOR=#A521F7>#endif</FONT>
<FONT COLOR=#A521F7>#ifdef</FONT> CONFIG_HISAX_SEDLBAUER
<FONT COLOR="#298C52">int</FONT> <A HREF="#sedl_init_pcmcia">sedl_init_pcmcia</A>(<FONT COLOR="#298C52">void</FONT> *pcm_iob, <FONT COLOR="#298C52">int</FONT> pcm_irq, <FONT COLOR="#298C52">int</FONT> *busy_flag, <FONT COLOR="#298C52">int</FONT> prot)
{
<FONT COLOR="#298C52">int</FONT> i;
<FONT COLOR="#298C52">int</FONT> nzproto = 0;
nrcards = 0;
HiSaxVersion();
<FONT COLOR="#298C52">if</FONT> (id) <FONT COLOR=#0000FF>/* If id= string used */</FONT>
HiSax_id = id;
<FONT COLOR=#0000FF>/* Initialize all 8 structs, even though we only accept
two pcmcia cards
*/</FONT>
<FONT COLOR="#298C52">for</FONT> (i = 0; i &lt; <A HREF="hisax.h.shtml#HISAX_MAX_CARDS">HISAX_MAX_CARDS</A>; i++) {
cards[i].para[0] = irq[i];
cards[i].para[1] = io[i];
cards[i].typ = type[i];
<FONT COLOR="#298C52">if</FONT> (protocol[i]) {
cards[i].protocol = protocol[i];
nzproto++;
}
}
cards[0].para[0] = pcm_irq;
cards[0].para[1] = (<FONT COLOR="#298C52">int</FONT>)pcm_iob;
cards[0].protocol = prot;
cards[0].typ = <A HREF="hisax.h.shtml#ISDN_CTYPE_SEDLBAUER_PCMCIA">ISDN_CTYPE_SEDLBAUER_PCMCIA</A>;
nzproto = 1;
<FONT COLOR="#298C52">if</FONT> (!HiSax_id)
HiSax_id = HiSaxID;
<FONT COLOR="#298C52">if</FONT> (!HiSaxID[0])
strcpy(HiSaxID, <FONT COLOR="#FF0000">"HiSax"</FONT>);
<FONT COLOR="#298C52">for</FONT> (i = 0; i &lt; <A HREF="hisax.h.shtml#HISAX_MAX_CARDS">HISAX_MAX_CARDS</A>; i++)
<FONT COLOR="#298C52">if</FONT> (cards[i].typ &gt; 0)
nrcards++;
printk(KERN_DEBUG <FONT COLOR="#FF0000">"HiSax: Total %d card%s defined\n"</FONT>,
nrcards, (nrcards &gt; 1) ? <FONT COLOR="#FF0000">"s"</FONT> : <FONT COLOR="#FF0000">""</FONT>);
Isdnl1New();
CallcNew();
Isdnl3New();
Isdnl2New();
TeiNew();
HiSax_inithardware(busy_flag);
printk(KERN_NOTICE <FONT COLOR="#FF0000">"HiSax: module installed\n"</FONT>);
<FONT COLOR="#298C52">return</FONT> (0);
}
<FONT COLOR=#A521F7>#endif</FONT>
<FONT COLOR=#A521F7>#endif</FONT>
</BODY>
</HTML>