if_ene.h
上传用户:luoyougen
上传日期:2008-05-12
资源大小:23136k
文件大小:8k
源码类别:

VxWorks

开发平台:

C/C++

  1. /* if_ene.h - Novell/Eagle 2000 network interface header */ 
  2. /* Copyright 2002 Wind River Systems, Inc. */
  3. /*
  4. modification history
  5. --------------------
  6. 01b,19apr02,rcs  added obsolescence warning SPR# 76010
  7. 01a,01jan94,bcs  written. 
  8. */
  9. #ifndef __INCif_eneh
  10. #define __INCif_eneh
  11. #ifdef __cplusplus
  12. extern "C" {
  13. #endif
  14. #warning "if_ene driver is obsolete, please use ne2000End driver"
  15. #define EA_SIZE         6               /* one Ethernet address */
  16. #define EH_SIZE         14              /* Ethernet header size */
  17. #define MAX_FRAME_SIZE  (EH_SIZE + ETHERMTU)
  18. /* NE 2000 on-board memory page addresses */
  19. #define NE2000_CONFIG_PAGE      0x00    /* where the Ethernet address is */
  20. #define NE2000_EADDR_LOC        0x00    /* location within config. page */
  21. #define NE2000_TSTART           0x40
  22. #define NE2000_PSTART           0x46
  23. #define NE2000_PSTOP            0x80
  24. #define ENE_PAGESIZE            256
  25. typedef struct 
  26.     {
  27.     UCHAR rstat;
  28.     UCHAR next;
  29.     UCHAR lowByteCnt;
  30.     UCHAR uppByteCnt;
  31.     } ENE_HEADER;
  32. typedef struct 
  33.     {
  34. #define collisions      stat[0]
  35. #define crcs            stat[1]
  36. #define aligns          stat[2]
  37. #define missed          stat[3]
  38. #define overruns        stat[4]
  39. #define disabled        stat[5]
  40. #define deferring       stat[6]
  41. #define underruns       stat[7]
  42. #define aborts          stat[8]
  43. #define outofwindow     stat[9]
  44. #define heartbeats      stat[10]
  45. #define badPacket       stat[11]
  46. #define shortPacket     stat[12]
  47. #define tnoerror        stat[13]
  48. #define rnoerror        stat[14]
  49. #define terror          stat[15]
  50. #define rerror          stat[16]
  51. #define overwrite       stat[17]
  52. #define wrapped         stat[18]
  53. #define interrupts      stat[19]
  54. #define reset           stat[20]
  55. #define strayint        stat[21]
  56. #define jabber          stat[22]
  57.     UINT stat[24];
  58.     } ENE_STAT;
  59. #define CAST
  60. /* NS 8390 (Ethernet LAN Controller) */ 
  61. #define ENE_REG_ADDR_INTERVAL   1
  62. #define ENE_ADRS(base,reg)   (CAST (base+(reg*ENE_REG_ADDR_INTERVAL)))
  63. /* page-0, read */
  64. #define ENE_CMD(base)           ENE_ADRS(base,0x00)     /* command */
  65. #define ENE_TRINCRL(base)       ENE_ADRS(base,0x01)     /* TRDMA incrementer */
  66. #define ENE_TRINCRH(base)       ENE_ADRS(base,0x02)     /* TRDMA incrementer */
  67. #define ENE_BOUND(base)         ENE_ADRS(base,0x03)     /* boundary page */
  68. #define ENE_TSTAT(base)         ENE_ADRS(base,0x04)     /* transmit status */
  69. #define ENE_COLCNT(base)        ENE_ADRS(base,0x05)     /* collision error */
  70. #define ENE_INTSTAT(base)       ENE_ADRS(base,0x07)     /* interrupt status */
  71. #define ENE_RSTAT(base)         ENE_ADRS(base,0x0c)     /* receive status */
  72. #define ENE_ALICNT(base)        ENE_ADRS(base,0x0d)     /* alignment error */
  73. #define ENE_CRCCNT(base)        ENE_ADRS(base,0x0e)     /* crc error */
  74. #define ENE_MPCNT(base)         ENE_ADRS(base,0x0f)     /* missed packet */
  75. /* page-0, write */
  76. #define ENE_RSTART(base)        ENE_ADRS(base,0x01)     /* receive start */
  77. #define ENE_RSTOP(base)         ENE_ADRS(base,0x02)     /* receive stop */
  78. #define ENE_TSTART(base)        ENE_ADRS(base,0x04)     /* transmit start */
  79. #define ENE_TCNTL(base)         ENE_ADRS(base,0x05)     /* transmit counter */
  80. #define ENE_TCNTH(base)         ENE_ADRS(base,0x06)     /* transmit counter */
  81. #define ENE_RSAR0(base)         ENE_ADRS(base,0x08)     /* remote address */
  82. #define ENE_RSAR1(base)         ENE_ADRS(base,0x09)     /* remote address */
  83. #define ENE_RBCR0(base)         ENE_ADRS(base,0x0a)     /* remote byte count */
  84. #define ENE_RBCR1(base)         ENE_ADRS(base,0x0b)     /* remote byte count */
  85. #define ENE_RCON(base)          ENE_ADRS(base,0x0c)     /* receive config */
  86. #define ENE_TCON(base)          ENE_ADRS(base,0x0d)     /* transmit config */
  87. #define ENE_DCON(base)          ENE_ADRS(base,0x0e)     /* data config */
  88. #define ENE_INTMASK(base)       ENE_ADRS(base,0x0f)     /* interrupt mask */
  89. /* page-1, read and write */
  90. #define ENE_STA0(base)          ENE_ADRS(base,0x01)     /* station address */
  91. #define ENE_STA1(base)          ENE_ADRS(base,0x02)     /* station address */
  92. #define ENE_STA2(base)          ENE_ADRS(base,0x03)     /* station address */
  93. #define ENE_STA3(base)          ENE_ADRS(base,0x04)     /* station address */
  94. #define ENE_STA4(base)          ENE_ADRS(base,0x05)     /* station address */
  95. #define ENE_STA5(base)          ENE_ADRS(base,0x06)     /* station address */
  96. #define ENE_CURR(base)          ENE_ADRS(base,0x07)     /* current page */
  97. #define ENE_MAR0(base)          ENE_ADRS(base,0x08)     /* multicast address */
  98. #define ENE_MAR1(base)          ENE_ADRS(base,0x09)     /* multicast address */
  99. #define ENE_MAR2(base)          ENE_ADRS(base,0x0a)     /* multicast address */
  100. #define ENE_MAR3(base)          ENE_ADRS(base,0x0b)     /* multicast address */
  101. #define ENE_MAR4(base)          ENE_ADRS(base,0x0c)     /* multicast address */
  102. #define ENE_MAR5(base)          ENE_ADRS(base,0x0d)     /* multicast address */
  103. #define ENE_MAR6(base)          ENE_ADRS(base,0x0e)     /* multicast address */
  104. #define ENE_MAR7(base)          ENE_ADRS(base,0x0f)     /* multicast address */
  105. /* page-2, read and write */
  106. #define ENE_NEXT(base)          ENE_ADRS(base,0x05)     /* next page */
  107. #define ENE_BLOCK(base)         ENE_ADRS(base,0x06)     /* block address */
  108. #define ENE_ENH(base)           ENE_ADRS(base,0x07)     /* enable features */
  109. /* NE2000 board registers */
  110. #define ENE_DATA(base)          ENE_ADRS(base,0x10)     /* data window */
  111. #define ENE_RESET(base)         ENE_ADRS(base,0x1f)     /* read here to reset */
  112. /* COMMAND: Command Register */
  113. #define CMD_PAGE2               0x80
  114. #define CMD_PAGE1               0x40
  115. #define CMD_PAGE0               0x00
  116. #define CMD_NODMA               0x20
  117. #define CMD_RWRITE              0x10
  118. #define CMD_RREAD               0x08
  119. #define CMD_TXP                 0x04
  120. #define CMD_START               0x02
  121. #define CMD_STOP                0x01
  122. /* RCON: Receive Configuration Register */
  123. #define RCON_MON                0x20
  124. #define RCON_PROM               0x10
  125. #define RCON_GROUP              0x08
  126. #define RCON_BROAD              0x04
  127. #define RCON_RUNTS              0x02
  128. #define RCON_SEP                0x01
  129. /* TCON: Transmit Configuration Register */
  130. #define TCON_LB1                0x04
  131. #define TCON_LB0                0x02
  132. #define TCON_CRCN               0x01
  133. /* DCON: Data Configuration Register */
  134. #define DCON_BSIZE1             0x40
  135. #define DCON_BSIZE0             0x20
  136. #define DCON_BUS16              0x01
  137. /* INTMASK: Interrupt Mask Register */
  138. #define IM_XDCE                 0x40
  139. #define IM_CNTE                 0x20
  140. #define IM_OVWE                 0x10
  141. #define IM_TXEE                 0x08
  142. #define IM_RXEE                 0x04
  143. #define IM_PTXE                 0x02
  144. #define IM_PRXE                 0x01
  145. /* INTSTAT: Interrupt Status Register */
  146. #define ISTAT_RST               0x80
  147. #define ISTAT_RDC               0x40            /* remote DMA complete */
  148. #define ISTAT_CNT               0x20
  149. #define ISTAT_OVW               0x10
  150. #define ISTAT_TXE               0x08
  151. #define ISTAT_RXE               0x04
  152. #define ISTAT_PTX               0x02
  153. #define ISTAT_PRX               0x01
  154. /* TSTAT: Transmit Status Register */
  155. #define TSTAT_OWC               0x80
  156. #define TSTAT_CDH               0x40
  157. #define TSTAT_UNDER             0x20
  158. #define TSTAT_CRL               0x10
  159. #define TSTAT_ABORT             0x08
  160. #define TSTAT_TWC               0x04
  161. #define TSTAT_NDT               0x02
  162. #define TSTAT_PTX               0x01
  163. /* RSTAT: Receive Status Register */
  164. #define RSTAT_DFR               0x80
  165. #define RSTAT_DIS               0x40
  166. #define RSTAT_GROUP             0x20
  167. #define RSTAT_MPA               0x10
  168. #define RSTAT_OVER              0x08
  169. #define RSTAT_FAE               0x04
  170. #define RSTAT_CRC               0x02
  171. #define RSTAT_PRX               0x01
  172. /* ENH: Enable Features */
  173. #define ENH_WAIT1               0x80
  174. #define ENH_WAIT0               0x40
  175. #define ENH_SLOT1               0x10
  176. #define ENH_SLOT0               0x08
  177. /* flags - software synchronize bit definitions */
  178. #define TXING                   0x01
  179. #define RXING                   0x02
  180. #define TXREQ                   0x04
  181. #ifdef __cplusplus
  182. }
  183. #endif
  184. #endif  /* __INCif_eneh */