Merge master.kernel.org:/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6
[linux-2.6] / drivers / isdn / hisax / hisax_isac.h
1 #ifndef __HISAX_ISAC_H__
2 #define __HISAX_ISAC_H__
3
4 #include <linux/kernel.h>
5 #include "fsm.h"
6 #include "hisax_if.h"
7
8 #define TIMER3_VALUE 7000
9 #define MAX_DFRAME_LEN_L1 300
10
11 #define ISAC_IOM1       0
12
13 struct isac {
14         void *priv;
15
16         u_long flags;
17         struct hisax_d_if hisax_d_if;
18         struct FsmInst l1m;
19         struct FsmTimer timer;
20         u_char mocr;
21         u_char adf2;
22         int    type;
23
24         u_char rcvbuf[MAX_DFRAME_LEN_L1];
25         int rcvidx;
26
27         struct sk_buff *tx_skb;
28         int tx_cnt;
29
30         u_char (*read_isac)      (struct isac *, u_char);
31         void   (*write_isac)     (struct isac *, u_char, u_char);
32         void   (*read_isac_fifo) (struct isac *, u_char *, int);
33         void   (*write_isac_fifo)(struct isac *, u_char *, int);
34 };
35
36 void isac_init(struct isac *isac);
37 void isac_d_l2l1(struct hisax_if *hisax_d_if, int pr, void *arg);
38
39 void isac_setup(struct isac *isac);
40 void isac_irq(struct isac *isac);
41
42 void isacsx_setup(struct isac *isac);
43 void isacsx_irq(struct isac *isac);
44
45 #endif