1/* 2 * Device driver for National Semiconductor DS8390/WD83C690 based ethernet 3 * adapters. By David Greenman, 29-April-1993 4 * 5 * Copyright (C) 1993, David Greenman. This software may be used, modified, 6 * copied, distributed, and sold, in both source and binary form provided 7 * that the above copyright and these terms are retained. Under no 8 * circumstances is the author responsible for the proper functioning --- 6 unchanged lines hidden (view full) --- 15 * 16 * Thanks to Charles Hannum for proving to me with example code that the 17 * NE1000/2000 support could be added with minimal impact. Without 18 * this, I wouldn't have proceeded in this direction. 19 * 20 */ 21 22/* |
23 * $Id: if_ed.c,v 2.16 1993/11/29 16:55:56 davidg Exp davidg $ |
24 */ 25 26/* 27 * Modification history 28 * |
29 * Revision 2.16 1993/11/29 16:55:56 davidg 30 * merged in Garrett Wollman's strict prototype changes 31 * 32 * Revision 2.15 1993/11/29 16:32:58 davidg 33 * From Thomas Sandford <t.d.g.sandford@comp.brad.ac.uk> 34 * Add support for the 8013W board type 35 * |
36 * Revision 2.14 1993/11/22 10:55:30 davidg 37 * change all splnet's to splimp's 38 * 39 * Revision 2.13 1993/11/22 10:53:52 davidg 40 * patch to add support for SMC8216 (Elite-Ultra) boards 41 * from Glen H. Lowe 42 * 43 * Revision 2.12 1993/11/07 18:04:13 davidg --- 143 unchanged lines hidden (view full) --- 187 u_char txb_next_tx; /* pointer to next buffer ready to xmit */ 188 u_short txb_len[8]; /* buffered xmit buffer lengths */ 189 u_char tx_page_start; /* first page of TX buffer area */ 190 u_char rec_page_start; /* first page of RX ring-buffer */ 191 u_char rec_page_stop; /* last page of RX ring-buffer */ 192 u_char next_packet; /* pointer to next unread RX packet */ 193} ed_softc[NED]; 194 |
195int ed_attach(struct isa_device *); 196void ed_init(int); 197void edintr(int); 198int ed_ioctl(struct ifnet *, int, caddr_t); 199int ed_probe(struct isa_device *); 200void ed_start(struct ifnet *); 201void ed_reset(int, int); 202void ed_watchdog(int); 203 |
204static void ed_get_packet(struct ed_softc *, char *, int /*u_short*/); 205static void ed_stop(int); 206 207static inline void ed_rint(); 208static inline void ed_xmit(); 209static inline char *ed_ring_copy(); 210 211void ed_pio_readmem(), ed_pio_writemem(); --- 169 unchanged lines hidden (view full) --- 381 memsize = 8192; 382 isa16bit = 0; 383 break; 384 case ED_TYPE_WD8013EBT: 385 sc->type_str = "WD8013EBT"; 386 memsize = 16384; 387 isa16bit = 1; 388 break; |
389 case ED_TYPE_WD8013W: 390 sc->type_str = "WD8013W"; 391 memsize = 16384; 392 isa16bit = 1; 393 break; |
394 case ED_TYPE_WD8013EP: /* also WD8003EP */ 395 if (inb(sc->asic_addr + ED_WD_ICR) 396 & ED_WD_ICR_16BIT) { 397 isa16bit = 1; 398 memsize = 16384; 399 sc->type_str = "WD8013EP"; 400 } else { 401 isa16bit = 0; --- 2102 unchanged lines hidden --- |