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
13struct 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
36void isac_init(struct isac *isac);
37void isac_d_l2l1(struct hisax_if *hisax_d_if, int pr, void *arg);
38
39void isac_setup(struct isac *isac);
40void isac_irq(struct isac *isac);
41
42void isacsx_setup(struct isac *isac);
43void isacsx_irq(struct isac *isac);
44
45#endif
46