diff options
author | Matthew N. Dodd <mdodd@FreeBSD.org> | 2003-03-29 13:36:41 +0000 |
---|---|---|
committer | Matthew N. Dodd <mdodd@FreeBSD.org> | 2003-03-29 13:36:41 +0000 |
commit | 50e960d918e3400c7753b19d6089d5987d2ccae7 (patch) | |
tree | d4414c2e03011651886d8255ba82bb7d6f7f893c /sys/dev/ie/if_ievar.h | |
parent | 3330d5fb091b868ce3cc8ecebc62b59172abbfe0 (diff) | |
download | src-50e960d918e3400c7753b19d6089d5987d2ccae7.tar.gz src-50e960d918e3400c7753b19d6089d5987d2ccae7.zip |
- Move driver to newbus.
- Provide identify methods for EtherExpress and 3c507 cards; this
means these cards no longer need wired configs.
- Provide a detach method.
Notes
Notes:
svn path=/head/; revision=112790
Diffstat (limited to 'sys/dev/ie/if_ievar.h')
-rw-r--r-- | sys/dev/ie/if_ievar.h | 91 |
1 files changed, 91 insertions, 0 deletions
diff --git a/sys/dev/ie/if_ievar.h b/sys/dev/ie/if_ievar.h new file mode 100644 index 000000000000..c41d7eed44ef --- /dev/null +++ b/sys/dev/ie/if_ievar.h @@ -0,0 +1,91 @@ +/*- + * $FreeBSD$ + */ + +enum ie_hardware { + IE_NONE, + IE_STARLAN10, + IE_EN100, + IE_SLFIBER, + IE_3C507, + IE_NI5210, + IE_EE16, + IE_UNKNOWN +}; + +/* + * Ethernet status, per interface. + */ +struct ie_softc { + struct arpcom arpcom; + void (*ie_reset_586) (struct ie_softc *); + void (*ie_chan_attn) (struct ie_softc *); + enum ie_hardware hard_type; + int hard_vers; + int unit; + + device_t dev; + + struct resource * io_res; + int io_rid; + bus_space_tag_t io_bt; + bus_space_handle_t io_bh; + + struct resource * irq_res; + int irq_rid; + void * irq_ih; + + struct resource * mem_res; + int mem_rid; + bus_space_tag_t mem_bt; + bus_space_handle_t mem_bh; + + u_short port; /* i/o base address for this interface */ + caddr_t iomem; /* memory size */ + caddr_t iomembot; /* memory base address */ + unsigned iosize; + int bus_use; /* 0 means 16bit, 1 means 8 bit adapter */ + + int want_mcsetup; + int promisc; + int nframes; + int nrxbufs; + int ntxbufs; + volatile struct ie_int_sys_conf_ptr *iscp; + volatile struct ie_sys_ctl_block *scb; + volatile struct ie_recv_frame_desc **rframes; /* nframes worth */ + volatile struct ie_recv_buf_desc **rbuffs; /* nrxbufs worth */ + volatile u_char **cbuffs; /* nrxbufs worth */ + int rfhead, rftail, rbhead, rbtail; + + volatile struct ie_xmit_cmd **xmit_cmds; /* ntxbufs worth */ + volatile struct ie_xmit_buf **xmit_buffs; /* ntxbufs worth */ + volatile u_char **xmit_cbuffs; /* ntxbufs worth */ + int xmit_count; + + struct ie_en_addr mcast_addrs[MAXMCAST + 1]; + int mcast_count; + + u_short irq_encoded; /* encoded interrupt on IEE16 */ +}; +#define PORT(sc) sc->port +#define MEM(sc) sc->iomem + +void ie_intr (void *); +int ie_alloc_resources (device_t); +void ie_release_resources (device_t); +int ie_attach (device_t); +int ie_detach (device_t); + +void el_reset_586 (struct ie_softc *); +void el_chan_attn (struct ie_softc *); + +void sl_reset_586 (struct ie_softc *); +void sl_chan_attn (struct ie_softc *); + +void ee16_reset_586 (struct ie_softc *); +void ee16_chan_attn (struct ie_softc *); + +void sl_read_ether (struct ie_softc *, unsigned char *); +int check_ie_present (struct ie_softc *); + |