blob: a696d0ef5c9a31335a6d9376edeb0a465326b0a9 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
|
/*
* 3COM "EtherLink MC/32" Descriptions
*/
/*
* Registers
*/
#define HOST_CMD 0
#define HOST_CMD_START_RX (1<<3)
#define HOST_CMD_SUSPND_RX (3<<3)
#define HOST_CMD_RESTRT_RX (5<<3)
#define HOST_CMD_SUSPND_TX 3
#define HOST_CMD_RESTRT_TX 5
#define HOST_STATUS 2
#define HOST_STATUS_CRR (1<<6)
#define HOST_STATUS_CWR (1<<5)
#define HOST_CTRL 6
#define HOST_CTRL_ATTN (1<<7)
#define HOST_CTRL_RESET (1<<6)
#define HOST_CTRL_INTE (1<<2)
#define HOST_RAMPAGE 8
#define RX_HALTED (1<<0)
#define TX_HALTED (1<<1)
#define HALTED (RX_HALTED | TX_HALTED)
#define RUNNING 0
struct mc32_mailbox
{
u16 mbox __attribute((packed));
u16 data[1] __attribute((packed));
};
struct skb_header
{
u8 status __attribute((packed));
u8 control __attribute((packed));
u16 next __attribute((packed)); /* Do not change! */
u16 length __attribute((packed));
u32 data __attribute((packed));
};
struct mc32_stats
{
/* RX Errors */
u32 rx_crc_errors __attribute((packed));
u32 rx_alignment_errors __attribute((packed));
u32 rx_overrun_errors __attribute((packed));
u32 rx_tooshort_errors __attribute((packed));
u32 rx_toolong_errors __attribute((packed));
u32 rx_outofresource_errors __attribute((packed));
u32 rx_discarded __attribute((packed)); /* via card pattern match filter */
/* TX Errors */
u32 tx_max_collisions __attribute((packed));
u32 tx_carrier_errors __attribute((packed));
u32 tx_underrun_errors __attribute((packed));
u32 tx_cts_errors __attribute((packed));
u32 tx_timeout_errors __attribute((packed)) ;
/* various cruft */
u32 dataA[6] __attribute((packed));
u16 dataB[5] __attribute((packed));
u32 dataC[14] __attribute((packed));
};
#define STATUS_MASK 0x0F
#define COMPLETED (1<<7)
#define COMPLETED_OK (1<<6)
#define BUFFER_BUSY (1<<5)
#define CONTROL_EOP (1<<7) /* End Of Packet */
#define CONTROL_EOL (1<<6) /* End of List */
#define MCA_MC32_ID 0x0041 /* Our MCA ident */
|