patch-2.0.36 linux/include/linux/b1lli.h

Next file: linux/include/linux/cyclades.h
Previous file: linux/include/linux/apm_bios.h
Back to the patch index
Back to the overall index

diff -u --recursive --new-file v2.0.35/linux/include/linux/b1lli.h linux/include/linux/b1lli.h
@@ -1,11 +1,44 @@
 /*
- * $Id: b1lli.h,v 1.1 1997/03/04 21:27:32 calle Exp $
+ * $Id: b1lli.h,v 1.1.2.10 1998/10/25 14:37:35 fritz Exp $
  *
  * ISDN lowlevel-module for AVM B1-card.
  *
  * Copyright 1996 by Carsten Paeth (calle@calle.in-berlin.de)
  *
  * $Log: b1lli.h,v $
+ * Revision 1.1.2.10  1998/10/25 14:37:35  fritz
+ * Backported from MIPS (Cobalt).
+ *
+ * Revision 1.1.2.9  1998/03/20 14:30:02  calle
+ * added cardnr to detect if you try to add same T1 to different io address.
+ * change number of nccis depending on number of channels.
+ *
+ * Revision 1.1.2.8  1998/03/04 17:32:33  calle
+ * Changes for T1.
+ *
+ * Revision 1.1.2.7  1998/02/27 15:38:29  calle
+ * T1 running with slow link.
+ *
+ * Revision 1.1.2.6  1998/02/24 17:57:36  calle
+ * changes for T1.
+ *
+ * Revision 1.1.2.5  1998/01/27 16:11:50  calle
+ * support for PCMCIA B1/M1/M2 ready.
+ *
+ * Revision 1.1.2.4  1998/01/26 14:51:56  calle
+ * interface change for pcmcia cards.
+ *
+ * Revision 1.1.2.3  1998/01/23 16:46:45  calle
+ * new functions for pcmcia cards.
+ *
+ * Revision 1.1.2.2  1997/11/26 16:57:26  calle
+ * more changes for B1/M1/T1.
+ *
+ * Revision 1.1.2.1  1997/11/26 10:47:01  calle
+ * prepared for M1 (Mobile) and T1 (PMX) cards.
+ * prepared to set configuration after load to support other D-channel
+ * protocols, point-to-point and leased lines.
+ *
  * Revision 1.1  1997/03/04 21:27:32  calle
  * First version in isdn4linux
  *
@@ -32,10 +65,22 @@
 	avmb1_t4file t4file;
 } avmb1_loaddef;
 
+typedef struct avmb1_loadandconfigdef {
+	int contr;
+	avmb1_t4file t4file;
+        avmb1_t4file t4config; 
+} avmb1_loadandconfigdef;
+
 typedef struct avmb1_resetdef {
 	int contr;
 } avmb1_resetdef;
 
+typedef struct avmb1_getdef {
+	int contr;
+	int cardtype;
+	int cardstate;
+} avmb1_getdef;
+
 /*
  * struct for adding new cards 
  */
@@ -44,33 +89,47 @@
 	int irq;
 } avmb1_carddef;
 
-#define	AVMB1_LOAD	0	/* load image to card */
-#define AVMB1_ADDCARD	1	/* add a new card */
-#define AVMB1_RESETCARD	2	/* reset a card */
+#define AVM_CARDTYPE_B1	0
+#define AVM_CARDTYPE_T1	1
+#define AVM_CARDTYPE_M1	2
+#define AVM_CARDTYPE_M2	3
 
+typedef struct avmb1_extcarddef {
+	int port;
+	int irq;
+        int cardtype;
+        int cardnr;  /* for HEMA/T1 */
+} avmb1_extcarddef;
+
+#define	AVMB1_LOAD		0	/* load image to card */
+#define AVMB1_ADDCARD		1	/* add a new card */
+#define AVMB1_RESETCARD		2	/* reset a card */
+#define	AVMB1_LOAD_AND_CONFIG	3	/* load image and config to card */
+#define	AVMB1_ADDCARD_WITH_TYPE	4	/* add a new card, with cardtype */
+#define AVMB1_GET_CARDINFO	5	/* get cardtype */
+#define AVMB1_REMOVECARD	6	/* remove a card (usefull for T1) */
 
 
-#ifdef __KERNEL__
 
 /*
  * card states for startup
  */
 
-#define CARD_NONE	0
+#define CARD_FREE	0
 #define CARD_DETECTED	1
 #define CARD_LOADING	2
 #define CARD_INITSTATE	4
 #define CARD_RUNNING	5
 #define CARD_ACTIVE	6
 
-#define	AVMB1_PORTLEN	0x1f
+#ifdef __KERNEL__
+
+#define	AVMB1_PORTLEN		0x1f
 
-#define AVM_MAXVERSION	8
-#define AVM_NBCHAN	2
+#define AVM_MAXVERSION		8
 
-#define AVM_NAPPS	30
-#define AVM_NPLCI	5
-#define AVM_NNCCI	6
+#define AVM_NAPPS		30
+#define AVM_NNCCI_PER_CHANNEL	4
 
 /*
  * Main driver data
@@ -79,8 +138,10 @@
 typedef struct avmb1_card {
 	struct avmb1_card *next;
 	int cnr;
-	unsigned short port;
+	unsigned int port;
 	unsigned irq;
+	int cardtype;
+	int cardnr; /* for T1-HEMA */
 	volatile unsigned short cardstate;
 	int interrupt;
 	int blocked;
@@ -108,22 +169,26 @@
 
 
 /* b1lli.c */
-int B1_detect(unsigned short base);
-void B1_reset(unsigned short base);
-int B1_load_t4file(unsigned short base, avmb1_t4file * t4file);
-int B1_loaded(unsigned short base);
-unsigned char B1_assign_irq(unsigned short base, unsigned irq);
-unsigned char B1_enable_irq(unsigned short base);
-unsigned char B1_disable_irq(unsigned short base);
-int B1_valid_irq(unsigned irq);
+int B1_detect(unsigned int base, int cardtype);
+int T1_detectandinit(unsigned int base, unsigned irq, int cardnr);
+void B1_reset(unsigned int base);
+void T1_reset(unsigned int base);
+int B1_load_t4file(unsigned int base, avmb1_t4file * t4file);
+int B1_load_config(unsigned int base, avmb1_t4file * config);
+int B1_loaded(unsigned int base);
+void B1_setinterrupt(unsigned int base, unsigned irq, int cardtype);
+unsigned char B1_disable_irq(unsigned int base);
+void T1_disable_irq(unsigned int base);
+int B1_valid_irq(unsigned irq, int cardtype);
+int B1_valid_port(unsigned port, int cardtype);
 void B1_handle_interrupt(avmb1_card * card);
-void B1_send_init(unsigned short port,
+void B1_send_init(unsigned int port,
 	    unsigned int napps, unsigned int nncci, unsigned int cardnr);
-void B1_send_register(unsigned short port,
+void B1_send_register(unsigned int port,
 		      __u16 appid, __u32 nmsg,
 		      __u32 nb3conn, __u32 nb3blocks, __u32 b3bsize);
-void B1_send_release(unsigned short port, __u16 appid);
-void B1_send_message(unsigned short port, struct sk_buff *skb);
+void B1_send_release(unsigned int port, __u16 appid);
+void B1_send_message(unsigned int port, struct sk_buff *skb);
 
 /* b1capi.c */
 void avmb1_handle_new_ncci(avmb1_card * card,
@@ -133,8 +198,16 @@
 void avmb1_handle_capimsg(avmb1_card * card, __u16 appl, struct sk_buff *skb);
 void avmb1_card_ready(avmb1_card * card);
 
-int avmb1_addcard(int port, int irq);
-int avmb1_probecard(int port, int irq);
+/* standard calls, with check and allocation of resources */
+int avmb1_addcard(int port, int irq, int cardtype);
+int avmb1_probecard(int port, int irq, int cardtype);
+
+int avmb1_resetcard(int cardnr);
+
+/* calls for pcmcia driver */
+int avmb1_detectcard(int port, int irq, int cardtype);
+int avmb1_registercard(int port, int irq, int cardtype, int allocio);
+int avmb1_unregistercard(int cnr, int freeio);
 
 #endif				/* __KERNEL__ */
 

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen, slshen@lbl.gov