if_exvar.h revision 71235
1/*- 2 * Copyright (c) 1996, Javier Mart^mn Rueda (jmrueda@diatel.upm.es) 3 * All rights reserved. 4 * 5 * Copyright (c) 2000 Matthew N. Dodd 6 * All rights reserved. 7 * 8 * Redistribution and use in source and binary forms, with or without 9 * modification, are permitted provided that the following conditions 10 * are met: 11 * 1. Redistributions of source code must retain the above copyright 12 * notice, this list of conditions and the following disclaimer. 13 * 2. Redistributions in binary form must reproduce the above copyright 14 * notice, this list of conditions and the following disclaimer in the 15 * documentation and/or other materials provided with the distribution. 16 * 17 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 18 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 19 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 20 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 21 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 22 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 23 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 24 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 25 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 26 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 27 * SUCH DAMAGE. 28 * 29 * $FreeBSD: head/sys/dev/ex/if_exvar.h 71235 2001-01-19 09:04:56Z jhb $ 30 */ 31 32struct ex_softc { 33 struct arpcom arpcom; /* Ethernet common data */ 34 struct ifmedia ifmedia; 35 36 device_t dev; 37 struct resource *ioport; 38 int ioport_rid; 39 struct resource *irq; 40 int irq_rid; 41 void * ih; 42 43 u_int iobase; /* I/O base address. */ 44 u_short irq_no; /* IRQ number. */ 45 46 char * irq2ee; /* irq <-> internal */ 47 u_char * ee2irq; /* representation conversion */ 48 49 u_int mem_size; /* Total memory size, in bytes. */ 50 u_int rx_mem_size; /* Rx memory size (by default, */ 51 /* first 3/4 of total memory). */ 52 53 u_int rx_lower_limit; /* Lower and upper limits of */ 54 u_int rx_upper_limit; /* receive buffer. */ 55 56 u_int rx_head; /* Head of receive ring buffer. */ 57 u_int tx_mem_size; /* Tx memory size (by default, */ 58 /* last quarter of total memory).*/ 59 60 u_int tx_lower_limit; /* Lower and upper limits of */ 61 u_int tx_upper_limit; /* transmit buffer. */ 62 63 u_int tx_head; /* Head and tail of */ 64 u_int tx_tail; /* transmit ring buffer. */ 65 66 u_int tx_last; /* Pointer to beginning of last */ 67 /* frame in the chain. */ 68}; 69 70extern char irq2eemap[]; 71extern u_char ee2irqmap[]; 72extern char plus_irq2eemap[]; 73extern u_char plus_ee2irqmap[]; 74 75int ex_alloc_resources (device_t); 76void ex_release_resources (device_t); 77int ex_attach (device_t); 78 79driver_intr_t ex_intr; 80 81u_int16_t eeprom_read (u_int32_t, int); 82 83int look_for_card (u_int32_t); 84void ex_get_address (u_int32_t, u_char *); 85int ex_card_type (u_char *); 86 87void ex_stop (struct ex_softc *); 88