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