Import 2.1.55pre1
[davej-history.git] / include / linux / b1lli.h
blob401933c3f031a3dc4d0851b56424b3663b142998
1 /*
2 * $Id: b1lli.h,v 1.1 1997/03/04 21:27:32 calle Exp $
4 * ISDN lowlevel-module for AVM B1-card.
6 * Copyright 1996 by Carsten Paeth (calle@calle.in-berlin.de)
8 * $Log: b1lli.h,v $
9 * Revision 1.1 1997/03/04 21:27:32 calle
10 * First version in isdn4linux
12 * Revision 2.2 1997/02/12 09:31:39 calle
13 * new version
15 * Revision 1.1 1997/01/31 10:32:20 calle
16 * Initial revision
20 #ifndef _B1LLI_H_
21 #define _B1LLI_H_
23 * struct for loading t4 file
25 typedef struct avmb1_t4file {
26 int len;
27 unsigned char *data;
28 } avmb1_t4file;
30 typedef struct avmb1_loaddef {
31 int contr;
32 avmb1_t4file t4file;
33 } avmb1_loaddef;
35 typedef struct avmb1_resetdef {
36 int contr;
37 } avmb1_resetdef;
40 * struct for adding new cards
42 typedef struct avmb1_carddef {
43 int port;
44 int irq;
45 } avmb1_carddef;
47 #define AVMB1_LOAD 0 /* load image to card */
48 #define AVMB1_ADDCARD 1 /* add a new card */
49 #define AVMB1_RESETCARD 2 /* reset a card */
53 #ifdef __KERNEL__
56 * card states for startup
59 #define CARD_NONE 0
60 #define CARD_DETECTED 1
61 #define CARD_LOADING 2
62 #define CARD_INITSTATE 4
63 #define CARD_RUNNING 5
64 #define CARD_ACTIVE 6
66 #define AVMB1_PORTLEN 0x1f
68 #define AVM_MAXVERSION 8
69 #define AVM_NBCHAN 2
71 #define AVM_NAPPS 30
72 #define AVM_NPLCI 5
73 #define AVM_NNCCI 6
76 * Main driver data
79 typedef struct avmb1_card {
80 struct avmb1_card *next;
81 int cnr;
82 unsigned short port;
83 unsigned irq;
84 volatile unsigned short cardstate;
85 int interrupt;
86 int blocked;
87 int versionlen;
88 char versionbuf[1024];
89 char *version[AVM_MAXVERSION];
90 char msgbuf[128]; /* capimsg msg part */
91 char databuf[2048]; /* capimsg data part */
92 capi_version cversion;
93 char name[10];
94 } avmb1_card;
97 * Versions
100 #define VER_DRIVER 0
101 #define VER_CARDTYPE 1
102 #define VER_HWID 2
103 #define VER_SERIAL 3
104 #define VER_OPTION 4
105 #define VER_PROTO 5
106 #define VER_PROFILE 6
107 #define VER_CAPI 7
110 /* b1lli.c */
111 int B1_detect(unsigned short base);
112 void B1_reset(unsigned short base);
113 int B1_load_t4file(unsigned short base, avmb1_t4file * t4file);
114 int B1_loaded(unsigned short base);
115 unsigned char B1_assign_irq(unsigned short base, unsigned irq);
116 unsigned char B1_enable_irq(unsigned short base);
117 unsigned char B1_disable_irq(unsigned short base);
118 int B1_valid_irq(unsigned irq);
119 void B1_handle_interrupt(avmb1_card * card);
120 void B1_send_init(unsigned short port,
121 unsigned int napps, unsigned int nncci, unsigned int cardnr);
122 void B1_send_register(unsigned short port,
123 __u16 appid, __u32 nmsg,
124 __u32 nb3conn, __u32 nb3blocks, __u32 b3bsize);
125 void B1_send_release(unsigned short port, __u16 appid);
126 void B1_send_message(unsigned short port, struct sk_buff *skb);
128 /* b1capi.c */
129 void avmb1_handle_new_ncci(avmb1_card * card,
130 __u16 appl, __u32 ncci, __u32 winsize);
131 void avmb1_handle_free_ncci(avmb1_card * card,
132 __u16 appl, __u32 ncci);
133 void avmb1_handle_capimsg(avmb1_card * card, __u16 appl, struct sk_buff *skb);
134 void avmb1_card_ready(avmb1_card * card);
136 int avmb1_addcard(int port, int irq);
137 int avmb1_probecard(int port, int irq);
139 #endif /* __KERNEL__ */
141 #endif /* _B1LLI_H_ */