Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
awilliam
GitHub Repository: awilliam/linux-vfio
Path: blob/master/drivers/isdn/hisax/hisax_fcpcipnp.h
15115 views
1
#include "hisax_if.h"
2
#include "hisax_isac.h"
3
#include <linux/pci.h>
4
5
#define HSCX_BUFMAX 4096
6
7
enum {
8
AVM_FRITZ_PCI,
9
AVM_FRITZ_PNP,
10
AVM_FRITZ_PCIV2,
11
};
12
13
struct hdlc_stat_reg {
14
#ifdef __BIG_ENDIAN
15
u_char fill;
16
u_char mode;
17
u_char xml;
18
u_char cmd;
19
#else
20
u_char cmd;
21
u_char xml;
22
u_char mode;
23
u_char fill;
24
#endif
25
} __attribute__((packed));
26
27
struct fritz_bcs {
28
struct hisax_b_if b_if;
29
struct fritz_adapter *adapter;
30
int mode;
31
int channel;
32
33
union {
34
u_int ctrl;
35
struct hdlc_stat_reg sr;
36
} ctrl;
37
u_int stat;
38
int rcvidx;
39
int fifo_size;
40
u_char rcvbuf[HSCX_BUFMAX]; /* B-Channel receive Buffer */
41
42
int tx_cnt; /* B-Channel transmit counter */
43
struct sk_buff *tx_skb; /* B-Channel transmit Buffer */
44
};
45
46
struct fritz_adapter {
47
int type;
48
spinlock_t hw_lock;
49
unsigned int io;
50
unsigned int irq;
51
struct isac isac;
52
53
struct fritz_bcs bcs[2];
54
55
u32 (*read_hdlc_status) (struct fritz_adapter *adapter, int nr);
56
void (*write_ctrl) (struct fritz_bcs *bcs, int which);
57
};
58
59
60