3c527.h
上传用户:jlfgdled
上传日期:2013-04-10
资源大小:33168k
文件大小:2k
源码类别:

Linux/Unix编程

开发平台:

Unix_Linux

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