82 строки
2.0 KiB
C
82 строки
2.0 KiB
C
|
/*
|
||
|
* 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 HALTED 0
|
||
|
#define RUNNING 1
|
||
|
|
||
|
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 */
|