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)
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
15 * Revision 1.1 1997/01/31 10:32:20 calle
23 * struct for loading t4 file
25 typedef struct avmb1_t4file
{
30 typedef struct avmb1_loaddef
{
35 typedef struct avmb1_resetdef
{
40 * struct for adding new cards
42 typedef struct 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 */
56 * card states for startup
60 #define CARD_DETECTED 1
61 #define CARD_LOADING 2
62 #define CARD_INITSTATE 4
63 #define CARD_RUNNING 5
66 #define AVMB1_PORTLEN 0x1f
68 #define AVM_MAXVERSION 8
79 typedef struct avmb1_card
{
80 struct avmb1_card
*next
;
84 volatile unsigned short cardstate
;
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
;
101 #define VER_CARDTYPE 1
106 #define VER_PROFILE 6
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
);
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_ */